一:数据类型
1.1:数据类型分类
- 基本数据类型:整数 、 浮点数 、 字符 、 布尔 。
- 引用数据类型:类、数组、接口。
1.2:基本数据类型(四类八种)
二:变量
2.1:成员变量和局部变量
- 位置
成员变量:类中
局部变量:方法中
- 初始化
成员变量:有初始化
局部变量:没有初始化,先定义再赋值最后使用
- 内存位置
成员变量:堆内存
局部变量:栈内存
- 生命周期
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
三:权限
3.1:final关键字
- final:不可改变
类:被修饰的类,不能被继承。
方法:被修饰的方法,不能被重写。
变量:被修饰的变量,不能被重新赋值。
- 权限修饰符
四:对象
4.1:对象执行内存图
4.2:面向对象三大特性
- 封装
a:将成员变量隐藏在对象内部,外界无法直接操作和修改。要操作该类数据,必须通过指定方式。适当的封装可以代码更好的理解和维护。
b:this代表该类当前对象。
- 继承
a:子类可以继承父类的非私有的属性和行为。提高代码复用性。
b:this代表当前对象,super代表父类对象。
c:父类的私有变量,子类无法直接获取。因此需要借助公共的get和set方法。
d:构造方法需要和类名一样,所以构造方法无法继承。
e:所以子类的初始化过程中,必须先执行父类的初始化动作。子类的构造方法中默认有一个 super() ,表示调用父类的构造方法。super()和this()都在第一行,不能同时使用。
f:单继承
h:继承抽象类,子类必须实现父类所有抽象方法。
- 多态
a:是指同一行为,具有多个不同表现形式。
b:继承和实现必须二选一。
- 向上转型和向下转型
向上转型:父类类型 变量名 = new 子类类型();是自动的。
向下转型:子类类型 变量名 = (子类类型) 父类变量名;是强制的。
4.3:抽象类
- 抽象类
a:包含抽象方法的类。
public abstract class Animal {
public abstract void run();
}
b:不能创建对象,可以有构造方法,供子类创建对象时,初始化父类成员使用。
c:抽象类不一定含有抽象方法。
- 抽象方法
没有方法体。
public abstract void run();
4.4:接口
- 描述
接口是方法集合,接口主要用来封装方法。
- 定义
public interface 接口名称 {
// 抽象方法 (public abstract 可以省略)
// 默认方法 (含有多个必须重写)
// 静态方法 (只能使用接口名调用)
// 私有方法
}
- 性质
a:必须实现所有的抽象方法。
b:继承所有的默认方法。
c:多实现。
e:不能定义成员变量,可以定义常量。
f:没有构造方法。
g:没有静态代码块。
4.5:内部类
- 定义
class 外部类 {
class 内部类{
}
}
- 性质
a:内部类可以直接访问外部类的成员,包括私有成员。
b:外部类要访问内部类的成员,必须要建立内部类的对象。