問題7:アクセス指定子とカプセル化
この問題を解くためには… |
→ 基本編第7日目参照 |
---|
prob7-1.(難易度★)
以下のプログラムのクラスDataに、メンバ変数のセッターおよびゲッターを追加し、ビルドが通るようにし、期待される実行結果を得られるように書き換えなさい。
prob7-1:Problem7_1.javapackage 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.javapackage 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.javapackage 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の差を返す。 |