从逻辑上讲,方法(xyz)和xyz之间的区别是什么。方法()?
我知道,在第一个示例中,xyz在method(xyz)
中传递,其中xyz在java中可能是变量或字符串,而且方法本身是由用户定义的,因此这可能是(或不是)返回取决于编码器编写的主体
但是现在是第二个xyz.method()
,我们知道这里xyz是对象吗
我们是否像第一个一样将xyz传递给这个方法。我是说里面发生了什么这是怎么回事
请深入解释,你可以从任何一个或任何一个例子
str.length();
str.toChar();
# 1 楼答案
从面向对象的角度来看,有一个逻辑上的区别。例如,如果我们调用方法
kill
,那么xyz.kill()
意味着对象xyz自杀,如果我们调用方法kill(xyz)
,那么有人杀死了xyz如果方法不是静态的,那么从技术角度来看,逻辑上是有区别的。
xyz.method()
表示xyz不能是null
(只要方法是非静态的)。method(xyz)
表示xyz可以为null,也可以是其他内容此外,在逻辑上也没有区别
# 2 楼答案
method(xyz)
表示您正在调用当前类中定义的方法xyz.method()
意味着xyz是某个类的对象(比如XYZ
),您正在调用XYZ
类中定义的方法这段代码对您更有帮助
在第一种情况下:
xyz
是方法的参数在第二种情况下:
我们想调用一个在类^{中定义的方法。但你不能像我们在第一个案例中那样直接访问它。要访问在其他类中定义的方法或字段,我们必须创建该类的实例(在我们的例子中是^{),并且通过该实例,我们可以访问这些方法,前提是这些方法不是私有的
# 3 楼答案
xyz。方法()>;为了实现这一点,方法将由编写类XYZ的人在类XYZ中公开。因为对象本身正在调用它知道自己的方法,所以并没有什么比对象xyz传递给方法更好的了。但在该方法中,由于xyz是被调用者对象,因此xyz将是可用的
方法(xyz)>;方法,该方法不一定是类XYZ的一部分。在这里,xyz作为参数传递给方法,因此不可用