本文目錄一覽:
java三個類組合怎麼運行
一、java類里的欄位默認的訪問修飾符是default,對需要保護的成員變數需要用private關鍵字修飾。
二、類的構造方法格式:
public 類名(參數列表)
{函數體}
三、API(Application Program Interface,應用程序編程介面)
1.使用方法:
(1)導包
import 包路徑.類名稱;
如果需要使用的目標類,和當前類位於同一個包下,則可以省略導包語句不寫。
java.lang包下的內容不用導包,其他的包都需要import語句。
(2)創建
類名稱 對象名 = new 類名稱();
(3)使用
對象名.成員方法名();
(1)Scanner類:用於鍵盤輸入數據到程序中。
Scanner sc = new Scanner(System.in);
獲取鍵盤輸入的一個int數字,int sum = sc.nextInt();
獲取鍵盤輸入的一個字元串,String str = sc.next();
下例中的運行結果綠色的行是客戶端輸入並按回車鍵,而黑色字體是程序輸出的。
java 所有組合
public static void main(String[] args) {
String s=”123″;
char[] ss= s.toCharArray();
StringBuffer set= new StringBuffer();
for(int i=0;i6;i++){//6是所有組合總數,也就是ss.length 值的階乘
set.delete(0,set.length());
for(int j=0;jss.length;j++){
set.append(ss[(i+j)%ss.length]);
}
System.out.println(set.toString());
}
}
JAVA中的聚集和組合的區別與聯繫
聚合(Aggregation) 關係是關聯關係的一種,是強的關聯關係。聚合是整體和個體之間的關係。例如,汽車類與引擎類、輪胎類,以及其它的零件類之間的關係便整體和個體的關係。與關聯關係一樣,聚合關係也是通過實例變數實現的。但是關聯關係所涉及的兩個類是處在同一層次上的,而在聚合關係中,兩個類是處在不平等層次上的,一個代表整體,另一個代表部分
組合(Composition) 關係是關聯關係的一種,是比聚合關係強的關係。它要求普通的聚合關係中代表整體的對象負責代表部分對象的生命周期,組合關係是不能共享的。代表整體的對象需要負責保持部分對象和存活,在一些情況下將負責代表部分的對象湮滅掉。代表整體的對象可以將代表部分的對象傳遞給另一個對象,由後者負責此對象的生命周期。換言之,代表部分的對象在每一個時刻只能與一個對象發生組合關係,由後者排他地負責生命周期。部分和整體的生命周期一樣。
以上關係的耦合度依次增強(關於耦合度的概念將在以後具體討論,這裡可以暫時理解為當一個類發生變更時,對其他類造成的影響程度,影響越小則耦合度越弱,影響越大耦合度越強)。由定義我們已經知道,依賴關係實際上是一種比較弱的關聯,聚合是一種比較強的關聯,而組合則是一種更強的關聯,所以籠統的來區分的話,實際上這四種關係、都是關聯關係。
聚合關係是是一種比較強的關聯關係,java中一般使用成員變數形式實現。對象之間存在著整體與部分的關係。例如上例中
pre t=”code” l=”java”class Driver {
//使用成員變數形式實現聚合關係
Car mycar;
public void drive(){
mycar.run();
}
}假如給上面代碼賦予如下語義:車是一輛私家車,是司機財產的一部分。則相同的代碼即表示聚合關係了。聚合關係一般使用setter方法給成員變數賦值。
假如賦予如下語義:車是司機的必須有的財產,要想成為一個司機必須要先有輛車,車要是沒了,司機也不想活了。而且司機要是不幹司機了,這個車就砸了,別人誰也別想用。那就表示組合關係了。一般來說,為了表示組合關係,常常會使用構造方法來達到初始化的目的,例如上例中,加上一個以Car為參數的構造方法 pre t=”code” l=”java”public Driver(Car car){
mycar = car;
}所以,關聯、聚合、組合只能配合語義,結合上下文才能夠判斷出來,而只給出一段代碼讓我們判斷是關聯,聚合,還是組合關係,則是無法判斷的。/ol
java中什麼叫組合
組合就是 A類的對象是B類的成員變數。相當於 A類是B類對象的一個屬性!
組合和繼承都很常見的!
JAVA中的聚集和組合的區別和聯繫
組合實際上是聚集關係的一種特殊形式。聚集模擬了具有(has-a)關係,表示兩個對象之間的歸屬關係。歸屬關係中的所有者對象稱為聚集對象(aggregation object),而它的類稱為聚集類(aggregating class)。歸屬關係中的從屬對象稱為被聚集類(aggregated object),而它的類被稱為被聚集類(aggregated class)。
一個對象可以被幾個其他聚集對象所擁有。如果一個對象只歸屬於一個聚集對象,那麼它和聚集對象之間的關係就稱為組合(composition)。例如:「一個學生有一個名字」就是組合關係,「一個學生有一個地址」就是聚集關係,因為一個地址可以被幾個學生所共享。
JAVA中繼承與組合的區別是什麼
1)組合(has-a)關係可以顯式地獲得被包含類(繼承中稱為父類)的對象,而繼承(is-a)則是隱式地獲得父類的對象,被包含類和父類對應,而組合外部類和子類對應。
2)組合關係在運行期決定,而繼承關係在編譯期就已經決定了。
3)組合是在組合類和被包含類之間的一種松耦合關係,而繼承則是父類和子類之間的一種緊耦合關係。
4)當選擇使用組合關係時,在組合類中包含了外部類的對象,組合類可以調用外部類必須的方法,而使用繼承關係時,父類的所有方法和變數都被子類無條件繼承,子類不能選擇。
5)最重要的一點,使用繼承關係時,可以實現類型的回溯,即用父類變數引用子類對象,這樣便可以實現多態,而組合沒有這個特性。
6)還有一點需要注意,如果你確定復用另外一個類的方法永遠不需要改變時,應該使用組合,因為組合只是簡單地復用被包含類的介面,而繼承除了復用父類的介面外,它甚至還可以覆蓋這些介面,修改父類介面的默認實現,這個特性是組合所不具有的。
7)從邏輯上看,組合最主要地體現的是一種整體和部分的思想,例如在電腦類是由內存類,CPU類,硬碟類等等組成的,而繼承則體現的是一種可以回溯的父子關係,子類也是父類的一個對象。
8)這兩者的區別主要體現在類的抽象階段,在分析類之間的關係時就應該確定是採用組合還是採用繼承。
9)引用網友的一句很經典的話應該更能讓大家分清繼承和組合的區別:組合可以被說成「我請了個老頭在我家裡幹活」 ,繼承則是「我父親在家裡幫我幹活”。
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/271016.html