为何new出来的对象中不包括成员方法?但用对象又能调用类中的成员方法,这不是自相矛盾吗?
来源:8-8 【面向对象】几个注意事项

调御丈夫
2023-07-19
查阅资料中得知创建出来的对象只包含成员变量,而不包括成员方法,这是什么意思?每个对象在堆中不都含有相同的成员方法和成员属性吗?为何又说不包括成员方法呢?
写回答
2回答
-
莫名的Low
2023-07-25
Java对象之所以只包含成员变量而不包含成员方法,主要有以下几点原因:
1. 方便复用
Java的方法是独立于对象存在的,对象只需要存储数据状态,可以用同一个方法来处理不同对象,提高了代码的复用性。
2. 降低内存占用
如果每个对象都包含方法,那么多个对象会导致方法代码重复存储,占用更多内存。
3. 方便内存管理
对象只包含变量,没有方法,这样对象的内存结构更简单,有利于Java虚拟机进行内存优化和垃圾回收。
4. 符合面向对象设计
方法表示对象的行为,但行为可以设计成独立的模块,通过消息传递来触发方法执行。这符合面向对象的设计思想。
5. 支持多态
方法独立存在,可以通过动态绑定来实现不同对象执行同一个方法的不同版本,从而支持多态。
6. 便于调试
方法独立于对象,可以单独调试方法本身,而不依赖具体对象。
00 -
彭彭老师
2023-07-24
成员方法存放在方法区中,堆内存中存放的是成员方法的地址,每个对象通过地址找到成员方法
00
相似问题