Java入門(4)

閱讀書目:Java入門經典(第7版) 做者:羅格斯·卡登海德java

 

面向對象編程(OOP)將程序視爲對象的集合,肯定程序要完成的任務,而後將這些任務指派給最適合完成它們的對象。換言之,計算機程序是一組對象,這些對象協同工做以完成某項任務,有些簡單程序看似只有一個對象(類文件)組成,但實際上也使用了其餘對象來完成工做。程序員

 

在面向對象編程中,對象包含兩項內容:屬性和行爲,屬性描述對象並使其不一樣於其餘對象,而行爲指的是對象能作什麼。編程

1 package com.java24hours; 2 
3 public class Modem { 4     int speed; 5     
6     public void displaySpeed() { 7         System.out.println("speed: "+speed); 8  } 9 }

 

經過繼承,程序員只需定義新類與現有類的不一樣之處,就可以建立一個新類。繼承其餘類可使用extends語句。spa

1 package com.java24hours; 2 
3 public class ErrorCorrectModem extends Modem { 4     //繼承Modem類
5 }

咱們稱從其餘類繼承而來的類爲子類,被繼承的類爲超類。Java中存在大量的繼承,進而造成繼承層次。code

 

簡單變量類型轉換示例:對象

int destination = (int)source;

 

對象間的類型轉換:能夠在任何須要超類的地方使用類對象。也能夠將對象用於須要其子類的地方,但因爲子類含有更多信息,若是程序使用對象沒有包含的子類方法,將致使錯誤。將類型用於須要子類的地方,須要進行顯式地類型轉換。blog

1 public void paintComponent(Graphics comp){ 2     Graphics2D comp2D = (Graphics2D) comp; 3 }

 簡單變量和對象之間的類型轉換,例如:繼承

Integer suffix = new Integer(5396); int newSuffix = suffix.intValue();
String count = "25"; int myCount = Integer.parseInt(count);
 1 package com.java24hours;  2 
 3 public class NewRoot {  4     public static void main(String[] arguments) {  5         int number = 100;  6         if(arguments.length>0) {  7             number = Integer.parseInt(arguments[0]);  8  }  9         System.out.println("The square root of "
10                 +number 11                 +" is "
12                 +Math.sqrt(number) 13  ); 14  } 15 }

 

Java的自動封裝功能將簡單變量值轉換爲相對應的類,封裝功能將對象轉換爲相對應的簡單變量值。io

在如今的Java版本中,以下的語句也是合法的語句:面向對象編程

Float total = new 1.3F; float sum = total/5; Integer suffix = 5309;

 

建立對象:

1 package com.java24hours; 2 
3 public class Modem { 4     int speed; 5     
6     public void displaySpeed() { 7         System.out.println("speed: "+speed); 8  } 9 }
 1 package com.java24hours;  2 
 3 public class CableModem extends Modem{  4     String method = "cable connection";  5     
 6     public void connect() {  7         System.out.println("Connecting to the Internet...");  8         System.out.println("Using a "
 9                 +method); 10  } 11 }
 1 package com.java24hours;  2 
 3 public class DslModem extends Modem{  4     String method = "DSL phone connection";  5     
 6     public void connect() {  7         System.out.println("Connecting to the Internet...");  8         System.out.println("Using a "
 9                 +method); 10  } 11 }
 1 package com.java24hours;  2 
 3 public class ModemTester {  4     public static void main(String[] arguements) {  5         CableModem surfBoard = new CableModem();  6         DslModem gateway = new DslModem();  7         surfBoard.speed = 5_000_000;  8         gateway.speed = 4_000_000;  9         System.out.println("Trying the cable modem: "); 10  surfBoard.displaySpeed(); 11  surfBoard.connect(); 12         System.out.println("Trying the DSL modem "); 13  gateway.displaySpeed(); 14  gateway.connect(); 15  } 16 }

 

Java不像C++中一個類能夠繼承多個類,任何一個類只有一個超類。

相關文章
相關標籤/搜索