2020925邹瑞
总结
封装
面向对象三大特征:封装、继承、多态;
Java中封装实际就是将类细节隐藏,对外不可见,外部可以通过规定的方式访问数据。是通过访问修饰符来限制不合理操作。封装很好的体现了面对对象提倡的对象之间松耦合的关系
封装步骤
第一步修改属性可见性。如public(公有)改为private(私有)。
第二步:设置getter/setter;如:在私有属性name上
public String getName(String name){
return name;
}
public void setName(String name){
this.name=name;
}
可以在setter方法中设置限制
包
Java中包也是一种封装机制,通过包来限制和制约类之间的访问关系,
就是一个文件夹,包名一般是:
公司域名去掉www后倒置+项目名+模块/功能;
访问修饰符
访问修饰符可以限制和制约类之间的访问。访问修饰符有四种(三个关键字):
- public:公开的、公共的;
- protected:受保护的
- 什么都不写(Package-Access):包访问修饰符
- private:私有的
类成员访问修饰符
static
使用static修饰的属性称为静态属性或类变量,没有用static修饰的属性称为实例变量。
使用static修饰的属性属于类,不属于具体的某个对象
静态与实例区别
JVM把内存划分成几个不同的区域,每个区域存储某一个数据。这几个区域分别是方法区、堆区、栈区、静态区、常量池。
继承
通过从现有类中继承其属性和方法,来实现充实自身内容,这种现象称为继承。
继承使用 extends 关键字,现有类称为父类/超类/基类,新类称为子类/扩展类。 继承的作用是代码重用,增加软件的可扩展性。 继承分为 单继承 / 多继承 , java 中只支持单继承。也就是一个类只能有一个直接父类。
继承表达的是 is a 关系, Student is a Person 。
继承时顺序
- 父类的 static初始化
- 子类 static 初始化父类
- 实例初始化
- 父类的构造方法
- 子类实例初始化
- 子类构造方法
特点:
- 可以继承父类中用 public 和 protected 和 Package-Access 修饰的属性和方法, PackageAccess 修饰的属性和方法只能在同包中继承。 private 修饰属性和方法不能被继承。
- 父类的构造方法不能被继承
- 子类可以扩展
- 子类可以重写 (Override) 父类的方法,不能重写构造方法
- 提高类之间的耦合性
重写
一般发生在继承中,描述子类重写父类的方法。当父类的方法不能满足子类的需求 时,子类可以重写此方法,也叫覆盖。类中有和父类中同名且同参(相同)的方法,称为方法的重写(覆盖)。
重写时记得前面加@Override用于检查
方法重写需要满足的条件:
- 重写一定发生在继承关系中
- 重写方法与被重写的方法要相同(方法名称,参数,返回值)
- 重写方法的访问权限不能缩小
- 注意: 不能重写父类中 final 修饰的方法,不能重新给 final 修饰的属性赋值。
final
final 修饰的类不能被继承, final 修饰的属性(字段)不可修改, final 修饰的方法不能被重写。 final 修饰变量称为常量,常量必须在赋初始值后才能使用,且不能更改.
但是,final修饰对象,不可变的是变量对于对象的引用,对象本身可以改变
心得
今天依旧学的有点多,需要花时间整理一下内容,防止乱掉。
近期评论