20200925_陈宇_
日志
学习总结:
封装:
封装就是对类内部细节进行隐藏,对外不可见,外部程序不能直接访问
通过访问修饰符来限制不合理的操作
松耦合就是指尽量减少对象之间的关联性,以降低它们之间的复杂性和依赖性
包:
包就是文件夹,包名一般是 公司域名去掉www后倒置 + 项目名 + 模块/功能
作用:1.存放类,便于找到和使用相应的类文件
2.防治命名冲突,Java中只有在不同的包中的类才能重名
3.包允许在更广的范围内保护类、数据和方法
包实际上是一种访问控制机制,通过包来限制和制约类之间的访问关系
使用非Java.lang包以及同包下的类时需要导包,或使用全限定类名
提示:声明包的含义是声明当前类所在的包,导入包的含义是声明当前类要使用到的其他类所在的包
内存区域:
JVM吧内存划分成几个不同的区域,每个区域存储某一类数据,这几个区域分别是方法区、堆区、栈区、静态区、常量池
访问修饰符:
四类,3个关键字
public:公开的 protected:受保护的
package-Access:包访问修饰符 private:私有的
访问权限从大到小:public --> pritected --> package-Access --> private
访问修饰符不能修饰局部变量
继承:
通过从现有类中继承其属性和方法,来表现充实自身内容,这种现象称为继承,继承使用extends关键字声明
作用:代码重用,增加软件的课扩展性
继承分为单继承和多继承,Java中只支持单继承,也就是一个类只能有一个直接类
特点:可以继承父类中用public、protected和package-Access修饰的属性和方法,package-Access修饰的属性和方法只能在同包中继承,无法继承private修饰的属性和方法
父类的构造方法无法继承,子类可以扩展,提高类之间的耦合性
子类可以重写(override)父类的方法,不能重写构造方法
重写(override):
一般发生在继承中,描述子类重写父类的方法,当父类方法不能满足子类的需求时,子类可以重写次方法,也叫覆盖
子类中有和父类中同名且同参(相同)的方法,称为方法的重写(覆盖)
满足重写的条件:1.重写一定发生在继承关系中
2.重写方法与被重写的方法要相同(同名、同参、同返回)
3.重写方法的访问权限不能缩小
注意:不能重写父类中final修饰的方法,不能重新给final修饰的属性赋值
重载和重写的区别:
重载:发生在同一个类中,多个方法名相同,参数列表不同,与返回值无关
重写:在继承关系中,方法名、参数、返回值都相同,方法体可改
final:
final修饰的类不能被继承,final修饰的变量称为常亮,其修饰的属性(字段)不可修改,修饰的方法不能重写,常亮必须在赋初始值后才能使用,且不能被更改
final修饰对象,因为对象本身是可变的,不可变的是变量对于对象的引用
super:
super([参数列表])是调用父类的构造方法,在调用构造方法时,必须放到方法的第一行
super.属性表示调用父类的属性,super.方法([参数列表])表示调用父类方法
super表示父类引用:
1.super只能出现在子类(成员方法、构造方法)中
2.super用于调用父类的成员、方法、属性、构造方法
3.super([参数列表])在调用父类构造方法时,要写在构造方法代码的第一行
4.super不能调用父类private修饰的属性和方法
this和super
遮蔽:
有些声明可能在其作用域的一部分被相同名称的另一个声明遮蔽
隐藏:
用于将被继承但由于子类中的声明而不被继承的成员
学习心得:
面向对象这一块的内容是比较难,各级之间的关系与用法也比较多,需要多去想那些关系才能明白,并且还要多敲去验证自己的想法,面向对象的实例变量,类变量,实例函数,构造函数,类函数等等这些关系属实搞得脑袋晕乎乎的。
近期评论