逻辑上方法(xyz)和xyz.method()之间有什么区别?
那么我知道在第一个xyz通过method(xyz)
其中xyz可能是变量或在Java中的字符串,进一步的方法本身是由用户定义,所以这可能是(或不)返回取决于写入的身体编码器。逻辑上方法(xyz)和xyz.method()之间有什么区别?
但现在这里来第二个xyz.method()
,我们知道这里xyz是对象 我们是否将xyz传递给此方法就像第一个。我的意思是里面发生了什么这是如何工作的?
请深入解释一下,你可以从任何这个或任何这个例子中作为例子。
str.length();
str.toChar();
xyz.method() - >对于这个工作,方法是由人谁写的类XYZ XYZ类露出里面。由于对象本身是调用方法,它知道它自己,所以没有任何东西像对象xyz传递给方法。但是在这个方法里面,xyz将会是可用的,因为xyz是被调用对象。方法(xyz) - >方法写在需要类型为XYZ的对象的任何类中,此方法不一定是类XYZ的一部分。这里xyz作为参数传递给方法,并且不会像这样提供。
method(xyz)
表示您正在调用当前类中定义的方法。
xyz.method()
表示xyz是某个类的对象(可以说是XYZ
),并且您正在调用一个在XYZ
类中定义的方法。
该代码段将您
class XYZ {
public void method() {
// some code here
}
}
class SomeOtherClass {
public void method1(XYZ xyz) {
xyz.method(); // case two
}
public void mainMethod() {
XYZ xyz = new XYZ();
method1(xyz); // case one
}
}
更有助于在第一种情况:
xyz
是一个参数的方法。
在第二种情况:
我们想要调用其在类定义XYZ
的方法。但是你不能像第一种情况那样直接访问它。要访问其他类中定义的方法或字段,我们必须创建该类的实例(在我们的示例中为xyz
),并且通过该实例,只要这些方法不是私有的,我们就可以访问这些方法。
从面向对象来看,存在逻辑差异。例如,如果我们调用方法kill
,那么xyz.kill()
表示对象xyz自杀,如果我们调用方法kill(xyz)
,则有人杀死xyz。
从技术上讲,如果方法不是静态的,则存在逻辑差异。 xyz.method()
表示xyz一定不能是null
(只要该方法是非静态的)。 method(xyz)
表示xyz可以为null,并且可以是其他内容。
此外没有逻辑差异。