1. 程式人生 > >java實驗六 介面與實現

java實驗六 介面與實現

實驗一:

實驗目的:

掌握怎麼實現藉口

interface ComputerAverage{
	public double average(double x[]);
}

class Gymnastics implements ComputerAverage{
	public double average(double x[]){
		int count=x.length;
		double aver=0,temp=0;
		for(int i=0;i<count;i++){
			for(int j=i+1;j<count;j++){
				if(x[j]<x[i]){
					temp=x[j];
					x[j]=x[i];
					x[i]=temp;
				}
			}
		}
		
		for(int i=1;i<count-1;i++)
			aver+=x[i];
		if(aver>2)
			aver/=(count-2);
		else
			aver=0;
		
		return aver;
	}
}

class School implements ComputerAverage{
	double aver=0;
	public double average(double x[]){
		for(int i=0;i<x.length;i++)
			aver+=x[i];
		return aver/x.length;
	}
}

public class Main{
	public static void main(String args[]){
		double a[]={1,2,3,4,5,6,3,10,22,5,6};
		double b[]={12,35,215,454,236,4546,121};
		
		ComputerAverage computer=new Gymnastics();
		double result=computer.average(a);
		System.out.println(result);
		
		computer=new School();
		result=computer.average(b);
		System.out.println(result);
	}
}

實驗二:

實驗目的

掌握介面回撥技術

interface ComputerWeight{
	public double computerWeight();
}

class Television implements ComputerWeight{
	public double computerWeight(){
		return 3.5;
	}
}

class Computer implements ComputerWeight{
	public double computerWeight(){
		return 2.67;
	}
}

class WashMachine implements ComputerWeight{
	public double computerWeight(){
		return 13.8;
	}
}

class Truck{
	ComputerWeight[] goods;
	double totalWeights=0;
	Truck(ComputerWeight[] goods){
		this.goods =goods;
	}
	
	public void setGoods(ComputerWeight[] goods){
		this.goods =goods;
	}
	
	public double getTotalWeights(){
		for(int i=0;i<goods.length;i++)
			totalWeights+=goods[i].computerWeight();
		return totalWeights;
	}
}

public class Main{
	public static void main(String args[]){
		ComputerWeight[] goods=new ComputerWeight[650];
		for(int i=0;i<goods.length;i++){
			if(i%3==0)
				goods[i]=new Television();
			else if(i%3==2)
				goods[i]=new Computer();
			else
				goods[i]=new WashMachine();
		}
		
		
		Truck truck=new Truck(goods);
		System.out.println(truck.getTotalWeights());
		
		
		goods=new ComputerWeight[68];
		for(int i=0;i<goods.length;i++){
			if(i%2==0)
				goods[i]=new Television();
			else
				goods[i]=new WashMachine();
		}
		truck.setGoods(goods);
		System.out.println(truck.getTotalWeights());
	}
}


實驗三:

實驗目的:

掌握介面技術以及思想

interface dog{
	public void showState();
}

class SoftlyState implements dog{
	public void showState(){
		System.out.println("聽主人的命令");
	}
}
class MeetEnemyState implements dog{
	public void showState(){
		System.out.println("狂叫");
	}
}
class MeetFrientsState implements dog{
	public void showState(){
		System.out.println("搖尾巴");
	}
}
class MeetAnotherState implements dog{
	public void showState(){
		System.out.println("玩耍");
	}
}


class dogShow{
	dog state;
	public void show(){
		state.showState();
	}
	public void setState(dog a){
		state=a;
	}
}


public class Main{
	public static void main(String args[]){
		dogShow yellowDog=new dogShow();
		
		System.out.println("狗在主人前面");
		yellowDog.setState(new SoftlyState());
		yellowDog.show();
		
		System.out.println("狗在敵人前面");
		yellowDog.setState(new MeetEnemyState());
		yellowDog.show();
		
		System.out.println("狗在朋友前面");
		yellowDog.setState(new MeetFrientsState());
		yellowDog.show();
		
		System.out.println("狗在同伴前面");
		yellowDog.setState(new MeetAnotherState());
		yellowDog.show();
	}
}


相關推薦

java實驗 介面實現

實驗一: 實驗目的: 掌握怎麼實現藉口 interface ComputerAverage{ public double average(double x[]); } class Gymnasti

實驗 介面的定義使用

                                            &

介面實現

一、介面 介面是一種資料型別,使用關鍵字interface定義,包含介面宣告和介面體。 interface Printable { }   介面體中包含常量的宣告(沒有變數)和抽象方法兩部分。 介面體中所有常量的訪問許可權都是public,而且都是stati

201711671223《Java程式設計》第七週學習總結 第6章介面實現

201711671223《Java程式設計》第七週學習總結 第6章介面與實現 教材內容學習總結 使用關鍵字interface在介面名字前定義一個介面,介面體中只有抽象方法,沒有變數和普通方法,無論常量還是方法一定都是public,且常量是static常量。介面有類來實現以便使用介面中的方法,

java面向物件——介面方法實現

介面與方法實現 關鍵字interface  implements public interface Smoking { public abstract void smoke();   } public 

介面實現實驗1

介面: package mypackage; public interface computerAverage { public abstract double average(double x[

《C語言介面實現實驗——格式化(Fmt_T)

實驗程式是用vc6編譯,一定注意副檔名為c,不是cpp,下載前面幾個測試程式(連結串列、表、原子中有下載連結)中直接將下面源程式覆蓋1.c的內容即可! 再次強烈建議在這些函式上設上斷點,按F11跟進去把原始碼走一遍,才有真正的學習效果! 源程式如下: #inc

Java重載重寫實現方法的規則

aaa 必須 實現接口 權限 題目 重載方法 pro 類型 實訓 這幾天在實訓過程中做到了一個題,這個題目問的是 非抽象類實現接口後,必須實現接口中的所有抽象方法,除了abstract外,方法頭必須完全一致。這句話是錯誤的。然後在做錯以後自己總結一下重載 重寫 和實現的幾個

java監聽器的原理實現

來看 class copyto 圖片 http size stat 順序 方法 監聽器模型涉及以下三個對象,模型圖如下: (1)事件:用戶對組件的一個操作,稱之為一個事件 (2)事件源:發生事件的組件就是事件源 (3)事件監聽器(處理器):監聽並負責處理事件的方法 執行順序

編程開發之--Java集合類繼承實現必備知識

編程開發 next() int end long dha cos dHash IV 1、LinkedHashSet有序鏈式集合 舉例: long startTime=System.currentTimeMillis(); LinkedHashSet oprTypeSe

2.4 面向物件4:介面實現

@介面與實現 介面定義了一組共性 這些共性體現為介面的抽象方法 抽象方法就是隻有方法定義,沒有方法實現的方法 接口裡有且只有抽象方法 介面可以有多種不同的具體子類實現 介面的作用是為子類實現提供統一的API

介面實現分離

也許,你聽過設計模式裡的箴言,要針對介面程式設計,而不應該針對細節(具體)程式設計;或者你還聽過,要減少程式碼間的依賴關係;甚至你還知道,修改一個模組時,要保證重新編譯的檔案依賴要最小化,而重新編譯的時間最短化。當你問,How to?大神就會祭出嗯,你應該將介面與實現分離的經文。 我們在使用面嚮物件語言程式

Java學習筆記——介面抽象類的區別

在某種意義上,介面是比抽象類更抽象的類,介面的作用更多是起到標準化、規範化的作用。 它們之間的區別:   1.抽象類可以有非抽象方法,而介面中只能有抽象方法(但在JDK1.8之後的版本中,介面可以擁有方法體,也就是說,介面也可以擁有非抽象方法了)    2.

(JavaSE)十五、介面實現

什麼是介面: 硬體介面:指的是兩個硬體裝置之間的連線方式。硬體介面既包括物理上的介面,還包括邏輯上的資料傳送協議。 軟體介面:程式程式碼,特殊的類,表示一種規範,是具有的N個方法的特徵集合。 介面只定義了類應當遵循的規範,卻不關心這些類的內部資料和其功能的實現細節。站在程

C語言介面實現[+]

static char rcsid[] = "$Id: H:/drh/idioms/book/RCS/text.doc,v 1.10 1996/06/26 23:02:01 drh Exp $"; #include <string.h> #include <limits.h> #

java中List介面實現類 ArrayList,LinkedList,Vector 的區別 list實現類原始碼分析

java面試中經常被問到list常用的類以及內部實現機制,平時開發也經常用到list集合類,因此做一個原始碼級別的分析和比較之間的差異。 首先看一下List介面的的繼承關係: list介面繼承Col

java中外部介面內部介面的使用

晚上寫連連看排行榜的時候,檢視SharedPreferences原始碼時發現了一個驚天的祕密。 為什麼一個介面中可以再定義介面呢? 後來自己網上查找了下資料,然後自己操作了一遍。這個內部類真好用,推薦大家開發中可以用。具體來說,就是你只實現了外部介面,那麼就必須實現外部介面

讀書筆記--C語言介面實現--介面實現

介面實現 重點內容在本書中的第二章中,介紹了介面的封裝例子。 1. 介面定義 C語言中可將介面封裝好,讓後以.h檔案作文擴充套件,簡單例子: extern int Arith_max(int x, int y); extern int Ari

Java的Lock介面讀寫鎖

一、Lock介面與synchronized關鍵字        鎖是用來控制多個執行緒訪問共享資源的方式,一般來說,一個鎖能夠防止多個執行緒同時訪問共享資源(但是有些鎖可以允許多個執行緒併發的訪問共享資源,比如讀寫鎖)。在L

繼承介面實現介面的理解

        在我學習的過程中發現對兩個相似的概念很難理解,就是實現介面和繼承介面,我在網上也查了查答案,發現不是我想要的回答。我就是想弄清楚一個類實現一個介面和繼承一個介面有什麼區別,因為我發現就沒有區別,繼承和實現了之後都得重寫所有的抽象方法。         現在,