0. 类与文件
一个 java 文件可以写多个类,每个类里面可以有main函数,一个java文件里面只能有一个 public 类,此时 java 文件的命名只能是public类名.java。使用 javac 编译一个 java 文件时,如果有多个类,会生成多个 类名.class 文件,java 类名 执行程序(单元测试)。多个class 文件可以打包成一个 jar 文件,java -jar test.jar 执行前需要设置一下程序入口,即在MANIFEST.MF 里面添加如下一句话:Main-Class: test.someClassName
1. 关键字
final
可以修饰类,方法和成员变量
final修饰的类不能被继承final修饰的方法不能被覆盖final修饰的变量是常量,只能赋值一次
覆盖注意事项:
1. 子类方法覆盖父类方法时,子类方法的权限要>=父类
2. 静态方法只能覆盖静态方法
3. 如果父类方法添加final, 则子类重新定义此方法会编译出错
4.在子类方法中可以通过super.method 调用父类方法,当然如果父类方法是private,也是不能调用的(实际上是子类重新定义method,并没
有覆盖父类method,可以认为父类method被隐藏了)
static
-
用于修饰成员(成员变量和成员函数),被修饰后的成员具备以下特点:
随着类的加载而加载,随着类的消失而消失
优先于对象而存在
被所有对象所共享
可以直接用类名调用如类名.成员
用于修饰静态代码块: static {...}
随着类的加载而执行,而且只执行一次,可以用于给类进行初始化
注:构造代码块{...}随着对象的构造而执行,而且创建几次就执行几次,可以用于给所有对象进行初始化
静态代码块-->构造函数{super()-->成员初始化-->构造代码块-->后续语句}
使用注意:
静态方法只能访问静态成员
静态方法中不可以出现this, super等关键字
主函数是静态的
this & super this代表本类对象的引用 super代表一个父类空间 当本类的成员和局部变量同名用this区分 当子父类的成员变量同名用super区分父类