1 面向对象
2 类和对象
3 内存分析
- 栈
局部变量,自动分配,后进先出
- 堆
不连续,放置new出来的对象,方法区也在堆里面,类的代码信息,static变量,常量池
4 垃圾回收机制
垃圾回收是程序做的,程序员压根无法控制,只可以建议,但是采不采纳就是另外一回事了
5 构造方法
6 重载
overload
重载:相同名字,但是参数不同(类型,个数,顺序)的多个方法
- 形参名字不同不构成重载
- 返回值类型不同不构成重载
7 static
类变量:从属于类
类方法:从属于类
8 this
可以通过this(),调用其余的构造方法,且必须在构造方法的第一行哦
9 继承
基本概念
提高代码的复用性
对某一批类的继承
子类继承父类,可以得到父类的全部属性和方法
单继承
方法的重写
子类中可以对继承来的方法进行重写
重写的方法必须和被重写的方法具有相同的方法名称和参数列表和返回类型
Object
根类
equals方法
比较的是否相等,是否是同一个
toString()
super关键字
super是父类对象的引用
组合和继承
10 final关键字
修饰属性:代表常量,不可以进行第二次初始化
修饰方法: 不可以被重写了
修饰类: 这个类不可以被继承
11 封装
01 访问修饰符
private:自己
default:同一个包
protected:同一个包+子类
public:所有
- 提供相应的set、get方法操作私有属性,方法为public
12 多态
- 注意编译时,运行时概念
多态形成的条件
- 继承
- 方法重写
- 父类引用指向子类对象
13 抽象类
抽象类是一种模板,抽象类为所有子类提供一种通用的模板,子类可以再这个模板基础上进行扩展;
通过抽象类可以避免子类设计的随意性,通过抽象类,我们可以做到严格的限制子类的设计
抽象类把设计和实现分开
- 只可以被extend
- 抽象类不可以被实例化
- 有抽象方法的类只能定义为抽象类
- 抽象类可以包含属性,方法,构造方法,但是构造方法不可以new实例,只可以用来被子类调用
- 抽象类只可以被继承,自己压根不可以实例化,不被继承那么这个类有什么意思
- 抽象方法必须被子类实现
- 属性方法可以为私有
14 接口
一种特殊的抽象类
- 被implement
- 接口中只有常量和抽象方法
- 属性和方法只可以是public
- 接口有多继承
public interface MyInterface {
public static final int PI = 3.14;
String MAX_AGE = "100"; // public static final可以省略
public abstract void test01(); // 只可以是public
int test02(int a,int b);
}
接口和抽象类的区别
- 接口就是比抽象类还要抽象的抽象类
- 全面的专业实现了:规范和具体实现的分离
- 接口的本质是契约,就像我们人间的法律一样,制定好后大家都遵守
- 项目的具体需求是多变的。我们必须以不变应万变才能从容的开发
- 面向接口变成