2017-04-11 4 views
2
public class Member { 

private String name; 
private String address; 



public Member(String name,String address) 
{ 

    this.name=name; 
    this.address=address; 


} 
public String getName() 
{ 
    return name; 
} 
public void setName(String name) 
{ 
    this.name = name; 
} 
public String getAddress() 
{ 
    return address; 
} 
public void setAddress(String address) 
{ 
    this.address = address; 
} 

public String toString() 
{ 
return name +","+ " " + address; 
} 

public static void main(String[] args) { 

    Member m1=new Member("ravi","h-no :912"); 

    System.out.println(m1.toString()); 
} 

} 

メンバークラスを拡張しようとしています.iはプライベート変数のみを使用する必要があります。私はプライベート変数を使用する場合継承でプライベート変数を使用する

import java.util.ArrayList; 

public class Undergraduate extends Member { 
private int numCourses; 
private ArrayList<String> courses = new ArrayList<String>(); 
private ArrayList<Integer> grades = new ArrayList<Integer>(); 


public Undergraduate(String name, String address) { 
    super(name,address); 

} 
public void addCourseGrade(String course,int grade) 
{ 
    courses.add(course); 
    //String grade1=String.valueOf(grade); 
    grades.add(grade); 
} 
public double getAverageGrade() { 
    double sum=0; 
    for(int i=0; i < grades.size() ; i++) 
      sum = sum + grades.get(i); 

       //calculate average value 
    double average=0; 
    average= sum/grades.size(); 

    return average; 
} 

public String toString() 
{ 
return name +address;// i want to return undergraduate name and address here 
} 

public static void main(String args[]) 
{ 
    Undergraduate undg = new Undergraduate("kimi", "hno 123"); 
    undg.addCourseGrade("CS500", 2); 
    undg.addCourseGrade("CS560", 1); 
    System.out.println(undg.toString()); 
    System.out.println(undg.getAverageGrade()); 
} 
} 

i)は、私が(のtoStringに学部名とアドレスを返すようにしたいメンバーのクラスと学部クラス を継承していますが、それも可能です。あなたのコードで

kim hno 123 

答えて

1

彼らはprivate変数あるので、あなたがそれらにアクセスできるように、むしろあなたは、publicあるgetterメソッドを使用することができ、nameaddressにアクセスすることはできません。ouputを期待

public String toString() { 
    return getAddress() + getName(); 
} 
:あなたの toString()方法で、以下のように任意のクラス(つまり、だけではなくサブクラス)で注意すべき0

もう一つのポイントは、UndergraduateMember(継承) - されているので、あなたは、あなたが必要とする非サブクラス(なし継承)で、MemberクラスのIE用のオブジェクトを作成することなくgetAddress()getName()を呼び出すことができることですMemberクラスがpublic(インスタンス)メソッドを呼び出すオブジェクトです。

関連する問題