java-通过嵌套类发送变量

java-通过嵌套类发送变量,java,class,inner-classes,Java,Class,Inner Classes,我有一个类,它有一个类型为Name的变量 public class Holder { private Name name; private int snumber; Name类有两个名为first和last的字符串,它们由setter方法赋值。我想将Name类中的字符串发送到Holder类中的Name,但我在这样做时遇到了问题。我想我已经朝着正确的方向迈出了一步 public class Holder { private Name name; private int s

我有一个类,它有一个类型为
Name
的变量

public class Holder {
   private Name name;
   private int snumber;
Name
类有两个名为
first
last
的字符串,它们由setter方法赋值。我想将
Name
类中的字符串发送到
Holder
类中的Name,但我在这样做时遇到了问题。我想我已经朝着正确的方向迈出了一步

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

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

但我不能说我真的知道正确的方法是什么。我还尝试了
name.setFirst(getFirst)
,但没有成功。如果您有任何想法,我们将不胜感激。

如果该类没有嵌套,您也会有同样的想法

setName()方法应该接受一个参数(可能是2,第一个和最后一个),然后调用name.setFirstName()、name.setLastName()方法

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

例如:


下面是一篇解释Java内部类和外部类之间关系的好文章:


请注意,该示例创建了“外部演示”和“内部演示”(
Outer.new internal\u Demo();
)的实例。

好的,所以我找到了一些可行的方法

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

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

你能提供一些你想做的事情的背景吗?真实的情况。你能告诉我们类
Name
的定义吗?
NullPointerException
。也许你应该先创建一个
Name
对象。@dustytrash我实际上从来没有见过这个。以前,但我会看看我是否能从这里找到它。@dustytrash会的这不是.name.setFirst(firstname)吗?只需将一个值发送回name类中的setFirst方法?@dustytrash我将进一步阅读并稍后重试。感谢您的时间。它是一个内部类吗?问题中的示例仅显示了类型为name的常规字段,而没有显示该名称是一个内部类。问题是“通过嵌套类发送变量”。这有助于回答这个问题……还讨论了几个相互关联的问题。我鼓励OP阅读它。是的,OP的示例可能根本不涉及嵌套类。阅读这篇文章更有理由;)问题:“类似于“@53a68791”。。。当我尝试从阵列插槽打印它时。一种解决方案:覆盖要打印的类(例如“Name”)。PS:你读过关于“嵌套类”的文章吗。您是否使用了任何“内部类”?@paulsm4另一个我真的应该立即意识到的解决方案是从名字中明确地获得名字或姓氏。我读了这篇文章,是的,我正在使用嵌套类。如果我没有弄错的话,holder和name只是从一个类访问的更大类集合的两部分。“嵌套类”意味着“一个类在另一个类的定义中定义”。您的可能正在使用也可能没有使用“嵌套类”;到目前为止,您显示的代码没有任何内容。
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());
   }
}
public class Holder {
  private int snumber;
  private Name name;

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