Java 关键字
Java 数据类型
graph LR
Z[类型]-->A
Z-->AA
A[基础数据类型]-->B[数值类型]
A-->C[布尔类型]
B-->D[整数类型]
B-->E[浮点类型]
B-->F[字符类型]
D-->G[byte占一个字节]
D-->H[short占两个字节]
D-->I[int占四个字节]
D-->J[long占八个字节]
E-->K[float占四个字节]
E-->L[double占八个字节]
F-->M[char占两个字节]
C-->N[bool占一个字节]
AA[引用类型]-->BB[类]
AA-->CC[接口]
AA-->DD[数组]
Java 运算符
方法的shema
修饰符 返回值类型 方法名(形参列表) throws 异常 {
方法体;
return 返回值;
}
形参列表可以使用 形参类型...形参标识符 来表示可变参数。
构造方法没有返回值类型,也没有异常。一个类即使什么都不写,也会有一个默认的构造方法。
方法的重载规则
方法名必须相同
方法的形参列表必须不同(个数不同,或者类型不同,或者排列方式不同等)
Java方法可变参数规则
可变参数必须是方法形参列表中的最后一项
在参数类型和参数标识符中间写...来表示可变
可变参数的实质是数组,可以使用下标进行遍历
面向对象的三大特征
封装
在入口处做安全检查,提高了程序的安全性,避免程序被外部修改
隐藏实现细节
形成统一规范
提高程序的可维护性,只要接口不改变,就不影响运行
继承
is a的关系
java中只有单继承,没有多继承
私有的属性或者方法,无法被继承
子类调用父类构造方法时,必须在构造方法的第一行调用
静态方法的调用只和引用的类型有关,父类的引用指向子类对象,调用重写方法时,也只会调用父类的方法
非静态的方法的调用和对象类型有关,父类的引用指向子类对象,调用重写方法时,会调用子类的方法
对象能调用哪些方法,和引用类型中定义的方法有关,和实际指向对象无关
多态
只有方法有多态,属性没有多态
只有在有继承关系的类之间,且方法有重写,父类引用指向子类的对象时,才存在多态
在运行时,才来确定到底调用的是哪个对象的方法,因为和实际对象有关,new的是哪个对象,调用的就是谁的方法
匿名代码块和静态代码块
匿名代码块在对象创建的时候,先与构造方法执行
静态代码块在类加载的时候,优先执行,只执行一次
普通类、抽象类、接口
普通类: 只有具体的实现
抽象类:既有具体的实现,也有规范(抽象的方法,public abstract)
接口: 只有规范(抽象的方法,public abstract);定义的属性是静态的常量(public abstract final)