逻辑上方法(xyz)和xyz.method()之间有什么区别?

问题描述:

那么我知道在第一个xyz通过method(xyz)其中xyz可能是变量或在Java中的字符串,进一步的方法本身是由用户定义,所以这可能是(或不)返回取决于写入的身体编码器。逻辑上方法(xyz)和xyz.method()之间有什么区别?

但现在这里来第二个xyz.method(),我们知道这里xyz是对象 我们是否将xyz传递给此方法就像第一个。我的意思是里面发生了什么这是如何工作的?

请深入解释一下,你可以从任何这个或任何这个例子中作为例子。

  1. str.length();
  2. 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,并且可以是其他内容。

此外没有逻辑差异。