有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从逻辑上讲,方法(xyz)和xyz之间的区别是什么。方法()?

我知道,在第一个示例中,xyz在method(xyz)中传递,其中xyz在java中可能是变量或字符串,而且方法本身是由用户定义的,因此这可能是(或不是)返回取决于编码器编写的主体

但是现在是第二个xyz.method(),我们知道这里xyz是对象吗 我们是否像第一个一样将xyz传递给这个方法。我是说里面发生了什么这是怎么回事

请深入解释,你可以从任何一个或任何一个例子

  1. str.length();
  2. str.toChar();

共 (3) 个答案

  1. # 1 楼答案

    从面向对象的角度来看,有一个逻辑上的区别。例如,如果我们调用方法kill,那么xyz.kill()意味着对象xyz自杀,如果我们调用方法kill(xyz),那么有人杀死了xyz

    如果方法不是静态的,那么从技术角度来看,逻辑上是有区别的。xyz.method()表示xyz不能是null(只要方法是非静态的)。method(xyz)表示xyz可以为null,也可以是其他内容

    此外,在逻辑上也没有区别

  2. # 2 楼答案

    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是方法的参数

    在第二种情况下:

    我们想调用一个在类^{中定义的方法。但你不能像我们在第一个案例中那样直接访问它。要访问在其他类中定义的方法或字段,我们必须创建该类的实例(在我们的例子中是^{),并且通过该实例,我们可以访问这些方法,前提是这些方法不是私有的

  3. # 3 楼答案

    xyz。方法()>;为了实现这一点,方法将由编写类XYZ的人在类XYZ中公开。因为对象本身正在调用它知道自己的方法,所以并没有什么比对象xyz传递给方法更好的了。但在该方法中,由于xyz是被调用者对象,因此xyz将是可用的

    方法(xyz)>;方法,该方法不一定是类XYZ的一部分。在这里,xyz作为参数传递给方法,因此不可用