このブログを検索

2019年9月10日火曜日

やさしいjava P299のサンプルプログラム

やさしいjava 6版
 P299の 5番のサンプルプログラムを、
 今、自分だったらこう書いてみるか〜
 という 気分で お気楽に書いてみた。

🌟サンプルプログラム

import java.io.*;
class SamplePP4{
    public static void main(String[] args){
        MyPoint[] mp = new MyPoint[3];
        for(int i=0; i<mp.length; i++){
            mp[i] = new MyPoint( rnd(150)-25, rnd(150)-25 );
        }
        for(int i=0; i<mp.length; i++){
            int ppx = input("point No," + (i+1) + "のx point を入力してください。");
            int ppy = input("point No," + (i+1) + "のy point を入力してください。");
            
            mp[i].setX(ppy, ppy);
            
        }
        for(int i=0; i<mp.length; i++){
            System.out.println((i+1) + "番目のMyPoint " + mp[i].show());
        }
    }
    
    public static int rnd(int max){ return(int)(Math.random()*max); }
    
    public static int input(String txt){
        System.out.print(txt);
        String str = null;
        BufferedReader br =
         new BufferedReader(new InputStreamReader(System.in));
        try{
            str = br.readLine();
        }
        catch(IOException e){
            System.out.println(e);
        }
        try{
            return Integer.parseInt(str);
        }
        catch(Exception e){
            System.out.println("数値以外が入力されました。50を入力します。");
            return 50;
        }
    }
}

class MyPoint{
    static int count = 0;
    private int x;
    private int y;
    public MyPoint(){
        x = 0;
        y = 0;
        count++;
        System.out.println("Point" + count + "の 初期設定を行いました x=" + this.x + " y=" + this.y);
    }
    public MyPoint(int px, int py){
        this();
        this.x = confi(px);
        this.y = confi(py);
        System.out.println("Point" + count + "の 再設定を行いました x=" + this.x + " y=" + this.y);
    }
    
    public void setX(int px){
        this.x = confi(px);
    }
    
    public void setY(int py){
        this.y = confi(py);
    }
    
    public void setX(int px, int py){ //メソッドのオーバーロード
        this.x = confi(px);
        this.y = confi(py);
    }
    
    public int getX(){
        return this.x;
    }
    
    public int getY(){
        return this.y;
    }
    
    public int confi(int num){
        if(num>=0 && num<=100){
            return num;
        }
        else{
            System.out.println("範囲外の数値が入力されました。50を入力します。");
            return 50;
        }
    }
    
    public String show(){
        return "x=" + this.x + " y=" + this.y;
    }

}


今日の教訓
 すごくゴチャゴチャしたものが完成。

0 件のコメント:

コメントを投稿