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