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");
}

原文地址:https://www.cnblogs.com/god3064371/p/11525593.html