JAVA面向对象访问的几个容易混淆点

本文解析了Java中的对象、类型及变量的概念,详细介绍了它们在内存中的存储位置,并通过示例代码展示了属性如何跟随变量变化而变化,而方法则始终跟随对象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、一定分清楚几个概念,那就是对象,类型,变量。类型是存储到方法区的,对象是实例化类型的,是放在堆区,实际程序流程执行的基本数据类型和自定义对象引用则是存储在栈区,因为这些设计到内存机制,还有虚拟机一些机制,因为这些和实际操作系统的内存分区还是有区别的。

2、属性的引用是通过变量来进行的,但是方法的引用则是通过对象进行的。这就说明了一个问题,如果两个变量的对象是一样的,但是他的属性值却有可能不一样。造成这个复杂情况的原因在于是面向对象编程的复杂性。

如:

          class A1

{   

String name="张三”;

public fangfa

{

System.out.println(this.name);

}

}

class B1 extends A1

{

String name="李四";

public fangfa

{

System.out.println(this.name);

}

}

public  static void main()

{

B1 b1=new B1();

A1 a1=b1;

System.out.println("b1的name变量值为“+b1.name+”;a1的name变量值为“+a1.name);

a1.fangfa();

b1.fangfa();

}

编译结果:

b1的name变量值为李四;a1的name变量值为张三;

李四;

李四

这段代码只是演示出来,可能有编译错误没有仔细检查。上述代码只是说明,属性是跟着变量走的,但是方法确实跟着对象走的。

如有错误,欢迎指正,谢谢。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值