这里主要对面向对象里面的关键字进行比较,基本面向对象里面的关键字搞懂了,面向对象就会慢慢的理解
private关键字
私有化,权限修饰符
修饰的属性会无法直接被外界访问,如果想要访问,必须对外提供set和get方法
final
final修饰类不可以被继承,但是可以继承其他类。
final修饰的方法不可以被覆盖,但父类中没有被final修饰方法,子类覆盖后可以加final。
final修饰的变量称为常量,这些变量只能赋值一次,定义的时候必须有初始值,不能变。
final修饰的引用类型变量,表示该引用变量的引用不能变,而不是引用所指的对象中的数据还是可以变化的;
this&super
- this与super在继承中的使用
- 如果子类中出现非私有化的且与父类同名的变量时
- 子类要访问本类中的变量用this
- 子类要访问父类中的变量用super
static
通过上面的演示,发现被静态修饰的方法中无法访问非静态的属性和方法。这是为什么呢?
- 静态是随着类的加载就加载了。也是随着类的消失而消失了。
- 静态优先于对象存在,被对象共享。
- 因为静态先存在于内存中无法访问后来的对象的中的数据,所以静态无法访问非静态。而且内部无法书写this。因为这时对象有可能不存在,this没有任何指向。
静态方法使用注意事项:
-
静态方法不能访问非静态的成员。但是非静态可以访问静态成员的。
说明:静态的弊端在于访问出现局限性。好处是可以直接被类名调用。
-
静态方法中不允许出现this,super关键字。
main 方法其实也静态的。因为main是程序的入口,是提供给JVM使用的,当在dos中输入java XXX时,会启动JVM,同时JVM会加载以XXX为名称的这个class文件进内存。并扫描其中有没有main方法。若有main方法JVM就会去调用这个main方法。JVM调用main方法,是不会创建对象的,没有对象怎么调用方法,这个方法只能被静态修饰。JVM通过类名调用的。
继承:extends
抽象类:abstract
接口: interface implements