第六天
面向对象
跟符合我们思维习惯的一种方式
角色发生了转换,执行者变成了指挥者
面向对象的特征
封装
继承
多态
属性
事物名词,成员变量
行为
事物动词,成员方法
成员变量
类中方法外
成员方法
跟之前的方法比,去掉了static
成员变量和局部变量的区别
位置:局部变量,方法中
成员变量,类中方法外
初始化值:局部变量,局部变量在使用之前必须赋值
成员变量,有默认的初始化值
内存中的位置:局部变量:栈内存中
成员变量:堆内存中
生命周期:局部变量,随着方法的弹栈而消失
成员变量,随着对象的消失而消失
成员变量和局部变量重名
this,区分成员变量和局部变量的重名问题
匿名对象
没有名字的对象,没有引用的对象
调用一次对象的时候,用匿名对象很好
封装
隐藏对象的属性和实现细节,对象提供公共的访问方式
安全性
复用性
private关键字
private可以修饰成员变量
private可以修饰成员方法
private仅仅是封装的一种体现
this关键字
this,区分成员变量和局部变量的重名问题
谁来调用我,我就属于谁
Student ss = new Student();
ss.show();
System.out.println(ss);
第七天
构造方法
就是给对象进行初始化
没有返回值,连void也没有
与类名相同
public void Person(){} //这是一个一般的方法,只不过这个方法比较特别,跟类名一样
构造方法重载
有参的构造方法
创建对象的过程(看图)
static关键字
通过类名点调用
被类中所有的对象共享
优先与对象的存在,随着类的加载而加载
静态变量和成员变量的区别
所属:成员变量,属于对象。实例变量
静态变量,属于类,类变量
生命周期不同:成员变量,随着对象的创建而存在,随着对象的消失而消失
静态变量,随着类的加载而加载
内存中的位置不同:成员变量,堆内存中
静态变量,方法区,静态区
调用:成员变量:创建对象才能调用
静态变量:多了一种调用方式。可以通过类名点调用
第八天
代码块的分类
局部代码块 方法中,限定变量的生命周期
构造代码块 类中方法外,如果每次创建对象的时候都要调用一个方法,可以把他方法构造代码块里
静态代码块 类中方法外,用static修饰,可以给类加载一些驱动
同步代码块
局部代码块 < 构造代码块 < 静态代码块
继承的好处与弊端
提高了代码复用性
提高了代码的维护性
让类与类之间的关系更紧密了,增强了耦合性
开发本着高内聚,低耦合
java中继承的特点
java中只支持单继承,但是支持多层继承
this和super的区别
this也可以调用父类中的东西,子类中没有这个东西,你可以去调用父类中的东西
继承中构造方法的关系
子类是不能继承父类的构造方法的
子类初始化之前,先进行父类的初始化
因为子类有可能会用到父类中的东西,所以要先进行父类的初始化
重载与重写的区别
在一个类中,方法名相同,参数列表不同,与返回值类型无关,只看参数列表
子父类中出现同名的方法
重写的注意事项
不能重写父类中的私有的方法
父类中的静态方法重写,子类也必须是静态的
final关键字
final修饰变量,变量变成常量,只能被赋值一次
final修饰类,类不能被继承
final修饰方法,方法不能被重写
final关键字初始化时机
显示初始化
final int a = 10;
构造方法初始化 |
|