ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

Javaの課題丸投げコミュの継承の課題とメンバへのアクセスの課題

  • mixiチェック
  • このエントリーをはてなブックマークに追加
課題の都合上、1つのトピックに2題の問題を載せてしまいすいません。
出来るところまでは出来たのですが、この後からもうお手上げで困っています。
どなたか回答の程をよろしくお願いします。

課題12_3
? 課題12_2で作成した Human クラスをコピーし、それをスーパークラスに持つサブクラスSandai を作成する。
ここにString 型のprivate フィールドnumber を用意する。
? サブクラス Sandai のコンストラクタを用意する。引数を学籍番号(String 型)、氏名(String 型)、身長
(double 型)、体重(double 型)とし、これらを初期値として入力する。
? サブクラス Sandai に学籍番号、名前、身長、体重を表示する public メソッドshowData(引数、戻り値無
し)を作成する。ここではスーパークラスのメソッドshowValue を利用する。
? main 内で、Sandai クラスのstudent オブジェクトを用意する。
? student のそれぞれのオブジェクトの内容をshowData を用いて表示する。

「実行例」
学籍番号:09H999, 名前:Taro, 身長: 165.0 cm, 体重: 55.0kg


課題12_5
課題12_3のプログラムを以下のように変更し、実行例のように表示するようにせよ。
? Human クラスに用意されているdouble 型の変数height,weigh, name にサブクラスからもアクセスでき、それ以外からはアクセスできないようにする。
? Sandai クラスのpublic メソッドshowData(引数、戻り値無し)において、課題3 ではname, height,weighを表示するのにスーパークラスのメソッドshowValue を利用したが、ここでは直接変数の中身を参照して表示する。

「実行例」
学籍番号:09H999, 名前:Taro, 身長: 165.0 cm, 体重: 55.0kg



課題12_2のプログラム
class Human
{
private static int count = 0;
private double height , weight;
private String name;

private Human()
{
height = 0;
weight = 0;
count++;
name = "no name";
}

public Human(double a, double b, String c)
{
height = a;
weight = b;
name = c;
count++;
}

public double readData(int a)
{
if(a==0)
{
return height;
}
else
{
return weight;
}
}

public int readCount()
{
return count;
}

public void inputData(double a, double b, String c)
{
height = a;
weight = b;
name = c;
}

public void showValue()
{
System.out.println("名前: " + name + ", 身長: " + height + "cm, 体重:"+ weight + "kg");
}
}
class Kadai12_2
{
public static void main(String[] args)
{
double hei=0;
double wei = 0;
Human[] member;
member = new Human[3];

member[0]= new Human(165.0, 55.0, "Taro");
member[1]= new Human(138.3, 45.2, "Hanako");
member[2]= new Human(189.7, 105.8, "Ken");

for(int i=0; i<member.length; i++)
{
System.out.println(i+1 + "人目");
member[i].showValue();
hei += member[i].readData(0);
wei += member[i].readData(1);
}
System.out.println("平均身長:" +hei/3 + "(cm), 平均体重:" + wei/3 + "(kg)");
}
}




課題12_2に手を加えた課題12_3のプログラム
class Human
{
private static int count = 0;
private double height , weight;
private String name;

private Human()
{
height = 0;
weight = 0;
count++;
name = "no name";
}

public Human(double a, double b, String c)
{
height = a;
weight = b;
name = c;
count++;
}

public double readData(int a)
{
if(a==0)
{
return height;
}
else
{
return weight;
}
}

public int readCount()
{
return count;
}

public void inputData(double a, double b, String c)
{
height = a;
weight = b;
name = c;
}

public void showValue()
{
System.out.println("名前: " + name + ", 身長: " + height + "cm, 体重:"+ weight + "kg");
}
}
class Sandai extends Human
{
private String number;

public Sandai(String a, String b, double c, double d)
{
a=0;
b=0;
c=0;
d=0;
}
public void showData(String a, String b, double c, double d)
{
System.out.println("学籍番号:" + + ",名前: " + name + ", 身長: " + height + "cm, 体重:"+ weight + "kg");
}
}
class Kadai12_3
{
public static void main(String[] args)
{
double hei=0;
double wei = 0;
Human[] member;
member = new Human[3];

Sandai student;
student = new Sandai();

student.showData("09H999","Taro",165.0,55.0);
}
}

コメント(7)

showDataは引数なしって書いてあるじゃんよ…
何で問題文無視したプログラムで『出来た』って思えるのかね。
public class Sandai extends Human {
privateString studentNumber;
private String studentName;

public Sandai() {
this.studentNumber = null;
this.studentName = null;
}
public Sandai(double a, double b, double c, String studentNumber, String StudentName) {
super(a,b,c);
this.studentNumber = studentNumber;
this.studentName = studentName;
},
public String getStudentName(){
return studentName;
}
public String getStudentNumber(){
return studentName;
}
public void showData() {
super.showData();
StudentVisualizer sv = new StudentVisualizer();
sv.setStudent(this);
sv.display();
}

protected static class StudentVisualizer {
Sandai s;
private StudentVisualizer () {
}
public static StudentVisualizer newInstance() {
return new StudentVisualizer();
}
public void setStudent(Sandai s) {
this.s = s;
}
public void display () {
String number, name;
number = s.getNumber ();
name = s.getName ();
System.out.println ("number " + number + " name " + name);
}
}
}


本能の赴くままだと。
ModelとViewは分けるべきでしょう。
最初の課題

public class Sandai extends Human {

private String number;

Sandai(String number, String name, double height, double weight) {
super(height, weight, name);
this.number = number;
}

public void showData() {
System.out.print("学籍番号:" + number + ", ");
super.showValue();
}
}
public class Kadai12_3 {

public static void main(String[] args) {
Sandai student = new Sandai("09H999", "Taroq", 165.0, 55.0);
student.showData();
}
}
あとのかだい
class Human {
private static int count = 0;
protected double height, weight;
protected String name;

private Human() {
height = 0;
weight = 0;
count++;
name = "no name";
}

public Human(double a, double b, String c) {
height = a;
weight = b;
name = c;
count++;
}

public double readData(int a) {
if (a == 0) {
return height;
} else {
return weight;
}
}

public int readCount() {
return count;
}

public void inputData(double a, double b, String c) {
height = a;
weight = b;
name = c;
}

public void showValue() {
System.out.println("名前: " + name + ", 身長: " + height + "cm, 体重:"
+ weight + "kg");
}
}
public class Sandai extends Human {

private String number;

Sandai(String number, String name, double height, double weight) {
super(height, weight, name);
this.number = number;
}

public void showData() {
System.out.print("学籍番号:" + number + ", 名前: " + name + ", 身長: " + height
+ "cm, 体重:" + weight + "kg");
}
}
皆さん色々なお言葉と回答ありがとうございます。
まず、「出来た」と言ってしまい申し訳ありませんでした。
全然出来ないのは分かるのですが、自分の限界がここまでだったので、
それを「出来た」と言ってしまいました。
申し訳ありませんでした。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

Javaの課題丸投げ 更新情報

Javaの課題丸投げのメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。

人気コミュニティランキング