問題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());
}
}
package problem7;
public class Data {
// メンバ変数number
private int number = 0;
// メンバ変数comment
private String comment = "";
}
number = 100
comment = Programming Java
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;
}
}
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
二つ目の文字列は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で隠ぺいすること)
8 - 9 = -1
| フィールド | 型 | 概要 |
|---|---|---|
| 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の差を返す。 |









