ICT関連の学習備忘録

ICTの学習をアウトプットするワークブックサイト

ICT関連の学習備忘録

2019/09/20:Java基礎(クラスの利用・コンストラクタ)

クラス変数、クラスメソッド

オブジェクトを作成する事によりそれぞれのオブジェクト毎、
フィールドの値があり、各オブジェクト毎にフィールドの値を格納する
事ができ、フィールド内の値(変数)は「オブジェクトに関連付けられている」という事がある。
オブジェクトに関連付けられているフィールドをインスタンス変数という。
オブジェクトに関連付けられているメソッドをインスタンスメソッドという。

クラスではオブジェクトに関連付けられていないメンバを持つ事が出来、これを
「クラス全体に関連付けられている」とうことがある。
クラスに関連付けられているフィールドをクラス変数という。
クラスに関連付けられているメソッドをクラスメソッドという。

構文
クラス変数の宣言
class クラス名
{
static 型名 クラス変数名;
・・・
}

クラスメソッドの定義
static 戻り値の型 クラスメソッド名(引数リスト)
{
   文;
   ・・・
}

クラスメソッドの呼び出し
クラス名.クラスメソッド(引数リスト);

クラス変数・クラスメソッドにはstatic修飾詞を付ける。
オブジェクトを作成しなくてもクラスメソッドを利用できる。
//車クラス作成
class Car
{
	public static int sum = 0;	//クラス変数(static付)
	
	private int num;
	private double gas;
	
	public Car()
	{
		num = 0;
		gas = 0.0;
		sum++; //コンストラクタが呼び出されたときにクラス変数sumの値を1増やす。
		System.out.println("車を作成しました。");
	}
	
	public void setCar(int n, double g)
	{
		num = n;
		gas = g;
		System.out.println("ナンバーを" + num + "に、\nガソリン量を"
			+ gas + "にしました。");
	}
	
	//クラスメソッド。(static付)
	public static void showSum()
	{
		System.out.println("車は全部で" + sum + "台あります。");
	}
	
	public void show()
	{
		System.out.println("車のナンバーは" + num + "です。");
		System.out.println("ガソリン量は" + gas + "です。");
	}
}

class Sample8
{
	public static void main(String[] args)
	{
		Car.showSum();	//クラスメソッドを呼び出す。
		
		Car car1 = new Car();		//オブジェクトを作成する。
		car1.setCar(5432,20.5);
		car1.show();
		
		Car.showSum();	//もう一度クラスメソッドを呼び出す。
		
		Car car2 = new Car();
		car2.setCar(9999,11.11);
		car2.show();
		
		Car.showSum();
	}
}

クラスライブラリ


コード
    

文字列を扱うクラス

Stringクラスは文字列(string)の概念をクラスとしたもので、
"Hello"や"こんにちは"のような具体的な文字列は、
このクラスから作成されたオブジェクトと言うことです。

Stringクラスは、一旦作成したオブジェクトの内容(文字列)を
変更することが出来ない為、=で代入を行っても、内部的には
上書きをしている訳ではなく、別のメモリの場所に作成して
参照先を変えていると言うのがStringの実体であり、メモリを無駄に
消費する点や処理速度の兼ね合いから現場等ではあまり使われていない。
そこで、StringBufferクラスの利用する事で回避できる。

例:文字の長さと文字を取り出す。
class Sample1
{
	public static void main(String[] args)
	{
		String str = "Hello";
		char ch1 = str.charAt(0);
		char ch2 = str.charAt(1);
		
		int len = str.length();
		
		System.out.println(str + "の1番目の文字は" + ch1
			+ "です。");
		System.out.println(str + "の2番目の文字は" + ch2
			+ "です。");
		System.out.println(str + "の長さは" + len + "です。");
	}
}

#出力結果
C:\YJSample\10>java Sample1
Helloの1番目の文字はHです。
Helloの2番目の文字はeです。
Helloの長さは5です。
例:大文字と小文字の変換をする。
import java.io.*;

class Sample2
{
	public static void main(String[] args) throws IOException
	{
		System.out.println("英字を入力してください。");
		
		BufferedReader br =
		new BufferedReader(new InputStreamReader(System.in));
		
		String str = br.readLine();
		
		String stru = str.toUpperCase();
		String strl = str.toLowerCase();
		
		System.out.println("大文字に変換すると" + stru + "です。");
		System.out.println("小文字に変換すると" + strl + "です。");
	}
}

#出力結果
C:\YJSample\10>java Sample2
英字を入力してください。
AbabaAaAS
大文字に変換するとABABAAAASです。
小文字に変換するとababaaaasです。
例:文字を検索する。
import java.io.*;

class Sample3
{
	public static void main(String[] args) throws IOException
	{
		System.out.println("文字列を入力してください。");
		
		BufferedReader br =
		new BufferedReader(new InputStreamReader(System.in));
		
		//検索される文字列を入力させる。
		String str1 = br.readLine();
		
		System.out.println("検索文字を入力してください。");
		
		//検索する文字を入力させる。
		String str2 = br.readLine();
		char ch = str2.charAt(0);
		
		//文字を検索する。
		int num = str1.indexOf(ch);
		
		//見つかった文字の位置を出力
		if(num != -1){
			System.out.println(str1 + "の" + (num+1)
				+ "番目に「" + ch + "」がみつかりました。");
		}else{
			System.out.println(str1 + "に「" + ch
				+ "」はありません。");
		}
	}
}

#出力結果
C:\YJSample\10>java Sample3
文字列を入力してください。
ABCDEFGHIJKLMNOPQRSTUVWXYZ,.
検索文字を入力してください。
M
ABCDEFGHIJKLMNOPQRSTUVWXYZ,.の13番目に「M」がみつかりました。

ラッパクラス

Integerクラスは「int型」に関する様々な機能を提供するクラスで、
基本形に関するクラスは、ラッパクラス(wrapper class)とも呼ばれる。
ラッパクラスには、Integerクラスの他にも下記のようなものがある。
ラッパクラス      扱っている基本型
Byte        byte
Character   char
Short       short
Integer     int
Long        long
Float       float
Double      double]



前のページへ戻る