1 面向对象

一、面向对象的思想

 1. 面向过程:将问题拆分为步骤:第一步,第二步,...直到将问题解决....

2. 面向对象:想将程序中所用到的对象找出,作为整体进行应用,利用各对象之间的关系,进行解决问题。

二、对象

1. 对象:复杂的客观事物,在Java程序中的一种表现形式。(一切客观事物都是对象)

2. 对象的组成:

(1) 属性:代表对象有什么特征/特点,对象的静态部分,用变量来表示

(2) 方法:代表对象有什么功能/行为,对象的动态部分,用函数/方法表示。

3. 计算中对象的描述:计算中用类对一组对象进行描述,该对象有哪些属性和方法。

4. 类和对象的关系:

(1) 类是对象的模板

(2) 对象是类的实例 (基于一个类可以创建 n 个对象)

三、类的组成

 1. 属性:描述对象有哪些特征、特点

(1) 属性:又称为成员变量

(2) 位置:定义在类以内,方法以外

(3) 语法:数据类型 变量名; 数据类型 变量名 = 值; //声明的同时并赋值

注意:声明 和 赋值需要一起进行

class A{

                int value ; value = 20 ; //这是错误的写法,初始化必须和声明一起进行

}

(4) 注意:开发时,类中定义属性,只需定义程序功能所关注的那部分属性即可。

(5) 成员变量具有默认值,默认值和数组相同,具体情况如下:

整数 0

小数 0.0

字符 空字符('\u0000')

布尔 false 引用 nul

6) 成员变量的作用范围:至少在本类中有效。

(7) 命名冲突:在一个类中不能有重名的属性(成员变量),但是成员变量可以和局部变量命名冲突,一旦命名冲 突,在定义局部变量的方法中,优先使用局部变量。

2. 方法:描述对象有哪些功能、行为。

2. 方法:描述对象有哪些功能、行为。

(1) 方法又称为 成员方法。

(2) 位置:定义在类以内,其他方法以外。

(3) 语法:

a. 函数:public static 返回值类型 函数名(形参列表){ // 函数体(函数实现部分) }

b. 方法:public 返回值类型 方法名(形参列表){ // 方法体(方法的实现部分) } 注意: 方法定义时,不需要添加 static 。

(4) 方法的定义:

a. 方法的声明:代表对象能做什么 方法的修饰符 返回值类型 方法名 (形参列表)异常 注意:一个方法可以有多个修饰符,并且多个修饰符之间没有先后顺序。

b. 方法的实现:代表对象具体怎么做,如何实现声明的功能 { // 方法具体如何实现对应的功能 }

(5) 方法的重载(overload)

a. 概念:在一个类中定义多个相同名字,但是形参列表不同的方法。

b. 要求: I. 方法名相同 II. 形参列表不同(个数、类型、顺序) iii. 返回值类型、修饰符、异常没有要求

注意:只是 形参名字不同,不能构成方法重载。

c. 使用:编译器会根据调用时指定实际参数,决定具体调用哪一个方法。 指定时先精确匹配,精确匹配不成功,再就近向上匹配,如果还不成功,则编译报错。

注意:方法重载时,避免调用发生匹配混淆现象。

d. 好处:使代码程序更加的通用和灵活。

3. 构造方法:

(1) 构造方法:是类中一种特殊的方法,也被称为构造器。

(2) 特点:

a. 构造方法的方法名必须和类名完全一致

b. 构造方法没有返回值 (连 void 没有) 语法: 修饰符 类名(形式参数){}

c. 构造方法允许重载 d. 构造方法不允许手动调用

(3) 注意:

a. 构造方法不允许手动调用,在创建对象时,JVM根据 指定实际参数决定调用哪一个构造方法完成对象 的创建,一个对象的创建只能调用一次构造方法

b. 如果一个类中没有定义任何构造方法,则JVM会自动默认添加一个公开无参数的构造方法; 如果类中定义了任何的有参数的构造方法,则JVM不再提供默认的公开无参数的构造方法。

(4) 构造方法的作用:通常用于给属性赋值。

(5) 开发建议:定义一个类时,通常提供无参数的构造方法和有参数的构造方法,没有特殊说明的情况下,有 参数的构造方法的参数个数取决于属性的个数和类型。

四、对象的创建

1. 语法:类名 对象名 = new 类名();

2. 对象的使用:

(1) 对属性赋值: 对象名.属性名 = 值; 调用属性: 对象名.属性名

(2) 调用对象的方法:对象名.方法名(实参);

五、this 的应用( this. 和 this() ) 【开发应用】

1. 第一种应用: this.

(1) this 代表当前对象,类似于 '我'

(2) this. 用在类中的成员方法或是构造方法中,代表调用当前对象的属性或是成员方法

(3) this.属性名 : 代表调用 当前对象的属性 this.成员方法名(实参); 代表调用当前对象的成员方法 (4) 注意:this. 通常可以省略,但是一旦成员变量和局部变量命名冲突时,需要用 this. 来区分 成员变量

2. 第二种应用:this()

(1) this() 用在类中构造方法中,代表调用本类的其他构造方法

(2) this() : 代表调用本类无参数的构造方法 this(实参):代表调用本类有参数的构造方法

(3) this()/this(实参) 必须定义在构造方法中第一行有效语句

(4) this()/this(实参) 使用时避免出现递归调用/回环调用,所以一个类中构造方法中的第一行不能都 使用this()/ this(实参)  

六、对象创建的过程

 1. 分配空间:为所有的属性赋默认值

2. 初始化属性:为属性第二次赋值的机会

3. 执行构造方法:为属性第三次赋值的机会  

七、引用

1. 引用:对象类型的变量称为引用。

2. 引用存储的是对象在堆空间中首地址。

3. 对象之间相互独立,因为不同的对象在堆空间中分配不同空间

4. 引用可以单独声明: 类名 引用名; Worker w;

5. 如果引用中存储的是null ,此时用引用调用属性或是方法,则编译通过,运行报错,错误信息如下: java.lang.NullPointerException(空指针异常)

6. 引用之间相互赋值,传递的是对象在堆空间中的首地址 基本数据类型的变量之间相互赋值,传递是数值。

7. 引用可以用在形式参数、返回值上、数组上。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值