Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在对象中调用对象_Java_Oop - Fatal编程技术网

Java 如何在对象中调用对象

Java 如何在对象中调用对象,java,oop,Java,Oop,我有一门课叫“男人,打孔和测试” PUNCH对象是MAN类中的一个字段,一切正常 但是在Test类中,我想访问PUNCH类的一个方法。我该怎么做呢?谢谢如果您有3个类,并且希望访问嵌套方法,那么它们必须是公共的或公共静态的 如果MAN类中有一个getPunch(),则可以访问MAN对象并让他触发punch 您的man类必须具有字段punch,并且必须具有创建punch对象的方法 public class Man { Punch punch; public man(){ p

我有一门课叫“男人,打孔和测试”

PUNCH对象是MAN类中的一个字段,一切正常


但是在Test类中,我想访问PUNCH类的一个方法。我该怎么做呢?谢谢

如果您有3个类,并且希望访问嵌套方法,那么它们必须是公共的或公共静态的

如果MAN类中有一个getPunch(),则可以访问MAN对象并让他触发punch

您的man类必须具有字段punch,并且必须具有创建punch对象的方法

public class Man {
   Punch punch;
   public man(){
      punch = new Punch();
   }
   public Punch getPunch(){
      return punch();
   }
}
然后,您可以通过getPunch访问punch对象

Man man = new Man();
man.getPunch().somePunchMethod();
或者创建对冲压字段的引用,并使用它访问冲压方法

Man man = new Man();
Punch punch = man.getPunch();
punch.somePunchMethod();

如果您想访问嵌套类中的方法,下面是答案

 //Initialise outer-class
 Man man = new Man();
 //initialise nested-class
 MAN.PUNCH punch = man.new PUNCH();

 //resolve the method of your nested class
 punch.methodInPUNCH();
如果要访问MAN类中实例化的Punchobject,它应该如下所示:

   public class MAN{

   PUNCH punch;

     public MAN(){ 
      this.punch = new PUNCH();
    }

    public PUNCH getPunch(){
    return punch;
    }
  }
然后在
PUNCH
中访问您的
方法()

MAN man = new Man();
PUNCH punch = man.getPunch();
punch.yourMethodInPunch();

manObject.punchObject.punchMethod()试过了吗?这是非常基本的,有很多类似的问题和答案。如果你有进一步的问题,你可能想看看thead,但他想和内部类一起工作。你为这个例子提供一个Answare,这个方法在他的man类中,但不是嵌套的punch类。他没有要求嵌套的类,他要求嵌套的fieldwell。如果是这样的话,他会实例化他的punch对象。PUNCH-PUNCH=new-PUNCH(),之后他必须在返回PUNCH对象的MAN类中创建一个getter函数。编辑它,我会给你一个上视窗。它非常基本,应该为每个新手清除。但我认为作者根本没有和二传手合作过。还可以查看我编辑的解决方案。应直接创建冲压对象。您可以直接创建类似于“this.PUNCH=new PUNCH();”的冲压对象,而不是“PUNCH-PUNCH=new-PUNCH();this.PUNCH=PUNCH;”。这是可选的,因为没有其他对冲压字段的引用。我知道,但是不内联它更容易理解。我会说,这是一个编程风格的术语。我无论如何都要编辑它