キーワード辞典
物凄く乱暴なJava for全商1級+

登録日 14/09/10   更新日 16/10/14



物凄く乱暴なJavaに関する用語(オブジェクト的なこと)

詳しくは公式マニュアルをお読みください。
Javaって、こんな風にも書ける、とか、こうとも言う、とか、色々有るので、 以下は雰囲気だけのざっくりとした説明です。
作成中です。ミス有ったら後免。


呼び出されるクラス(ハクション大魔王、ときどきアクビ)


他のメソッドによって実体化され、操作されるクラスに関する幾つかのこと。



データを表示するだけのクラス

クラス間でデータのやり取りは無い。

呼び出される方のクラス(ハクション大魔王)
「350円の饅頭」クラス。幾つでも、配列でも実体化出来るが、全て同じもの。
//Menu.java (0)		2016.10.13	by Ryn

public class Menu {

	  private String name = "饅頭";
	  private int tanka = 350;
	 
	  public void dispData() {
			System.out.println(name + " " + tanka + "円");
	  }
}

呼び出す方のクラス(カンちゃん)
//Sweets.java (0)		2016.10.13	by Ryn
public class Sweets {
	
	public static void main(String[] args) {

		Menu a = new Menu();
		a.dispData();

		Menu b = new Menu();
		b.dispData();
	}
}


セッターメソッド、ゲッターメソッド

privateなデータメンバにアクセスするためのpublicなメソッド。
セッターメソッドは、引数をデータメンバの値に代入する。
ゲッターメソッドは、データメンバの値を return で戻り値として取り出す。

セッターメソッドとゲッターメソッドの例。
とある和菓子屋のお品書きプログラム(?)その1
privateなデータメンバ、nameとtankaにアクセスする為に、 セッターメソッド、ゲッターメソッドを使用している。
値の受け渡しを確認する為のプログラムなので、付随機能なし。

呼び出される方のクラス
名前と単価をクラス間で遣り取りする事で、様々なスイーツを幾つでも実体化し扱う事が出来る。
//Menu.java (1)		2016.10.13	by Ryn

public class Menu {

	private String name;
	private int tanka;

	public void setData(String name, int tanka) {		// セッターメソッド
		this.name = name;
		this.tanka = tanka;
	}

	public String getName() {												// ゲッターメソッド
		return name;
	}

	public int getTanka() {													// ゲッターメソッド
		return tanka;
	}
}

呼び出す方のクラス
//Sweets.java (1)		2016.10.13	by Ryn

public class Sweets {

	public static void main(String[] args) {

		Menu a = new Menu();
		a.setData("饅頭", 350);

		Menu b = new Menu();
		b.setData("羊羹", 500);

		System.out.print(a.getName() + "は" + a.getTanka() + "円で、");
		System.out.println(b.getName() + "は" + b.getTanka() + "円です。");
	}
}


コンストラクタ

クラスと同じ名前を持つ特別な関数。メソッドではない。
クラスがインスタンス化(実体化、つまり、プログラム中で「new」)された時に呼び出され、 クラスをインスタンス化し、そのインスタンスの初期化などを行う。 コンストラクタは、オーバーライド、オーバーロード(後述)が出来る。
コンストラクタを書かない場合は、実体化以外は何もしないデフォルトコンストラクタが自動的に実行される。
コンストラクタに引数を渡すことは出来るが、戻り値は、暗黙に、そのオブジェクト自体(の参照)なので、 コンストラクタに 戻り値に関する記述をすると実行時にエラーになる。

とある和菓子屋のお品書きプログラム(?)その2
値の受け渡しを確認する為のプログラムなので、付随機能なし。

呼び出される方のクラス
// Menu.java (2)		2016.10.13	by Ryn

public class Menu {

	private String name;
	private int tanka;
	 
	public Menu(String name, int tanka) {						// コンストラクタ
		this.name = name;
		this.tanka = tanka;
	}

	public String getName() {												// ゲッターメソッド
		return name;
	}

	public int getTanka() {													// ゲッターメソッド
		return tanka;
	}
}

呼び出す方のクラス
//Sweets.java (2)		2016.10.13	by Ryn
public class Sweets {

	public static void main(String[] args) {

		Menu a = new Menu("饅頭", 350);
		Menu b = new Menu("羊羹", 500);

		System.out.print(a.getName() + "は" + a.getTanka() + "円で、");
		System.out.println(b.getName() + "は" + b.getTanka() + "円です。");
	}
}


処理もお任せする

とある和菓子屋の比較見積もり(?)プログラム。その1。
コマンドラインから数量を入力すると、各スイーツの税込金額が表示される。
表示も、Menuクラスに任せてしまう。
値の受け渡しを確認する為のプログラムなので、値引きなどの付随処理は省略。

呼び出される方のクラス
// Menu.java (3)		2016.10.13	by Ryn
public class Menu {

	private String name;
	private int tanka;

	public Menu(String name, int tanka) {				// コンストラクタ
		this.name = name;
		this.tanka = tanka;
	}

	private float calcPayment(int suryo) {
		return tanka * suryo * (float)1.08;
	}

	public void dispData(int suryo) {
		System.out.print(String.format("%-4s @%,5d円 %4d個",name, tanka, suryo));
		System.out.println(String.format(" %,8d円(税込)", (int)calcPayment(suryo)));
	}
}

呼び出す方のクラス
コマンドラインから「数量」を入力する。
//Sweets.java (3a)		2016.10.13	by Ryn
public class Sweets {
	
	public static void main(String[] args) {

		Menu a = new Menu("饅頭", 350);
		Menu b = new Menu("羊羹", 500);

		try{
			if(args.length == 1){
				int suryo = Integer.parseInt(args[0]);

				a.dispData(suryo);
				b.dispData(suryo);
			}
			else
				System.out.println("引数エラー!");
		}
		catch(NumberFormatException e2){
			System.out.println("数字じゃない!");
		}
	}
}





おまけ

コマンドラインから成績を入力して、GoukakuHanteiクラスに渡す。
そこで何をしているのかは、神のみぞ知る。
// kentei.java		by Ryn		2016.10.13

public class kentei {

	public static void main(String[] args) {

		try{
			if(args.length == 1){

				int seiseki = Integer.parseInt(args[0]);

				GoukakuHantei johoshori = new GoukakuHantei(70);
				System.out.println(johoshori.hantei(seiseki));
			}
			else
				System.out.println("error!");
		}
		catch(NumberFormatException e2){
			System.out.println("数字じゃない!");
		}
	}
}

import java.util.Random;

// GoukakuHantei.java		by Ryn		2016.10.13

final public class GoukakuHantei {

	private int kijun, goukakuten;

	public GoukakuHantei(int kijun) {
		this.kijun = kijun;
	}

	final public String hantei(int seiseki) {

		Random rnd = new Random();
		goukakuten = kijun - rnd.nextInt(5);

		if(seiseki >= goukakuten)
			return("合格!");
		else
			return("不合格!");
	}
}










[ 黒板消しとチョーク受けの画像 ]