Java进阶——Attention Day3

Java进阶——Attention Day 3


今天继续整理一下OOP。

1、JVM内存的划分

JVM内存分为“栈” 、“堆” 、 “ 方法区”,用于分别存储不同数据。

  • 栈(Stack):用于存储局部变量、引用类型的地址、方法的基本类型变量的参数。
public class memory {
public static void main(String[] args) {
int a = 1;//局部变量
int[] arr = new int[3];//引用类型
int age = 10;
hello(age);
System.out.println(age);
	}
public static void hello(int age){//参数
age = 20;
	}
}
  • 堆(Heap):用于存储类的非静态成员变量、引用类型的实例、方法的引用类型参数的实例。

NOTE:实例就是new出来的东西

  • 方法区(Method Area):用于存储类的信息,类的静态成员变量、类的静态方法、非静态方法 、.class信息。

NOTE:方法只有一份,类在实例化对象时,多个对象拥有属于自己的堆空间,但是所有实例对象是共用在方法区中的一份方法去定义的。

2、static关键字
  • 用static修饰的成员变量不属于对象
  • static变量是属于类的变量,通常通过类名调用
  • static成员变量和类的信息一起存储在方法区里面,而不是在堆里面,一个类的static成员变量只有一份,无论创建了多少对象只有一份。

NOTE:

1、静态方法和非静态方法都可以调用静态成员变量
2、静态方法中不可以直接调用非静态成员变量
3、静态方法和非静态方法中都可以调用静态方法
4、静态方法中不能直接调用非静态方法
5、非静态方法可以调用非静态方法
6、静态方法中不能使用this关键字
7、静态方法中不能直接使用非静态成员变量(可以new对象来调用)
3、继承

java中继承指的是一个类继承另一个类,被继承的类叫做父类,继承的类叫做子类,使用extends关键字。

  • 子类中相同的属性和方法抽离出放入父类,子类继承父类,实现属性和方法的复用。
  • 子类中放入自己特有的属性和方法。
  • 子类可以继承父类成员变量和方法。
  • 子类不能继承父类的构造器(有参和无参)。
  • 当子类属性名和父类相同时,优点调用子类的属性。
  • 子类是可以继承父类private修饰的成员变量,但是不能直接使用,可以通过该变量的setter getter方法来访问。
  • 子类可以重写父类的方法:子类继承了父类的方法,当子类觉得父类的方法不适用了,可以重新写父类方法功能,子类再调用重写的方法时,执行的是自己重写的方法。
  • 重写方法的规则:方法名和参数列表和父类一致。
4、方法重写

方法重写是指子类定义的方法名和父类一致,会覆盖父类中的该方法,调用的是子类自己的方法。

NOTE:

1、方法名称必须和父类的方法名称完全一致。
2、方法的参数列表必须和父类的参数列表完全一致。
3、子类重写父类的方法,访问修饰符必须大于等于父类方法的访问修饰符。
public>protected>默认>private

方法重写和重载的区别

  • 方法重写:发生在父子类中,子类重写父类的方法
  • 方法重载:发生在本类中,方法名相同,参数列表不同


PS:如有不足,敬请指正!😺

我知道这世界上没有最好,只有更好;我想要的一切都要靠自己的努力得到。

  • 5
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值