外观
封装
封装
实质:
封装是利用权限修饰符对实现细节的隐藏
作用
1.安全
2.隐藏实现细节,提高代码的可维护性
3.消除调用与实现的耦合性
oop的核心:分解任务
方式:类与封装
类内
三个权限修饰符(public,protucted,private)四个范围
修饰符 | 权限 |
---|---|
private(私有) | 同类可见 |
默认(不写) | 包级权限(同一个包内可见) |
protected(保护) | 子类可见(不管同包不同包) |
public(公共) | 权限最大(不同包也可见) |
强烈建议成员变量使用private
类外
只有public和默认不写
继承
class 子类名 extends 父类名{}
共性抽取(把共有的属性抽取出来) 代码复用
本质是扩展(在父类的基础上扩展)
先有子类再有父类(子类共性---->父类)
缺点:
1.继承是一个白盒复用,会破环封装性
2.比较繁琐和僵化
java的单继承(一个子类只能由=有一个父类)
C++子类对象项父类对象转换不路径唯一过程。java为了避免该问题,限制类的多继承
一个类至少有一个父类(Object)没有显式的继承,隐式继承Object
构造方法
构造方法不是方法
构造方法必须与类同名
如果没有声明构造方法,系统会自动提供一个无参无操作的构造方法
一旦声明构造方法系统不再提供
总结
new是一个运算符,后面只能跟构造方法
构造方法声明中无显式返回类型(理论上有返回值,是这个类的对象)
例:
public class Student {
private int studentNum;
private String studentName;
private double score;
// 使用有参构造函数初始化
Student(int num,String name,double score){
setScore(score);
setStudentName(name);
setStudentNum(num);
}
// 使用无参构造函数初始化
Student(){
setScore(1000);
setStudentName("name");
setStudentNum(0);
}
..........
}
问题
这里书写今日所遇到问题及解决方法 不要忽略小问题,小问题也要记下来。( 勿以善小而不为 )
吐槽
这里是吐槽部分,内容不限。