第8回 クラスの基本

 

 演習
 
<演習1>
以下のプログラムはiPhoneクラスを定義して、「iPhoneSE」と「iPhone13」のデータを処理するものである。
iPhoneSEと同様に /* ここを記述する */ を埋めて、実行結果のように処理するようにしなさい。

ソースファイル名は Ensyu0801.java とする。
 
class iPhone
{
  int storage; // ストレージ(GB)
  int weight; // 重さ(g)
  double disp_size; // ディスプレイサイズ(inch)
}

class Ensyu0801
{
  public static void main(String[] args)
  {
    iPhone ipSE = new iPhone();
    iPhone ip13 = new iPhone();

    System.out.println("<iPhoneSE>");
    ipSE.storage = 256;
    ipSE.weight = 144;
    ipSE.disp_size = 4.7;
    System.out.println("容量は " + ipSE.storage);
    System.out.println("重さは " + ipSE.weight);
    System.out.println("画面の大きさは " + ipSE.disp_size);

    System.out.println("\n<iPhone13>");

    /* ここを記述する */

  }
}

  
<実行結果>
C:\java>java Ensyu0801
<iPhoneSE>
容量は 256
重さは 144
画面の大きさは 4.7

<iPhone13>
容量は 512
重さは 173
画面の大きさは 6.1

C:\java>
 
 
 
<演習2>
<演習1>のプログラムを修正する。
青文字の部分で、メソッドを呼び出して値を設定するように変更する。
iPhoneクラスで、/* ここにメソッドを追加 */ のところに3個のメソッドを追加しなさい。
また、 /* 演習1で追記した部分 */ の部分も変更に合わせて修正しなさい。

ソースファイル名は Ensyu0802.java とする。
 
class iPhone
{
  int storage; // ストレージ(GB)
  int weight; // 重さ(g)
  double disp_size; // ディスプレイサイズ(inch)

  /* ここにメソッドを追加 */
}

class Ensyu0802
{
  public static void main(String[] args)
  {
    iPhone ipSE = new iPhone();
    iPhone ip13 = new iPhone();

    System.out.println("<iPhoneSE>");
    ipSE.setStorage( 256 );
    ipSE.setWeight( 144 );
    ipSE.setDispSize( 4.7 );
    System.out.println("容量は " + ipSE.storage);
    System.out.println("重さは " + ipSE.weight);
    System.out.println("画面の大きさは " + ipSE.disp_size);

    System.out.println("\n<iPhone13>");
    /* 演習1で追記した部分*/

  }
}
 
  
<実行結果(演習1と同じ)>
C:\java>java Ensyu0802
<iPhoneSE>
容量は 256
重さは 144
画面の大きさは 4.7

<iPhone13>
容量は 512
重さは 173
画面の大きさは 6.1

C:\java>
     
 
<演習3>
<演習2>の表示の処理を修正する。
表示をiPhoneクラスのメソッド show() で処理するように以下のプログラムを編集しなさい。
/* 演習1で追記,演習2で修正した部分 */ も変更に合わせて修正しなさい。

ソースファイル名は Ensyu0803.java とする。
 
class iPhone
{
  int storage; // ストレージ(GB)
  int weight; // 重さ(g)
  double disp_size; // ディスプレイサイズ(inch)

  /* show()メソッドを追加 */

  /* 演習2で追加したメソッド */
}

class Ensyu0803
{
  public static void main(String[] args)
  {
    iPhone ipSE = new iPhone();
    iPhone ip13 = new iPhone();

    System.out.println("<iPhoneSE>");
    ipSE.setStorage( 256 );
    ipSE.setWeight( 144 );
    ipSE.setDispSize( 4.7 );
    ipSE.show();

    System.out.println("\n<iPhone13>");
    /* 演習1で追記,演習2で修正した部分 */

  }
}
 
  
実行結果は演習1と同じ  
 
<演習4>
<演習3>をさらに修正する。
以下のプログラムで、ストレージ、重さ、ディスプレイサイズをまとめて設定できるメソッド setSpec(???) を作成しなさい。
 ??? は複数の引数を適切に記述する必要がある。
/* setSpec(???)メソッドを追加 */ にメソッドを追記しなさい。また、
/* 演習1~演習3で修正した部分 */ も変更に合わせて修正しなさい。

ソースファイル名は Ensyu0804.java とする。
  
class iPhone
{
  int storage; // ストレージ(GB)
  int weight; // 重さ(g)
  double disp_size; // ディスプレイサイズ(inch)

  /* setSpec(???)メソッドを追加 */

  /* 演習3のshow()メソッド */
  /* 演習2で追加したメソッド */
}

class Ensyu0804
{
  public static void main(String[] args)
  {
    iPhone ipSE = new iPhone();
    iPhone ip13 = new iPhone();

    System.out.println("<iPhoneSE>");
    ipSE.setSpec( 256, 144, 4.7 );
    ipSE.show();

    System.out.println("\n<iPhone13>");
    /* 演習1~演習3で修正した部分 */

  }
}
 
   
 
<演習5>
以下は、整数値を設定して、値を加算、表示するプログラムである。
/* getVal()メソッドを追加 */ を適切に埋めて完成させなさい。

ソースファイル名は Ensyu0805.java とする。
   
class Keisan
{
  int val;

  void setVal( int v ){
    val = v;
  }
  void addVal( int v ){
    val += v;
  }
  /* getVal()メソッドを追加 */
}

class Ensyu0805
{
  public static void main(String[] args)
  {
    Keisan a = new Keisan();

    a.setVal( 5 ); // 整数値を設定
    System.out.println(" (1) val = " + a.getVal() );

    a.addVal( 10 ); // 値を加算
    System.out.println(" (2) val = " + a.getVal() );

  }
}

  
<実行結果>
C:\java>java Ensyu0805
 (1) val = 5
 (2) val = 15

C:\java>
 
   
<演習6>
<演習5>のプログラムに「3個の数値を指定して、合計を設定する」メソッド setGoukei(???) を追加する。
 ??? は複数の引数を適切に記述する必要がある。
以下のプログラムで /* setGoukei(???)メソッドを追加 */ を適切に埋めて完成させなさい。

ソースファイル名は Ensyu0806.java とする。
   
class Keisan
{
  int val;

  /* setGoukei(???)メソッドを追加 */

  void setVal( int v ){
    val = v;
  }
  void addVal( int v ){
    val += v;
  }
  /* 演習5で追加されたgetVal()メソッド */
}

class Ensyu0806
{
  public static void main(String[] args)
  {
    Keisan a = new Keisan();

    a.setVal( 5 ); // 整数値を設定
    System.out.println(" (1) val = " + a.getVal() );

    a.addVal( 10 ); // 値を加算
    System.out.println(" (2) val = " + a.getVal() );

    a.setGoukei( 9, 5, 7 ); // 合計を設定
    System.out.println(" (3) val = " + a.getVal() );

  }
}

  
<実行結果>
C:\java>java Ensyu0806
 (1) val = 5
 (2) val = 15
 (3) val = 21

C:\java>
 
  
 
演習問題の提出について
演習1演習6のプログラムソースの内容をTextファイルに記述して、Cerezo から提出しなさい。
上記の内容をすべて1個のTextファイルにまとめ、ファイル名は

   [自分の学籍番号]+"_演習08.txt"  
  (例:"5412016_演習08.txt"、"5412003_演習08.txt" など


のように保存してから提出すること。
提出物には学籍番号と氏名を必ず記載しておくこと。
 
 
<提出ファイルの作成例>
第8回演習問題の回答  5412099 福山太郎

- 演習1 -----------------------------------------
class Ensyu0801
{
  public static void main(String[] args) 
  {
      : 
  }
}

- 演習2 -----------------------------------------
class Ensyu0802
{
  public static void main(String[] args) 
  {
      : 
      :