1.面向对象的特点
①.面向对象是一种常见的思想,比较符合人们的思考习惯;
②.面向对象可以将复杂的业务逻辑简单化,增强代码复用性;
③.面向对象具有抽象、封装、继承、多态等特性。
2.面向对象的三大特征
①.封装性
封装是面向对象的核心思想,指将对象的属性和行为封装起来,不需要让外界知道具体的实现细节。
②.继承性
继承性主要描述的是类和类之间的关系,通过继承,可以在无需重新编写原有类的情况下,对原有类的功能进行拓展。
③.多态性
多态性指的是在程序中允许出现重名的现象,它指在一个类中定义的属性和方法被其他类继承后,它们可以有不同的数据类型或表现不同的行为,这使得同一个属性和方法在不同的类中具有不同的语义。
小结:
1)面向过程:强调步骤
2)面向对象:强调对象
3)面向对象的三大特征:封装,继承,多态
3.类和对象概述
类:
对某类事物的普遍一致性特征、功能的抽象、描述和封装,是构造对象的模版或蓝图,用 Java 编写的代码都会在某些类的内部。类之间主要有:依赖、聚合、继承等关系。
对象:
使用 new 关键字或反射技术创建的某个类的实例。同一个类的所有对象,都具有相似的数据(比如人的年龄、性别)和行为(比如人的吃饭、睡觉),但是每个对象都保存着自己独特的状态,对象状态会随着程序的运行而发生改变,需要注意状态的变化必须通过调用方法来改变,这就是封装的基本原则。
4.类和对象的关系
类是对象的模板,对象是类的实例。类只有通过对象才可以使用,而在开发之中应该先产生类,之后再产生对象。类不能直接使用,对象是可以直接使用的。
5.类的定义格式
语法:
public class 类名{
}
6.类的结构:属性和方法
对象同时具有属性和方法两项特性。
对象的属性和方法通常被封装在一起,共同体现事物的特性,二者相辅相承,不能分割。
属性:对象具有的各种特征。属性又叫类的成员变量,每个对象的每个属性都拥有特定值,例如:张三和李明的年龄、姓名不一样。
方法:对象执行的操作。
7.对象的创建与使用
创建对象的语法:
类名 对象名 = new 类名();
使用对象访问属性和方法:
访问属性:对象名.属性名 = 值;
访问方法:对象名.方法名();
成员变量的默认值:
数据类型 默认值
基本类型 整数(byte,short,int,long) 0
浮点数(float,double) 0.0
字符(char) '\u0000'
布尔(boolean) false
引用类型 数组,类,接口 null
8.匿名对象的使用
匿名对象是没有名字的实体,也就是该实体没有对应的变量名引用。
匿名对象的特征:
①.创建的匿名类的对象只能够调用一次。
②.匿名对象只在堆内存中开辟空间,而不存在栈内存的引用。
③.每次创建匿名对象都是不同的对象 。
小结:
1)类和对象关系:类是对象的抽象,对象是类的实例。
2)类是由一组属性和方法组成。
3)调用属性:对象名.属性。
4)调用方法:对象名.方法名()。
5)匿名对象只能使用一次。
9.成员变量与局部变量的区别
①.定义的位置不一样
成员变量在类体内部,方法体外面。
局部变量在方法体内部。
②.作用范围不一样
成员变量的作用范围是整个类。
局部变量的作用范围是方法体内,或者是方法体中的某个结构内。
③.默认值不一样
成员变量不赋值的时候系统会分配默认值。
局部变量没有默认值,未经赋值的局部变量不能直接使用。
④.内存的位置不一样
成员变量:位于堆内存。
局部变量:位于栈内存。
⑤.生命周期不一样
成员变量:随着对象创建而诞生,随着回收而消亡 。
局部变量:随着方法进栈而诞生,出栈而消亡。
10.对象数组的概念
与普通数组使用基本相同,不同的是,在对象数组中,不仅仅数组定义的时候需要New ,而且在数组成员类定义添加的时候也需要New出一个对象。
对象数组既有对象的特点又有数组的特点。