簡體   English   中英

如何在另一個類中將類對象作為變量作為構造函數參數傳遞?

[英]how to pass class object as variable as constructor parameter in another class?

我有一個名為 Fullname 的類,其中包含變量 fname、mname 和 lname。 然后另一個類 Participant 具有 Fullname 類型的變量名稱,int 類型的標記。 在另一個類中,我必須創建大小為 5 的 Participant 數組,並且必須存儲來自用戶輸入的信息。

我的問題是如何讀取 Fullname 變量的值,然后將其作為構造函數參數傳遞。 在使用掃描儀時,它給出了無法從字符串轉換為全名的錯誤。

我沒有得到 Fullname 變量的正確輸出

public class Participant {
    fullname name;
    int rollno;
    float marks;

    public Participant(fullname nameFullname, int rollno, float marks) {
        super();
        this.name=new fullname(null, null, null);
        this.rollno = rollno;
        this.marks = marks;
    }

    @Override
    public String toString() {
        return "name=" + name + ", rollno=" + rollno + ", marks=" + marks + "";
    }
}

public class Implements {

    public static void main(String[] args) {
        String a = null, b = null, c = null;
        int rollno = 0;
        float marks = 0;
        Participant part[] = new Participants[5];
        Scanner sc = new Scanner(System.in);

        rollno = sc.nextInt();
        marks = sc.nextFloat();
        a = sc.next();
        b = sc.next();
        c = sc.next();

        Fullname name = new Fullname(a, b, c);

        part[1] = new Participant(name, rollno, marks);
        System.out.println(part[1].toString());
    }
}

sc.next()

正在返回一個Stringhttp://docs.oracle.com/javase/7/docs/api/java/util/Scanner.html#next() )並且您正試圖將它分配給一個Fullname對象。 Fullname不是 String 的實例,因此它無效。 如果你想做這個任務,你需要實現一個函數來為你處理。

part=new participants(name,rollno,marks)

不起作用,因為您將 part 聲明為一個數組,並且您正在嘗試將Participants分配給它。 (順便說一下,該類應該用大寫字母聲明)。 如果要分配它,請添加索引。 (例如part[0] = new participants(name,rollno,marks) )

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM