java面向对象
局部变量和成员变量的区别:
一:定义的位置不同
定义在类中的变量是成员变量
定义在方法中或者{}语句里面的变量是局部变量
二:在内存中的位置不同
成员变量存储在堆内存的对象中
局部变量存储在栈内存的方法中
三:生命周期不同
成员变量随着对象的出现而出现在堆中,随着对象的消失而从堆中消失(gc垃圾回收机制)
局部变量随着方法的运行而出现在栈中,随着方法的弹栈而消失
四:初始值不同
成员变量因为在堆内存中,所有默认的初始化值
局部变量没有默认的初始化值,必须手动的给其赋值才可以使用。
封装:
提高了代码的复用性。
隐藏了实现细节,还要对外提供可以访问的方式。便于调用者的使用。这是核心之一,也可以理解为就是封装的概念。
提高了安全性。
private:添加后只能在本类中使用
private int a;
this:加this区别局部变量与成员变量。
谁调用方法,this就代表谁:
boolean flag=p1.compare(p2)
public boolean compare(p2){
return this.age== p2.age}
继承:public class Son extends Father{}
子类继承父类的属性和方法
一个类只能有一个父类,多个类可以有一个父类
一个类的父类,可以是别的类的子类
使用super代表其父类
方法重写:
属性,子类中使用与同名的变量时,优先使用子类中的。
方法重写,当一个类是另一个类中的一种时,可以继承属性与功能。
如果父类具备的功能内容需要子类特殊定义时,进行方法重写。
使用super.xxxx()代表父类
public void show(){
super.show();
System.out.println("显示aaa");
System.out.println("显示bbb");
}