石田修二 > コンピュータメモ > 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