面向对象
1.面向对象的思想特点
1.更符合现实世界的思想行为习惯
2.让我们从执行者变成指挥者
3.让事物更加简单化
2.面向对象的设计原则
不断地创建对象,使用对象,指挥对象做事情
3.面向对象的三大特征
封装
继承
多态(重点): 具体类多态(很少用),接口多态(使用最多的),抽象类多态...
4.类,事物,对象…
类:是描述现实世界事物的属性和行为的集合! (类,是Java中最基本单元)
学生事物
属性:姓名,年龄,性别,身高....
行为:学习
定义学生类: (概括性的描述)
class Student{
现实事物的属性----> 成员变量:(位置:类中,方法外!)
现实事物的行为----> 成员方法:去掉static关键字
String name ;
int age ;
String gender ;
...
public void study(){
System.out.println("我们目前正在学习面向对象...") ;
}
}
描述具体的学生----->通过该类创建对象
创建对象的格式:
类名 对象名 = new 类名() ; 固定格式
对象名.成员变量 = 赋值;
对象名.study() ;
5.成员变量和局部变量的区别
成员变量和局部变量的区别?
1)书写位置不同
成员变量:在类中,方法外定义的变量!
局部变量:在方法声明上或者是方法定义中!
2)内存中的位置不同
成员变量:在堆内存中
局部变量:在栈内存中
3)生命周期不同:
局部变量:随着方法调用而存在,随着方法调用完毕而消失!
成员变量:随着对象的创建完毕而存在,随着对象被GC回收掉而消失
对象的回收:
并不是立即回收,而是等待垃圾回收器空闲时回收掉!
4)初始化不同:
成员变量:可以不进行初始化,因为它在堆内存中(跟对象有关系),存在系统默认初始化
局部变量:必须在使用之前对象局部变量进行初始化,否则报错"可能尚未初始化变量xx"
6.形式参数是基本数据类型和引用数据类型
方法的形式参数是基本类型:
形参的改变对实际参数没有影响(是什么类型,传递对应的数据值即可!)
方法的形式参数是引用类型:
形式参数的改变:会直接影响实际参数!
7.匿名对象
匿名对象:
概念:没有名字的对象!
之前的格式:
类名 对象名 = new 类名() ;
匿名对象的创建格式:
new 类名() ;
特点:
1)可以作为形式参数传递!
2)匿名对象不要使用多次,使用一次即可!
匿名对象,应用场景:
移动端:android 大量去使用匿名对象 或者匿名内部类
匿名对象创建完毕,使用完毕就立即被回收(节省内存空间)