石田修二 > コンピュータメモ > Java >    (サイト内検索

メソッド定義

アクセス修飾子

class LoginData {
	// フィールド
	String id;
	String pass;
	
	// コンストラクタ
	/* 初期化 */
	LoginData(String input_id, String input_pass){
		id = input_id;
		pass = input_pass;
	}
	
	// メソッド:2つのフィールドに入っている値が正しいか検証
	boolean validate(){
		if(id.equals("guest") && pass.equals("guest")){
			return true;
		} else {
			return false;
		}
	}
}

このオブジェクトを使用すると,コンストラクタを呼び出して ID とパスワードをフィールドに設定し,その後,validateメソッドを呼び出してそれらが正しいかどうかを確かめる…という流れで認証作業を行うことができます。

こんな感じです。

import java.io.*;
public class LoginTest {
	public static void main(String[] args) throws IOException {
		BufferedReader bufRd = new BufferedReader(new InputStreamReader(System.in));
		
		System.out.println("IDを入力して下さい");
		String id = bufRd.readLine();
		System.out.println("パスワードを入力して下さい");
		String pass = bufRd.readLine();
		
		LoginData Ldt = new LoginData(id, pass);
		
		if (Ldt.validate() == true){
			System.out.println("プログラムが開始しました");
		} else {
			System.out.println("ログインに失敗しました");
		}
	}
}

クラス「LoginData」を次のように書き換えます(赤字の部分)

public class LoginData {
	// フィールド
	private String id;
	private String pass;
	
	// コンストラクタ
	/* 初期化 */
	public LoginData(String input_id, String input_pass){
		id = input_id;
		pass = input_pass;
	}
	
	// メソッド:2つのフィールドに入っている値が正しいか検証
	public boolean validate(){
		if(id.equals("guest") && pass.equals("guest")){
			return true;
		} else {
			return false;
		}
	}
}

以下のプログラムにメソッドを追加し,インスタンスに処理させる形で,実現できるように変更していきます。

public class work2A {
	public static void main(String[] args) {
		Rect2A r1 = new Rect2A();
		
		r1.x = 10;
		r1.y = 20;
		r1.width = 100;
		r1.height = 50;
		
		System.out.println("長方形 位置(" + r1.x + "," + r1.y + ")幅" + r1.width + ", 高さ" + r1.height);
		
		Rect2A r2 = new Rect2A();
		
		r2.x = 40;
		r2.y= 30;
		r2.width = 60;
		r2.height = 80;
		
		System.out.println("長方形 位置(" + r2.x + "," + r2.y + ")幅" + r2.width + ", 高さ" + r2.height);
	}
}

まず,次のプログラムを用意します(ここでは Rect3A.java という名前で保存します)。

public class Rect3A {
	int x;
	int y;
	int width;
	int height;
	
	void setData(int x0, int y0, int w, int h){
		x = x0;
		y = y0;
		width = w;
		height = h;
	}
	
	void printInfo(){
		System.out.println("長方形 位置(" + x + "," + y + ")幅" + width + ", 高さ" + height);
	}
}

次にこれを利用するメイン側のプログラムを作成します。

public class work3A {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Rect3A r1 = new Rect3A();
		
		r1.setData(10, 20, 100, 50);
		r1.printInfo();
		
		Rect3A r2 = new Rect3A();
		
		r2.setData(40, 30, 60, 80);
		r2.printInfo();
	}
}

これでもいいのですが,実装法を隠すために,アクセス修飾子 private をつけておきましょう。

public class Rect3A {
	private int x;
	private int y;
	private int width;
	private int height;
	
	void setData(int x0, int y0, int w, int h){
		x = x0;
		y = y0;
		width = w;
		height = h;
	}
	
	void printInfo(){
		System.out.println("長方形 位置(" + x + "," + y + ")幅" + width + ", 高さ" + height);
	}
}

リンクはご自由にどうぞ。

【石田修二トップページ】  【コンピュータメモ】 【Java】

Last modified: 2016-04-09 00:19:19