diff --git a/src/Frac.java b/src/Frac.java new file mode 100644 index 0000000..d65eead --- /dev/null +++ b/src/Frac.java @@ -0,0 +1,93 @@ +public class Frac { + + // 確認用 + public static void main(String[] args) { + Frac d1_3 = new Frac(1,3); + Frac d1_2 = new Frac(1,2); + Frac plus = d1_3.tasu(d1_2); + d1_3.print(); System.out.print("+ "); d1_2.print(); System.out.print("= "); + plus.println(); + + Frac minus = d1_2.hiku(d1_3); + d1_3.print("-"); d1_2.print("="); minus.println(); + + Frac d7_63 = new Frac(7,63); + d7_63.print("="); + d7_63.yakubun(); + d7_63.println(); + + Frac d2_1 = new Frac(2,1); + Frac mul = d1_2.kakeru(d2_1); + d1_2.print("*"); d2_1.print("="); + mul.print("="); + mul.yakubun().println(); + + Frac div = d1_2.waru(d2_1); + d1_2.print("/"); d2_1.print("="); + div.println(); + + Frac d = new Frac(4209,18453); + Frac e = new Frac(83, 324); + d.tasu(e).yakubun().println(); //メソッドチェーン + d.waru(e).yakubun().println(); //メソッドチェーン +} + +//メンバー変数 + int a; //bunsi + int b; //bumbo + + // コンストラクタ + public Frac() { + a = 2; b = 3; + } + public Frac(int ia, int ib) { + a = ia; b = ib; + } + + //メソッド + public void setBunsiBumbo(int fa, int fb){ + a = fa; b = fb; + } + public void print(){ + System.out.print(a+"/"+b+" "); + } + public void print(String append){ + System.out.print(a+"/"+b+" "+append+" "); + } + public void println(){ + System.out.println(a+"/"+b); + } + public Frac tasu(Frac f){ + int na = a * f.b + b * f.a; + int nb = b * f.b; + return new Frac(na,nb); + } + public Frac hiku(Frac f){ + int na = a * f.b - b * f.a; + int nb = b * f.b; + return new Frac(na,nb); + } + public Frac kakeru(Frac f){ + int na = a * f.a; + int nb = b * f.b; + return new Frac(na,nb); + } + public Frac waru(Frac f){ + int na = a * f.b; + int nb = b * f.a; + return new Frac(na,nb); + } + public Frac yakubun(){ //約分:破壊的メソッド + int g = gcd(a,b); + a = a/g ; b = b/g; + return new Frac(a,b); //一応新しいオブジェクトもつくって返す(メソッドチェーンするため) + } + private int gcd(int m, int n){ + while (m != n) { + if (m < n) { n -= m; } + else { m -= n; } + } + return n; + } +} + diff --git a/src/Main.java b/src/Main.java index b850ac5..a017768 100644 --- a/src/Main.java +++ b/src/Main.java @@ -3,23 +3,27 @@ public class Main { public static void main(String args[]){ - int x, y ; - InputStreamReader isr = new InputStreamReader(System.in) ; + int x, y=0 ; + InputStreamReader isr = new InputStreamReader(System.in) ; //標準入力(=キーボード) BufferedReader br = new BufferedReader(isr) ; System.out.print("input integer: ") ; + String buf ; try{ - String buf ; - buf = br.readLine() ; // 1 行のデータを入力 - x = Integer.parseInt(buf) ; // 入力された文字列を整数に変換 - } catch(Exception e){ - x = 0; + buf = br.readLine() ; // キーボード入力を文字列として読み取る + x = Integer.parseInt(buf) ; // 文字列を整数に変換 + } catch(Exception e){ // 読み込んだ文字列が整数に変換できない場合 + x = 0; } + System.out.println("Input Number = " + x) ; + + /*?? 変数yに値を設定する */ - System.out.println("Input Number = " + x) ; /*?? 変数yに値を設定する */ - /*?? 和,差,積,商,剰余を表示する */ + /*?? 和、差、積、商(小数部分は切り捨て)、剰余(演算子は%をつかいます)を表示する + * 答えがわかるように表示されれば、改行の有無や表記などは、気にしなくてよい */ + System.out.println("和は "+(x+y)+" です"); - System.out.println("17A5000") ; - // 出力する文字列を各自の学生番号に置き換えること. + System.out.println("submitted by 17A5000") ; + // 出力する文字列を各自の学生番号に置き換えること } // end main } diff --git a/src/PPAP.java b/src/PPAP.java new file mode 100644 index 0000000..bde27e7 --- /dev/null +++ b/src/PPAP.java @@ -0,0 +1,52 @@ +import java.util.ArrayList; + +public class PPAP { + + public static void main(String[] args) { + ArrayList alist = new ArrayList(); //可変長配列 + Pen pen = new Pen(); + Apple apple = null; + alist.add(pen); + alist.add(new Pineapple()); + alist.add(apple = new Apple()); + alist.add(pen); + + for(BaseObj bo: alist) { + System.out.print(bo.getName()+"\t"); + } + System.out.println(""); + for(BaseObj bo: alist) { + System.out.print(bo.hashCode()+" "); // インスタンス/オブジェクト固有のID + } + System.out.println(""); + System.out.println(""); + + // 通常の配列Version + BaseObj[] ary = new BaseObj[4]; + ary[0] = pen; + ary[1] = new Pineapple(); + ary[2] = apple; + ary[3] = pen; + for(BaseObj bo: ary) { + System.out.print(bo.getName()+"\t"); + } + System.out.println(""); + for(BaseObj bo: ary) { + System.out.print(bo.hashCode()+" "); // インスタンス/オブジェクト固有のID + } + System.out.println(""); + System.out.println(""); + + System.out.println("生成したオブジェクトの総数は?です"); // ?の部分を、数字におきかえてください + } +} + +class BaseObj { + // インスタンス/オブジェクトが作られたときの「型」=「クラス名」を返す + public String getName() { + return getClass().getName(); + } +} +class Pen extends BaseObj { } +class Pineapple extends BaseObj { } +class Apple extends BaseObj { } \ No newline at end of file