第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

將對象數(shù)組傳遞給方法

將對象數(shù)組傳遞給方法

尚方寶劍之說 2021-11-24 15:59:52
所以我想使用一種方法將多個(gè)對象寫入各自的文件。但是我不知道如何在不定義特定對象的情況下導(dǎo)入對象數(shù)組。people is class 純粹用于將創(chuàng)建的對象存儲在數(shù)組中,因此可以更輕松地跨其他類訪問。例如public class People {    private Student[10];    private Teacher[10];    public void setStudentArray(Student, index) {        Student[index] = Student;    }    public void setTeacherArray(Teacher, index) {        Teacher[index] = Teacher;    }}public class Student extends People {    String name;    int StudentID;    public String getName() {        return name;    }}public class Teacher extends People {    String name ;    int Teacher ID;    public String getName() {        return name;    }}public class Main {    People p = new People();    public void main (String[] args) {        Student s = new Student("default-name" , 1);        p.setStudentArray(s, 0);        Teacher t = new Teacher("default-name", 1);        p.setTeacherArray(t, 0);        outputName(p.getStudentArray, 0);        outputName(p.getTeacherArray, 0)    }    //THIS IS WHERE I AM STRUGGLING I dont know how to pass teachers or students array to it.    //I want the Object[] parameter to accept both Student[] and Teacher[]    public void outputName(Object[], index) {        System.out.println(Object[index].getName);      }   }我認(rèn)為我的方法采用 Object[] 是錯(cuò)誤的,但我不知道如何處理它。我認(rèn)為問題在于 Object[] 與 Teacher[] 和 Student[] 是一個(gè)完全不同的類,這就是我出錯(cuò)的地方。我想在教師和學(xué)生的班級中使用 .getName 方法來打印學(xué)生教師的姓名。(只是為了讓我可以看到傳球正在起作用。)如果這是不可能的,我想我不會(huì)嘗試可以采用不同對象的方法。我知道我只能使用兩種方法,一種用于學(xué)生,一種用于教師,但我希望該方法適用于多個(gè)對象,以便我可以向其中添加更多對象數(shù)組。
查看完整描述

3 回答

?
ibeautiful

TA貢獻(xiàn)1993條經(jīng)驗(yàn) 獲得超6個(gè)贊

首先學(xué)習(xí)如何聲明數(shù)組并選擇有效的變量。


在您的 People 類中進(jìn)行以下修改。


public class People {

    //Declare arrays like this.

    private Student[] student;

    private Teacher[] teacher;


    //Initialize arrays

    public People(){

        student = new Student[10];

        teacher = new Teacher[10];

    }

    public void setStudentArray(Student s,int index) {

        student[index] = s;

    }


    public void setTeacherArray(Teacher t, int index) {

        teacher[index] = t;

    }


    //Add getter methods

    public Student[] getStudentArray(){

        return student;

    }


     public Teacher[] getTeacherArray(){

        return teacher;

    }

}

在子類 Student 和 Teacher 添加 Argument 構(gòu)造函數(shù)


最后在你的 outputName 方法中你可以做這樣的事情。


 public static void outputName(Object[] obj, int index) {


    if(obj instanceof Student[]){

        Student[] s = (Student[])obj;//parsing to student array

        System.out.println("Student name : "+s[index].getName());

    }


    if(obj instanceof Teacher[]){

        Teacher[] teacher = (Teacher[])obj;//parsing to teacher array

        System.out.println("Teacher name : "+teacher[index].getName());

    }



}  

輸出:


Student name : default-name

Teacher name : default-name


查看完整回答
反對 回復(fù) 2021-11-24
?
暮色呼如

TA貢獻(xiàn)1853條經(jīng)驗(yàn) 獲得超9個(gè)贊

所以Peopleclass 是由Studentand擴(kuò)展的Teacher

這里有什么共同點(diǎn)?

  1. String name存在于StudentTeacher

  2. public String getName()也存在于StudentTeacher

您可以將這些共性轉(zhuǎn)移到People課堂上。還要確保從 Student 和 Teacher 類中刪除 name 屬性和 getName

所以你People 更新的課程可以是:

public class People {

    private String name; //Newly added


    private Student[10];   //This ideally shouldn't be in People class rather a different class

    private Teacher[10];   //This ideally shouldn't be in People class rather a different class


    public void setStudentArray(Student, index) {

      Student[index] = Student;

    }


    public void setTeacherArray(Teacher, index) {

      Teacher[index] = Teacher;

    }


    public String getName() {

      return name;

    }


    public void setName() {

      this.name = name;

    }

}

outputname 方法應(yīng)該是這樣的:


public void outputName(People[] people, index) {

    System.out.println(people[index].getName());  

}

注意:我不是在這里更正語法,而只是提供一個(gè)想法。


查看完整回答
反對 回復(fù) 2021-11-24
?
HUX布斯

TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊

你必須稍微改變你的建模。即使您設(shè)法將 Student[] 作為 Object[] 傳遞,您也無法調(diào)用 getName 方法,因?yàn)樗皇?Object 方法。

因此,更好的建模方法是將 getName 方法設(shè)為 People 方法,并且 Student 和 Teacher 類都將繼承它。

然后你可以接收 People[] 作為 outputName 方法參數(shù),并在里面使用 getName 方法。


查看完整回答
反對 回復(fù) 2021-11-24
  • 3 回答
  • 0 關(guān)注
  • 190 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號