java-通过嵌套类发送变量

时间:2018-10-02 18:21:29

标签: java class inner-classes

我有一个类,其变量类型为Name

public class Holder {
   private Name name;
   private int snumber;

Name类具有两个名为firstlast的字符串,这些字符串由setter方法分配值。我想将Name类中的字符串发送到Holder类中的名称,但是这样做很麻烦。我认为我已经朝着正确的方向迈出了一步

public class Holder {
   private Name name;
   private int snumber;

   public void setName(){
      name = new Name();
      name.getFirst();
      name.getLast();
   }

但是我不能说我真的知道正确的方法是什么。我也尝试过name.setFirst(getFirst),但这不起作用。任何想法将不胜感激。

3 个答案:

答案 0 :(得分:1)

与不嵌套类的方式相同。

您的setName()方法应带有一个参数(可能是2,第一个和最后一个),然后调用name.setFirstName(),name.setLastName()方法。

现在,您的setName()方法没有执行任何操作。

E.G:

public class Holder
{
   private Name name;
   private int snumber;

   public Holder()
   {
       this.name = new Name();
   }

   public void setName(String firstName, String lastName)
   {
      this.name.setFirst(firstName);
      this.name.setLAst(lastName);
   }
}

答案 1 :(得分:0)

这是一篇很好的文章,解释了Java内部和外部类之间的关系:

https://www.tutorialspoint.com/java/java_innerclasses.htm

class Outer_Demo {
   // private variable of the outer class
   private int num = 175;  

   // inner class
   public class Inner_Demo {
      public int getNum() {
         System.out.println("This is the getnum method of the inner class");
         return num;
      }
   }
}

public class My_class2 {

   public static void main(String args[]) {
      // Instantiating the outer class
      Outer_Demo outer = new Outer_Demo();

      // Instantiating the inner class
      Outer_Demo.Inner_Demo inner = outer.new Inner_Demo();
      System.out.println(inner.getNum());
   }
}

请注意,该示例同时创建了“ Outer_Demo”和“ Inner_Demo(outer.new Inner_Demo();)的实例。

答案 2 :(得分:0)

好,所以我想出了一些可行的方法。

public class Holder {
  private int snumber;
  private Name name;

 public void setName(Name n){
  name=n;
  }
 public Name getName(){
  return name;
}