面向过程&面向对象
方法前加static的区别
加上static变为静态方法,属于类,和类一起加载。
值传递和引用传递
值传递
只是传递值,不会改变值,调用change()方法后this.a的值没有改变。值传递不会改变值。
引用传递
类与对象的关系
创建与初始化对象
类是抽象的,只是定义了一个概念,要想使用类必须将其实例化出一个对象,通过具体的对象,赋予具体的属性来使用类。
创建了Student类,在Application类中实例化Student类并使用它
构造器
new一个对象时在堆栈中的操作
封装
get/set方法
将类中的属性定位private私有,外部类通过get()/set()来调用这些私有属性,get取值,set传值。
继承
在类中使用Ctrl+H可以显示该类的继承关系
super()
super()调用父类的无参构造,super(参数)调用父类的有参构造调用构造时super()必须放在方法第一行。super. 调用父类中的方法或属性。
super.name 调用父类的属性
super.print() 调用父类的方法
父类中private私有的方法属性无法被继承,不能通过super调用
new一个对象时,首先会自动调用父类的构造函数,然后调用子类的构造函数
将Student类实例化,首先调用Person的构造器,其次调用Student构造器
若要显示的调用父类构造器,则super()必须在子类构造器第一行
用this()调用自身构造器也必须在第一行,因此this()与super()冲突,不能放在同一个方法中
如果没有构造方法,虚拟机会默认一个无参构造方法,如果有构造方法,无论是有参的还是无参的,就不会有默认的无参构造方法
因此父类中有有参构造方法,子类中必须显示调用父类的有参构造,不能再隐示调用无参构造