繁体   English   中英

如何在Java中将参数从一个类传递到另一个类?

[英]How to pass in the parameter from one class to another in Java?

如果这是一个重复的问题,请原谅我,但我是 Java 的初学者,我目前正在尝试从名为 Name 的类中获取参数值,并将该值传递给另一个名为 Student 的类。

名称类:

public class Name
{
    public String studentName;


    public Name(String fullName)
    {
        studentName = fullName;
    }
}  

学生班:

public class Student
{
    private Name studentName;
    private String id;
    private int credits;
    
    public Student(String studentID)
    {
        studentName = new Name("");
        id = studentID;
        credits = 0;
    }
}

我想要做的是获取在 Name 类中设置的fullName的参数值并将其传递给studentName = new Name(""); 对于 Student 类,而不是传入一个空字符串来检索名称。

“获取在 Name 类中设置的fullName的参数值”是什么意思? 一个类不会有值,你需要访问这个类的实例。 我很确定你会有某种控制类,例如你的main()所在的位置。

在某些时候,您将创建一个Name实例:

Name n = new Name("Brandon");

使用Name类的这个实例,您可以访问实际值:

Student s = new Student("4711", n.studentName);

,假设您还在 Student 构造函数中包含了一个附加参数:

public class Student
{
    private Name studentName;
    private String id;
    private int credits;
    
    public Student(String studentID, String name)
    {
        studentName = new Name(name);
        id = studentID;
        credits = 0;
    }
}

,但这会导致您拥有 2 个不同的Name对象。

另一种选择是将对象本身作为参数传递,因此您的两个对象都引用同一个对象。 更改n.studentNames.studentName studentName理论上会导致各自的值也被更改(尽管我可以回忆起有关 Java 中该主题的一些讨论)。

public class Student
{
    private Name studentName;
    private String id;
    private int credits;
    
    public Student(String studentID, Name nameObject)
    {
        studentName = nameObject;
        id = studentID;
        credits = 0;
    }
}

,由

Name n = new Name("Brandon");
Student s = new Student("4711", n);

您绝对应该开始阅读面向对象编程的介绍,因为仅仅在这几行代码中就有很多错误假设。 类和对象之间的区别至关重要,在这些场景中,通常在类中使用 getter/setter 而不是公共变量。 为了实现您想要的那种依赖关系,您可能需要在面向对象的上下文中研究组合和聚合。 此外,值传递和引用传递之间的区别也值得研究。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM