簡體   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