JavaSE-面向对象

一、面向对象思想
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
引用 null
(6) 成员变量的作用范围:至少在本类中有效。
(7) 命名冲突:在一个类中不能有重名的属性(成员变量),但是成员变量可以和局部变量命名冲突,一旦命名冲突,在定义局部变量的方法中,优先使用局部变量。
成员变量 和 局部变量的区别。
局部变量:
位置: 定义方法内
默认值: 没有默认值, 先赋值后使用
作用范围: 从定义开始,到定义它的代码块结束
命名冲突: 在重合的作用范围内,不允许命名冲突
成员变量:
位置: 定义在类以内,方法以外
默认值: 具有默认值
作用范围: 至少在本类中有效
命名冲突: 可以和局部变量命名冲突,冲突时,在定义局部变量的方法中,优先使用局部变量
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的应用
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.对象之间相互独立,因为不同的对象在堆空间中分配不同空间
4.引用可以单独声明: 类名 引用名;
Worker w;
5.如果引用中存储的是null ,此时用引用调用属性或是方法,则编译通过,运行报错,错误信息如下:
java.lang.NullPointerException(空指针异常)
6.引用之间相互赋值,传递的是对象在堆空间中的首地址
基本数据类型的变量之间相互赋值,传递是数值。
7.基本数据类型的变量之间相互赋值,传递是数值。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值