第11回 クラスの利用(1)

  
参考書 Lesson 10.1(参考書p.302)〜 Lesson 10.2
    
10 クラスの利用
 
 10.1 クラスライブラリ
 
・クラスライブラリのしくみを知る
 - Javaでは様々な種類のクラスライブラリが利用できる 
 - あらかじめ用意・提供されているクラス群、インスタンスを作成してすぐに使える
 
・これまでに使ったクラスを知る
 - 下記のソースで色がついているところは、クラスライブラリにあるクラス
    String, BufferedReader, System ・・・ など

<キーボードから値を入力する例>
import java.io.*;

class Sample
{
  public static void main(String[] args) throws IOException
  {
    BufferedReader br =
          new BufferedReader( new InputStreamReader( System.in ));
    String str = br.readLine();
    int num = Integer.parseInt( str );
    System.out.println( num + "が入力されました" );
  }
}
                  
    
  
 10.2 文字列を扱うクラス
 
・文字列を扱うクラス
 - Javaで文字列データを扱う場合、「Stringクラス」または「StringBufferクラス」を用いる
   「Stringクラス」・・・ 文字列の内容を変更できない
   「StringBufferクラス」・・・ 文字列の内容を変更できる
 - 文字列を操作するためのメソッドが利用可能(以下はよく使うメソッド)
   char charAt( int index )  引数の位置の1文字を返す
   boolean equals( Object anObject )  引数の文字列と等しければtrueを返す
   char charAt( int index )  引数の位置の1文字を返す
   int indexOf( int ch )  引数の文字が最初に出現する位置を返す
   int indexOf( String str )  引数の文字列が最初に出現する位置を返す
   int length()  文字列長さ(文字数)を返す
   String substring( int beginIndex )  引数の位置から最後までの文字列を返す
  
・文字列の長さと文字をとり出す
 - Stringクラスのメソッド charAt() と length() を使ってみる
 
<メソッド呼び出しの例>
class Sample1
{
  public static void main(String [] args)
  {
    String str = "Hello";// 文字列オブジェクト(インスタンス)を宣言

    char ch1 = str.charAt(0); // 1文字目(インデックス0) 'H'
    char ch2 = str.charAt(1); // 2文字目(インデックス1) 'e'

    int len = str.length();  // 文字数を取得、ここではlenに5が入る
         :
   }
}
   
・文字列オブジェクトを作成するときの注意
 - Stringクラスのオブジェクト(インスタンス)の正式な(?)作り方
   String s = new String("Hello");    

 - 次のように簡単にしてもOK
   String s = "Hello";    
 
・大文字と小文字の変換をする
 - toUpperCase(),toLowerCase()で大文字 or 小文字に変換
  
・文字を検索する
 - indexOf()文字または文字列を検索、その位置を調べる
   見つからなかった場合は -1 が戻り値
 
 
・文字列を追加する
 - 文字列に変更をしたいときは StringBufferクラスのオブジェクトで行う必要がある
 - Stringクラスのオブジェクトは文字列の内容を変更できない

 - StringBufferクラスの主なメソッド
   StringBuffer append( char ch )  引数の1文字を追加する
   StringBuffer append( String s )  引数の文字列を追加する
   StringBuffer deleteCharAt( int index )  引数の位置の1文字を削除する
   int length()  文字列長さ(文字数)を返す
   StringBuffer replace( int s, int e, String s )  文字列を置換する
   String toString()  Stringクラスのオブジェクトに変換する
    
・文字列を引数で渡す、戻り値で返す
 - String型のオブジェクト(インスタンス)をメソッドの引数で渡すことができる
 - String型のオブジェクト(インスタンス)をメソッドの戻り値で返すことができる

<実行例>
class Car
{
  String name;
  int num;
  double gas;

  public Car(){ // コンストラクタ
    num = 1234;
    gas = 20.5;
  }

  public void setName( String s ){ // 引数で文字列を受け取る
    //name = s;  <-- 参照先がコピーされるだけなので、あまり良くない
    name = new String( s );//オブジェクトを作成して s を代入・保持
  }

  public String getName(){ // 文字列を返す
    return name; // 戻り値はString型
  }
}

class Sample2
{
  public static void main(String [] args)
  {
    Car c1 = new Car();
    Car c2 = new Car();

    c1.setName("PRIUS"); // 名前を設定
    c2.setName("HARRIER"); // 名前を設定

    System.out.println( "車名1 = " + c1.getName() ); // 戻り値をそのまま表示
    System.out.println( "車名2 = " + c2.getName() );
         :
   }
}
  
    
  
 演習
 
  演習のページへ