阅读'in Java in Java;目前,布鲁斯·埃克尔(Bruce Eckel)。达到" 此"关键字点。对我而言,目前尚不清楚"这是如何真正的对象和"的"这个"。工作。布鲁斯·埃克尔(Bruce Eckel)在他的书中说:
如果您有两个类型的对象,称为 a 和 b ,您可能会想知道如何调用方法 Peel()对于这两个对象:
//: initialization/BananaPeel.java class Banana { void peel(int i) { /* ... */ } } public class BananaPeel { public static void main(String[] args) { Banana a = new Banana(), b = new Banana(); a.peel(1); b.peel(2); } } ///:~
如果只有一种称为 peel()的方法,该方法如何知道该方法是否被调用为对象 a 或 b ?
允许您以方便的面向对象的语法来编写代码,在该语法中,您将"发送消息发送给对象",编译器为您做一些秘密工作。有一个秘密的第一个参数传递给方法 peel(),该参数是对正在操纵的对象的引用。因此,两个方法调用变成了:
Banana.peel(a, 1); Banana.peel(b, 2);
因此,当我们创建一个对象时,它具有从类复制的方法。
A obj = new A();
obj.callMethod(); //<-- object uses it's own method, not the class, right?
,根据书籍从此类创建的对象。
这种机制如何在结果中起作用?
我没有得到这一部分:如果您有两个相同类型的对象,称为 a 和 b ,您可能会想知道如何调用方法 Peel()对于这两个对象。如果只有一种称为 Peel()的方法,该方法如何知道该方法是否被称为对象 a 或 b ?
这是什么意思"只有一种称为 peel()的方法"
我们拥有为每个对象创建的类创建的所有方法。因此,我们只从对象调用方法。
布鲁斯·埃克尔是什么意思?
如果您和我都在有趣的时候笑,您可能会说我们 share
我正在考虑以几乎相同的方式共享类实例。香蕉分享可以剥皮的财产。Banana
类指定Banana
对象是什么以及它们可以做什么。一些人将该类描述为用于创建对象或用于盖章的橡皮图章的模板。所有的香蕉都可以去皮,但是程序员仍然决定哪些人/他实际上是剥落的,以及何时剥落。用编程术语:Banana
类指定每个香蕉都有peel
方法,而该方法是什么。
当Eckel做a.peel(1);
时,他正在指定他正在剥离香蕉a
(而不是香蕉b
)。就我而言,这一切都是面向对象的程序员,需要知道使用香蕉及其方法。
类,对象和实例方法在许多地方都以许多方式描述。您可能会看到它是否可以帮助您搜索其他描述来补充Eckel。