2003/12/11 !!! This Page Is Made By Shift JIS !!! report5:講義資料オブジェクト指向プログラムJavaI&JavaIIの中のサンプルプログラム について考察せよ{~12/15(Mon)} 講義資料サンプルプログラムの考察については、 ローカル変数以降interfaceまでとする。もくじ
|
|
[Mi:eclipse/workspace/report] j03040% java List Extend.java File name:Extend.java 1:/* 2: * day: 2003/12/11 3: * @author: j03040 4: * @ST-ID :035740F 5: */ 6:class herb{ //スーパークラス『薬草』 7: int g=30; 8: public void Print(){ 9: System.out.println("just Herb!"); 10: } 11:} 12: 13:class food extends herb{ //サブクラス『食べ物』 14: public void Print(){ //オーバーライド 15: super.Print(); //super 16: System.out.println("birds eating"); 17: } 18:} 19:class drug extends herb{ //サブクラス『薬』 20: drug(){ 21: System.out.println("Doctor give mi "+g+"g durg!"); 22: } 23: public void Say(){ 24: System.out.println("Sinsemila!"); 25: } 26:} 27:public class Extend { 28: public static void main(String[] args) { 29: food obj1=new food(); //オブジェクト生成 30: System.out.println("herb ---> food"); 31: obj1.Print(); //food.Printの実行 32: drug obj2=new drug(); //インスタンス生成 33: System.out.println("hreb ---> drug"); 34: obj2.Say(); //drug.Sayの実行 35: obj2.Print(); //Printの実行 36: } 37:} |
[Mi:eclipse/workspace/report] j03040% java Extend herb ---> food just Herb! birds eating Doctor give mi 30g durg! hreb ---> drug Sinsemila! just Herb! |
[Mi:eclipse/workspace/report] j03040% java List Extend.java File name:Extend.java 1:/* 2: * day: 2003/12/11 3: * @author: j03040 4: * @ST-ID :035740F 5: */ 6:class herb{ 7: int g=30; 8: String color="green";//←新しく追加したところ 9: public void Print(){ 10: System.out.println("just Herb!"); 11: } 12:} 略 28:class dye extends herb{ 29: void paint(String m){ 30: String color=m ; 31: System.out.println("dye Color="+color); 32: System.out.println("dye Original Color="+this.color); 33: } 略 45: dye obj3=new dye(); 46: System.out.println("hreb --->dye"); 47: obj3.paint("red"); 48: } 49:} |
[Mi:eclipse/workspace/report] j03040% java Extend 略 hreb --->dye dye Color=red |
System.out.println("dye Original Color="+this.color); 実行結果 略 hreb --->dye dye Color=red dye Original Color=green |
[Mi:eclipse/workspace/report] j03040% java List Extend.java 省略 35:abstract class paper extends herb{ //抽象クラスpaper 36: String size="B4"; //共通部分 大きさ 37: String form="square"; //共通部分 形 38: abstract void make(int x); //抽象クラス make 39:} 40:class draw extends paper{ 41: void make(int x){ //makeを具体的に定義 42: int i,a=5; //入力された数だけ*を出力 43: for(i=1;i<=x;++i){ 44: System.out.print("*"); 45: if(i==a){ 46: System.out.print("\n"); 47: a+=5; 48: } 49: } 50: } 51:} 52:class bend extends paper{ 53: void make(int x){ //makeを具体的に定義2 54: System.out.println(x*2); //2倍して出力 55: } 56:} 57:public class Extend { 58: public static void main(String[] args) { 省略 69: System.out.println("hreb --->paper"); 70: draw draw =new draw(); 71: bend bend=new bend(); 72: System.out.println("paper size="+draw.size); 73: System.out.println("paper form="+draw.form); 74: System.out.println("paper size="+bend.size); 75: System.out.println("paper form="+bend.form); 76: draw.make(30); 77: bend.make(100); 78: } 79:} |
[Mi:eclipse/workspace/report] j03040% java Extend 省略 hreb --->paper paper size=B4 paper form=square paper size=B4 paper form=square ***** ***** ***** ***** ***** ***** 200 |
class <サブクラス名> extends <親クラス> implement<インターフェースクラス名> |
[Mi:eclipse/workspace/report] j03040% java List Intf.java File name:Intf.java 1:/* 2: * @day: 2003/12/13 3: * @author j03040 4: * @ST-Id: 035740F 5: */ 6:interface drum{ //interface 7: void pon(String p); 8:} 9:interface hill{ //interface 10: int don(int d); 11:} 12:public class Intf implements drum,hill{ 13: public void pon(String p){ //実装 14: System.out.println(p); 15: } 16: public int don(int d){ //実装 17: return d*d; 18: } 19: public static void main(String[] args) { 20: int a; 21: Intf obj=new Intf(); 22: obj.pon("no more war"); 23: a=obj.don(2); 24: System.out.println(a); 25: } 26:} |
[Mi:eclipse/workspace/report] j03040% java Intf no more war 4 |