閒來無事敲代碼,各類自掛東南枝(java第五章例題)

class Father
{
	private int moneyDollar=300;
	int moneyHK=200;
	int add(int x,int y)
	{
		return x+y;
	}
}
class Son extends Father{
		int moneyRMB=900;
		public void changeMoneyHK(int x){
				moneyHK=x;
			}
		public void changeMoneyRMB(int x){
				moneyRMB=x;
			}
		int subs(int x,int y){
				return x*y;
			}
	}
class GrandSon extends Son{
			int multi(int x,int y){
					return x*y;
				}
		}
	public class Example5_1{
			public static void main(String args[])
			{
					int a=5,b=3;
					Son son=new Son();
					GrandSon sunzi=new GrandSon();
					son.changeMoneyHK(666);
					son.changeMoneyRMB(5000);
					System.out.println("兒子的港幣是繼承屬性,當前的值是:"+son.moneyHK);
					System.out.println("兒子的人民幣是新增的屬性,當前的值是:"+son.moneyRMB);
					System.out.printf("減法是兒子的新增功能,%d-%d等於%d\n:",a,b,son.subs(a,b));
					System.out.printf("加法是兒子的繼承功能,%d+%d等於%d\n:",a,b,son.add(a,b));	
					System.out.println("孫子的港幣和人民幣都是繼承的屬性,當前的值是:");
					System.out.printf("乘法是孫子的新增功能,%d*%d等於%d\n:",a,b,sunzi.multi(a,b));
					System.out.printf("加法是孫子的新增功能,%d+%d等於%d\n:",a,b,sunzi.add(a,b));
					System.out.printf("減法是孫子的新增功能,%d-%d等於%d\n:",a,b,sunzi.subs(a,b));
			}
		}

class A{
		private int x=10;
		protected int y=20;
		void f(){
				y=y+x;
				System.out.printf("x=%d,y+%d\n",x,y);
			}
	}
	class B extends A{
			void g(){
					y=y+1;
					System.out.printf("y=%d\n",y);
				}
		}
		class Example5_2{
				public static void main(String args[]){
						B b=new B();
						b.g();
						b.f();
						b.g();
					}
			}

class A{
		public double y=11.456789;
		public void f(){
				y=y+1;
				System.out.printf("y是double型變量,y=%f\n",y);
			}
	}
class B extends A{
		int y=0;
		public void g(){
			y=y+100;
			System.out.printf("y是int型變量,y=%d\n",y);
			}
	}
class Example5_3{
		public static void main(String args[])
		{
				B b=new B();
				b.y=200;
				b.g();
				b.f();
			}
	}



class A{
		protected double x=8.0,y=0.888888;
		public void speak(){
				System.out.println("我喜歡NBA");
			}
		public void cry(){
				y=x+y;
				System.out.printf("y=%f\n",y);
			}
	}
class B extends A{
		int y=100,z;
		public void speak(){
			z=2*z;
			System.out.println("I love This Game");
			}
	}
class Example5_4{
		public static void main(String args[]){
				B b=new B();
				b.cry();
				b.speak();
			}
	}


class A{
		public int f(int x,int y)
		{
				return x+y;
			}
	
	}
class B extends A{
		public int f(byte x,int y){
				return x*y;
			}
	}
public class Example5_5{
	public static void main(String args[]){
		int z=0;
		B b=new B();
		z=b.f(10,10);
		System.out.println(z);
		z=b.f((byte)10,10);
		System.out.println(z);
		}
	}


class A{
	int x,y;
	A(){
			x=100;
			y=200;
		}
	A(int x,int y)
	{
			this.x=x;
			this.y=y;
		}
	}
class B extends A{
		int z;
		B(int x,int y)
		{
				super(x,y);
				z=300;
			}
		B()
		{
			super();
			z=800;
			}
		public void f(){
			System.out.printf("x=%d,y+%d,z=%d\n",x,y,z);	
			}
	}	
public class Example5_6{
		public static void main(String args[]){
				B b1=new B(10,20);
				b1.f();
				B b2=new B();
				b2.f();
			}
	}


Bank.java
public class Bank{
		int savedMoney;
		int year;
		double interest;
		public double computerInterest(){
				interest=year*0.035*savedMoney;
				System.out.printf("%d元存在銀行%d年的利息:%f元\n",savedMoney,year,interest);
				return interest;
			}
	}
ConstructionBank.java
public class ConstructionBank extends Bank{
	double year;
	public double computerInterest(){
		super.year=(int)year;
		double remainNumber=year-(int)year;
		int day=(int)(remainNumber*1000);
		interest=super.computerInterest()+day*0.0001*savedMoney;
		System.out.printf("%d元存在建設銀行%d年零%d天的利息:%f元\n",savedMoney,super.year,day,interest);
		return interest;
		}
	}
BankOfDalian.java
public class BankOfDalian extends Bank{
		double year;
		public double computerInterest(){
				super.year=(int)year;
				double remainNumber=year-(int)year;
				int day=(int)(remainNumber*1000);
				interest=super.computerInterest()+day*0.0001*savedMoney;
				System.out.printf("%d元存在建設銀行%d年零%d天的利息:%f元\n",savedMoney,super.year,day,interest);
				return interest;
			}
	}
Example5_7.java
public class Example5_7{
	public static void main(String args[]){
			int amount=5000;
			ConstructionBank bank1=new ConstructionBank();
			bank1.savedMoney=amount;
			bank1.year=5.216;
			double interest1=bank1.computerInterest();
			BankOfDalian bank2=new BankOfDalian();
			bank2.savedMoney=amount;
			bank2.year=5.216;
			double interest2=bank2.computerInterest();
			System.out.printf("兩個銀行的利息相差%f元\n",interest2-interest1);
		}
	}


class A{
	double n;
	int m;
	void f(){
			System.out.printf("子類的繼承方法f(),n=%f,m=%d\n",n,m);
		}
	void g(){
			System.out.printf("你好,n=%f,m=%d\n",n,m);
		}
	}
class B extends A{
	int n=12;
	void g(){
			System.out.printf("子類重寫方法g(),n=%d,m=%d\n",n,m);
		}	
	void cry(){
			System.out.printf("子類新增的方法,n=%d,m=%d\n",n,m);
		}
	}
public class Example5_8{
		public static void main(String args[])
		{
			A	a;
			a=new B();
			a.n=0.618;
			a.m=200;
			a.f();
			a.g();
			B b=(B)a;
			b.n=555;
			b.cry(); 
			}
}


class Animal{
	void cry(){};
}
class Dog extends Animal{
	void cry(){
	System.out.println("Wang!Wang!....");
	}
}
class Cat extends Animal{
	void cry(){
			System.out.println("miao~~miao~~....");
		}
	}
public class Example5_9{
		public static void main(String args[]){
				Animal animal;
				animal=new Dog();
				animal.cry();
				animal=new Cat();
				animal.cry();
			}
	}



abstract class Geometry{
		public abstract double getArea();
	}
class Pillar{
		Geometry bottom;
		double height;
		Pillar(Geometry bottom,double height){
				this.bottom=bottom;
				this.height=height;
			}
		void changeBottom(Geometry bottom){
				this.bottom=bottom;
			}
		public double getVolume(){
				return bottom.getArea()*height;
			}
	}	
class Lader extends Geometry{
		double a,b,h;
		Lader(double a,double b,double h){
			this.a=a;this.b=b;this.h=h;
			}
		public double getArea(){
				return(1/2.0)*(a+b)*h;
			}
	}
class Circle extends Geometry{
	 double r;
	 Circle(double r)
	 {
	 		this.r=r;
	 	}
	 public double getArea(){
	 		return(3.14*r*r);
	 	}
	}
public class Example5_10{
		public static void main(String args[]){
				Pillar pillar;
				Geometry tuxing;
				tuxing=new Lader(12,22,100);
				System.out.println("梯形的面積"+tuxing.getArea());
				pillar=new Pillar(tuxing,58);
				System.out.println("梯形的柱體體積"+pillar.getVolume());
				tuxing=new Circle(10);
				System.out.println("半徑是10的圓的面積"+tuxing.getArea());
				pillar.changeBottom(tuxing);
				System.out.println("圓形底的柱體的體積"+pillar.getVolume());
			}
	}



interface Computable{
		final int MAX=100;
		int f(int x);
		public abstract int g(int x,int y);
	}
class A implements Computable{
		public int f(int x){
				return x*x;
			}
		public int g(int x,int y){
				return x+y;
			}
	}
class B implements Computable{
		public int f(int x){
				return x*x*x;
			}
		public int g(int x,int y){
				return x*y;
			}
	}
public class Example5_11{
		public static void main(String args[]){
				A a=new A();
				B b=new B();
				System.out.println(a.MAX);
				System.out.println(""+a.f(10)+""+a.g(12,6));
				System.out.println(b.MAX);
				System.out.println(""+b.f(10)+""+b.g(29,2));
			}
	}


interface showMessage{
		void showTradeMark();
	}
class TV implements showMessage{
		public void showTradeMark(){
				System.out.println("我是電視機");
			}
	}
class PC implements showMessage{
		public void showTradeMark(){
				System.out.println("我是電腦");
			}
	}
public class Example5_12{
		public static void main(String[] args)
		{
				showMessage sm;
				sm=new TV();
				sm.showTradeMark();
				sm=new PC();
				sm.showTradeMark();
			}
	}




interface Show{
		void show();
	}
class A implements Show{
		public void show(){
				System.out.println("I love This Game");
			}
	}
class B implements Show{
		public void show(){
				System.out.println("我喜歡NBA");
			}
	}
class C{
		public void f(Show s){
				s.show();
			}
	}
public class Example5_13{
		public static void main(String args[])
		{
				C c=new C();
				c.f(new A());
				c.f(new B());
			}
	}



Geometry.java
public interface Geometry{
		public abstract double getArea();
	}
Pillar.java
public class Pillar{
		Geometry bottom;
		double height;
		Pillar(Geometry bottom,double height){
				this.bottom=bottom;
				this.height=height;
			}
		void changeBottom(Geometry bottom){
				this.bottom=bottom;
			}
		public double getVolume(){
				return bottom.getArea()*height;
			}
	}	
Lader.java
public class Lader implements Geometry{
		double a,b,h;
		Lader(double a,double b,double h){
			this.a=a;this.b=b;this.h=h;
			}
		public double getArea(){
				return(1/2.0)*(a+b)*h);
			}
	}
Circle.java
public class Circle implements Geometry{
	 double r;
	 Circle(double r)
	 {
	 		this.r=r;
	 	}
	 public double getArea(){
	 		return(3.14*r*r);
	 	}
	}
public class Example5_14{
		public static void main(String args[]){
				Pillar pillar;
				Geometry tuxing;
				tuxing=new Lader(12,22,100);
				System.out.println("梯形的面積"+tuxing.getArea());
				pillar=new Pillar(tuxing,58);
				System.out.println("梯形的柱體體積"+pillar.getVolume());
				tuxing=new Circle(10);
				System.out.println("半徑是10的圓的面積"+tuxing.getArea());
				pillar.changeBottom(tuxing);
				System.out.println("圓形底的柱體的體積"+pillar.getVolume());
			}
	}



class NorthEast{
		String land="黑土地";
	}
class China{
		int x=10,y=10;
		LiaoNing dalian;
		China(){
				dalian=new LiaoNing();
			}
		void f(){
				System.out.println("我是中國");
				dalian.speak();
			}
		class LiaoNing extends NorthEast{
				int z;
				void speak(){
						System.out.println("我是大連,z="+z+":"+land);
					}
				void g(){
						z=x+y;
						f();
					}	
			}
	}
	public class Example5_15{
			public static void main(String args[]){
					China china=new China();
					china.f();
					china.dalian.g();
				}
		}


abstract class Student{
		abstract void speak();
	}
class Teacher{
		void look(Student stu)
		{
			stu.speak();
			}
	}
public class Example5_16{
		public static void main(String args[])
		{
				Teacher zhang=new Teacher();
				zhang.look(new Student()
				{
					void speak(){
						System.out.println("這是匿名類中的方法");
					}
				}
				);
			}
	}


interface Show{
		public void show();
	}
	class A{
			void f(Show s){
					s.show();
				}
		}
	public class Example5_17{
			public static void main(String args[])
			{
					A a=new A();
					a.f(new Show(){
							public void show(){
									System.out.println("這是實現了接口的匿名類");
								}
						}
					);
				}
		}


public class Example5_18{
		public static void main(String args[]){
				int n=0,m=0,t=0;
				try{
						t=9999;
						m=Integer.parseInt("8888");
						n=Integer.parseInt("12s3a");
						System.out.println("我沒有機會輸出");
					}
				catch(Exception e){
				System.out.println("發生異常");
				n=123;
				}
				System.out.println("n+"+n+",m="+m+",t="+t);	
			}
	}



class MyException extends Exception{
		String message;
		MyException(int n)
		{
				message=n+"不是整數";
			}
		public String getMessage(){
				return message;
			}
	}
class A{
		public void f(int n)throws MyException{
				if(n<0){
						MyException ex=new MyException(n);
						throw(ex);
					}
				double number=Math.sqrt(n);
				System.out.println(n+"的平方根:"+number);
			}
	}
public class Example5_19{
		public static void main(String args[])
		{
				A a=new A();
				try{
						a.f(28);
						a.f(-8);
					}
				catch(MyException e)
				{
						System.out.println(e.getMessage());
					}
			}
	}


class Chorus<E,F>{
		void makeChorus(E person,F yueqi){
				person.toString();
				yueqi.toString();
			}
	}
class 歌手{
		public String toString(){
				System.out.println("好一對美麗的茉莉花");
				return "";
			}
	}
class 樂器{
		public String toString(){
				System.out.println("|3 35 6 116|5 56 5-|");
				return "";
			}
	}
public class Example5_20{
		public static void main(String args[]){
				Chorus<歌手,樂器>model=new Chorus<歌手,樂器>();
				歌手 pengliyuan=new 歌手();
				樂器 piano=new 樂器();
				model.makeChorus(pengliyuan,piano);
			}
	}



class 錐<E>{
		double height;
		E bottom;
		public 錐(E b)
		{
			bottom=b;
			}
		public void computerVolume(){
				String s=bottom.toString();
				double area=Double.parseDouble(s);
				System.out.println("體積是:"+1.0/3.0*area*height);
			}
	}
class Circle{
		double area,radius;
		Circle(double r)
		{
				radius=r;
			}
		public String toString(){
				area=radius*radius*Math.PI;
				return ""+area;
			}	
	}
class Rectangle{
		double sideA,sideB,area;
		Rectangle(double a,double b)
		{
				sideA=a;
				sideB=b;
			}
		public String toString()
		{
				area=sideA*sideB;
				return ""+area;
			}
	}
public class Example5_21{
		public static void main(String args[]){
				Circle circle=new Circle(10);
				錐<Circle>coneOne=new 錐<Circle>(circle);
				coneOne.height=30;
				coneOne.computerVolume();
				Rectangle rect=new Rectangle(10,20);
				錐<Rectangle>coneTwo=new 錐<Rectangle>(rect);
				coneTwo.height=10;
				coneTwo.computerVolume();
			}
	}



interface Computer<E,F>{
		public void makeChorus(E x,F y);
	}
class Chorus<E,F>implements Computer<E,F>{
		public void makeChorus(E x,F y){
				x.toString();
				y.toString();
			}
	}
class 樂器{
		public String toString(){
				System.out.println("|5 6 3-|5  17 56|");
				return "";
			}
	}
class 歌手{
		public String toString(){
				System.out.println("美麗的草原,我可愛的家鄉");
				return "";
			} 
	}
public class Example5_22{
		public static void main(String args[]){
				Chorus<歌手,樂器>model=new Chorus<歌手,樂器>();
				歌手 pengliyuan=new 歌手();
				樂器 piano=new 樂器();
				model.makeChorus(pengliyuan,piano);
			}
	}