面向对象编程基础(java)

面向对象编程基础

1.1 面向对象概述

在程序开发初期,大家使用的是结构化开发语言,也就是面向过程(opp),但随着市场需求剧增,软件的规模也越来越大,结构化语言的弊端也暴露出来。

开发周期无休止的拖延,软件质量也越来越差。

为了更好的适应市场,有人就开始以另一种开发思想引入程序中,也就是面向对象的开发思想(oop)。

面向对象思想是人类最自然的一种思考方式,他将所有预处理的问题抽象为对象,同时了解这些对象具有哪一些对应的属性以及行为,以解决这些对象面临的一些实际问题,面向对象设计实质上就是对现实世界的对象进行建模操作。或者说把现实世界的操作虚拟到程序中去

1.2 对象

对象,是一个抽象概念,英文称为“Object”,表示存在的事物。通俗的来说就是世间万物皆对象!现实世界中肉眼可见的一种事物都是对象,对象是事物存在的实体,例如:人、手机、电脑。为了大家能简单的理解,只要现实世界中看得到的实物都是一个对象。

1.2.1 对象的组成

一个实体(对象)可以划分两个部分,一个是描述外观和功能。那么在程序里关于实体(对象)描述外观的称为“属性”;实体(对象)的功能称之为“行为”或“方法”,也就是实体(对象)执行的动作。例如:人的性别是描述这个实体(对象)的,人能行走也能吃饭和学习是执行的动作。

实体(对象)由属性和行为组成,也就是实体(对象)的外观和功能。

1.3 类

类是封装对象的属性和行为的载体,反过来说具有相同属性和行为的一类实体被称之为类(简单的理解也可以是分类)。例如:大雁群就可以看做是大雁类,因为每一只大雁都有相同的嘴、翅膀和爪等外貌特性;同时每一只大雁也会睡觉、飞行、觅食等行为。所以就可以进行分类用程序角度来说的话这一群大雁就是一个大雁类。而大雁群中的每一只大雁都是大雁类的一个对象。

 从上面两张流程图我们知道大雁群中的每一只大雁都具备一样的外观描述和行为(功能),那么我们就可以把这个实体(对象)称之为这个分类下的对象或者实体。

总结:类可以理解为分类,是抽象的。而对象就是实体,可以看得到摸得着的。

 1.3.1 OPP程序设计特点简单介绍

面向对象程序设计具有以下三个通用特点:

封装性

√继承性

√多态性

a).封装

封装是面向对象编程的核心思想。也就是将对象的特征和行为封装起来,其载体就是类,类通常会隐藏其实现细节,这就是封装的思想。也就是说现实生活中的物品或商品你只要负责使用就ok,其他的你可以不管。例如:使用手机打电话,只要你打通电话就行,具体内部怎么实现无需知道。

总结:程序中采用封装的思想主要是保证了类内部数据结构的完整性和安全性,使用该类的用户不能轻易的直接操作次数据结构,只能操作类允许公开的数据。这样一来就避免了外部操作对内部数据的影响,提高了程序的可维护性。

b) 继承

继承是每一门计算机语言不可少的机制,主要作用就是利用继承机制使新建的类可以建立在原有类的基础之上。在使用或者重写原有类的行为或者功能(程序里叫成员方法)以及访问原有类的特征(也就是类的成员变量)。我们可以称新类为子类,原有类为父类。举个例子:如果类A是类B的父类,而类B是类C的父类,那么也可称类C是类A的子类,类C是从类A基础而来。同时在java中,关于类的继承是单一继承的,也就是说,一个子类只能拥有一个父类,一个父类可以有多个子类。总而言之,继承是在代码中实现重复利用的重要手段,子类通过继承,复用父类特征和行为的同时又添加了子类特有的特征和行为。

c) 多态

将父类对象应用于子类的特征就是多态。多态通俗理解就是多种形态,但每一个实体(对象)还是具备了父类的特征和行为。

 

 

2.类与对象

上面我们认识类的时候就已经讲过,类是我们封装实体(对象)的外观特征(属性)和行为的载体,也就是说这个实体(对象)有哪一些外观描述和功能都可以在类里面进行封装描述

2.1 类的声明

语法:

public class 类名称
{
    //类的主体...  
}

 

注意:

  1. 如果类文件中只有一个类时,文件名必须与类名保持一致;
  2. 一个java文件中只能有一个public类;
  3. 如果类文件中不止一个类,文件名必须与public类名一致;
  4. 如果文件中不止一个类,而且没有public类,文件可与任意类名一致;

java类名的命名规则: 

  1. 类名应该以下划线(_)或者字母开头,最好以字母开头;
  2. 第一个字母最好大写,如果类名由多个单词组成,则每个单词的首字母最好都大写;
  3. 类名不能为java中的关键字,例如:String、this、double、int等;
  4. 类名不能包括任何嵌入的空格或点号,以及除了下划线(_)和美元符号($)字符之外的特殊符号。

2.2   a 成员变量

java中实体(对象)的特征(属性)也称之为成员变量,成员变量的定义和普通变量定义是一样的。

数据类型 变量名称 [ = 值 ];

 注意:代码中的[ = 值]表示可选内容,也就是说定义变量时可以为其赋值也可以不赋值。

我们来举一个例子,例如鸟类==》Bird类,成员变量对应于类对象属性,鸟都有翅膀、爪子、嘴巴、羽毛...而这一些都是描述鸟的外观也就是对象的属性,所以Bird应该有四个成员变量:wing、claw、beak、feather。

//定义一个Bird鸟类
public class Bird{
    String wing;      //翅膀
    String claw;      //爪子
    String beak;     //嘴巴
    String feather;  //羽毛
}

 

分析:上面 代码使用关键字class定义类,类名是Bird,同时在Bird类中定义了4个成员变量,成员变量的类型可以设置java中合法的数据类型,说到底成员变量和普通变量是一样的,成员变量也可以设置初始值,也可以不设置初始值。不设置初始值就会有一个默认值。

数据类型 默认值   详细说明  
float、double      0.0 浮点零
char '' 空格字符
boolean false 逻辑符
引用类型,如:String     null 空值
int、byte、short、long  0 0值

上面是我们在定义类时使用的一些数据类型以及对应的默认值

2.2 b 成员方法

2.2.1 成员方法的定义

成员方法对应类对象(实体)的行为或者功能,主要是用来定义类可执行的操作,行为或者功能就是一系列语句组成的代码块。

语法:

 

[权限修饰符] [返回值类型] 方法名 ([参数类型 参数名]){
    //方法体--> 一系列代码
    return 返回值;  
}

 

 分析:

    • 0
      点赞
    • 1
      收藏
      觉得还不错? 一键收藏
    • 0
      评论

    “相关推荐”对你有帮助么?

    • 非常没帮助
    • 没帮助
    • 一般
    • 有帮助
    • 非常有帮助
    提交
    评论
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

    当前余额3.43前往充值 >
    需支付:10.00
    成就一亿技术人!
    领取后你会自动成为博主和红包主的粉丝 规则
    hope_wisdom
    发出的红包
    实付
    使用余额支付
    点击重新获取
    扫码支付
    钱包余额 0

    抵扣说明:

    1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
    2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

    余额充值