問題7:アクセス指定子とカプセル化

この問題を解くためには…
 → 基本編第7日目参照

prob7-1.(難易度★)

以下のプログラムのクラスDataに、メンバ変数のセッターおよびゲッターを追加し、ビルドが通るようにし、期待される実行結果を得られるように書き換えなさい。

prob7-1:Problem7_1.java
package problem7;

public class Problem7_1 {

	public static void main(String args[]){
		Data d = new Data();
	    d.setNumber(100);
	    d.setComment("Programming Java");
	    System.out.println( "number = " + d.getNumber());
	    System.out.println( "comment = " + d.getComment());
	}

}
prob7-1:Data.java
package problem7;

public class Data {
	//	メンバ変数number
	private int number = 0;
	//	メンバ変数comment
	private String comment = "";
}
期待される実行結果
number = 100
comment = Programming Java

prob7-2.(難易度★)

以下のプログラムは、二つの文字列を合成したり、その長さを求めるする機能を持つクラス、TwoStringsのヘッダファイルと、そのクラスを使ったサンプルプログラムです。このクラスの二つの文字列を結合させるメソッドである、getConnectedStringを追加し、実行結果通りに動くようにしなさい。

prob7-2:TwoStrings.java
package problem7;

public class TwoStrings {
	//  一つ目の文字列
	private String string1;
	//  二つ目の文字列
	private String string2;
	//  一つ目の文字列を設定
	public void setString1(String string1)
	{
		this.string1 = string1;
	}
	//  二つ目の文字列を設定
	public void setString2(String string2)
	{
		this.string2 = string2;
	}
	//  一つ目の文字列を取得
	public String getString1()
	{
		return string1;
	}
	//  二つ目の文字列を取得
	public String getString2()
	{
		return string2;
	}
}
Problem7_2.java
package problem7;

public class Problem7_2 {

	public static void main(String args[]){
		 TwoStrings s = new TwoStrings();
		 s.setString1("Hello");
		 s.setString2("World");
		 System.out.println("一つ目の文字列は" + s.getString1());
		 System.out.println("二つ目の文字列は" + s.getString2());
		 System.out.println("二つの文字列を合成したものは" + s.getConnectedString());
	}

}
期待される実行結果
一つ目の文字列はHello
二つ目の文字列はWorld
二つの文字列を合成したものはHelloWorld

prob7-3.(難易度★)

以下のプログラムは、二つの整数の足し算と引き算を行うクラス、Calculationを用いて、二つの数の足し算と引き算の結果を出力したものである。実行結果と、以下に示す仕様をもとに、クラスCalculationを構成するCalculation.javaを完成させ、動作するプログラムを完成させなさい。

prob7-3:Problem7_3.java
package problem7;

public class Problem7_3 {

	public static void main(String args[]){
		Calculation c = new Calculation();
		c.setNumber1(8);    //  一つ目の数をセット
		c.setNumber2(9);    //  二つ目の数をセット
		//  二つの数の和を表示
		System.out.println(c.getNumber1() + " + " + c.getNumber2() + " = " + c.add());
		//  二つの数の差を表示
		System.out.println( c.getNumber1() + " - " + c.getNumber2() + " = " + c.sub());
	}

}
期待される実行結果
8 + 9 = 17
8 - 9 = -1
クラスCalculationの仕様①フィールド(privateで隠ぺいすること)
フィールド 概要
number1 int 一つ目の数
number2 int 二つ目の数

クラスCalculationの仕様②メソッド
メソッド名 戻り値の型 引数 概要
setNumber1 void int number1 number1のセッター。引数を代入する。
setNumber2 void int number2 number2のセッター。引数を代入する。
getNumber1 int なし number1のゲッター。値を取得する
getNumber2 int なし number2のゲッター。値を取得する
add int なし number1とnumber2の和を返す。
sub int なし number1とnumber2の差を返す。