为何new出来的对象中不包括成员方法?但用对象又能调用类中的成员方法,这不是自相矛盾吗?

来源:8-8 【面向对象】几个注意事项

调御丈夫

2023-07-19

查阅资料中得知创建出来的对象只包含成员变量,而不包括成员方法,这是什么意思?每个对象在堆中不都含有相同的成员方法和成员属性吗?为何又说不包括成员方法呢?

写回答

2回答

莫名的Low

2023-07-25

Java对象之所以只包含成员变量而不包含成员方法,主要有以下几点原因:


1. 方便复用

Java的方法是独立于对象存在的,对象只需要存储数据状态,可以用同一个方法来处理不同对象,提高了代码的复用性。


2. 降低内存占用

如果每个对象都包含方法,那么多个对象会导致方法代码重复存储,占用更多内存。


3. 方便内存管理

对象只包含变量,没有方法,这样对象的内存结构更简单,有利于Java虚拟机进行内存优化和垃圾回收。


4. 符合面向对象设计

方法表示对象的行为,但行为可以设计成独立的模块,通过消息传递来触发方法执行。这符合面向对象的设计思想。


5. 支持多态

方法独立存在,可以通过动态绑定来实现不同对象执行同一个方法的不同版本,从而支持多态。


6. 便于调试

方法独立于对象,可以单独调试方法本身,而不依赖具体对象。


0
0

彭彭老师

2023-07-24

成员方法存放在方法区中,堆内存中存放的是成员方法的地址,每个对象通过地址找到成员方法

//img.mukewang.com/szimg/64be450a0956f16715520702.jpg

0
0

Java零基础入门与实战

Java零基础入门与实战 多场景|多案例|全栈项目

277 学习 · 220 问题

查看课程