




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )5.1 5.1 類的定義類的定義5.2 5.2 對象的創建與引用對象的創建與引用5.3 5.3 變量作用域變量作用域5.4 5.4 類變量和靜態方法類變量和靜態方法5.5 5.5 理解理解thisthis5.6 5.6 使用包組織類使用包組織類J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象第第5 5章章 類與對象類與對象JavaJava是面向對象的編程語言,最簡單的程序也要編寫類
2、。是面向對象的編程語言,最簡單的程序也要編寫類。類是組成類是組成JavaJava程序的基本要素,它封裝了屬性和方法。程序的基本要素,它封裝了屬性和方法。類是用于創建對象的模板,每個對象有各自屬性值。類是用于創建對象的模板,每個對象有各自屬性值。類類對象對象J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象 修飾符修飾符 class class 類名類名 extendsextends 父類名父類名 implementsimplements 類類實現的接口列表實現的接口列表 /類體類體 修飾修飾
3、 類型類型 屬性屬性1 = 1 = 初值初值1 1 ; 修飾修飾 類型類型 屬性屬性2 = 2 = 初值初值2 2 ; /. /. 其他屬性其他屬性 修飾修飾 類型類型 方法方法1 1(參數列表)(參數列表) 方法體方法體 ./ ./其他方法其他方法 數據成員成員方法J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象例例5-1 5-1 表示點的表示點的PointPoint類類 public class Point public class Point private private inti
4、nt x; x; / x/ x坐標坐標private private intint y; y; / y/ y坐標坐標public void move(public void move(intint x1,int y1) x1,int y1) x = x1; x = x1; y = y1; y = y1; public String public String toStringtoString() () / /對象的字符串描述對象的字符串描述 return return 點:點: + x + ,+ y; + x + ,+ y; 實例變量實例變量實例方法實例方法J a v aJ a v a 語 言
5、 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象1.1.聲明對象引用變量聲明對象引用變量 ,格式如下:,格式如下:類名類名 對象名表;對象名表;例如:例如:Point p1, p2;Point p1, p2;2 2創建對象創建對象。實際上就是用。實際上就是用JavaJava提供的提供的newnew關鍵字為對象分配關鍵字為對象分配存儲空間。格式如下:存儲空間。格式如下:引用變量名引用變量名= new = new 構造方法();構造方法();也可以在聲明引用變量的同時建立對象也可以在聲明引用變量的同時建立對象 ,格式如下:,格式
6、如下:類名類名 引用變量名引用變量名 = new = new 構造方法構造方法() () ;3. 3. 通過引用變量訪問對象成員通過引用變量訪問對象成員引用變量名引用變量名. .屬性屬性 引用變量名引用變量名. .方法名(實參表)方法名(實參表) 5.2.1 5.2.1 創建對象創建對象J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象PointPoint類中增加一個類中增加一個mainmain方法方法 public static void main(String public static
7、 void main(String argsargs) Point p1 = new Point(); Point p1 = new Point(); Point p2 = new Point(); Point p2 = new Point(); Point p3 = p1;Point p3 = p1; p1.move(5,8); p1.move(5,8); p2.x = 12; p2.x = 12; System.out.println(p1+p1); System.out.println(p1+p1); System.out.println(p2+p2); System.out.print
8、ln(p2+p2); System.out.println(p3+p3); System.out.println(p3+p3); xyp1xy0p2p3000p1點: 5,8p2點: 12,0p3點: 5,85812構建對象要給對構建對象要給對象屬性分配空間象屬性分配空間J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象5.2.2 5.2.2 對象的初始化和構造方法對象的初始化和構造方法 在創建對象時,要給對象的屬性成員分配內存在創建對象時,要給對象的屬性成員分配內存空間,同時進行初始化。空
9、間,同時進行初始化。 如果定義屬性成員時沒有指定初值,則如果定義屬性成員時沒有指定初值,則系統自動系統自動指定初值指定初值。可以在可以在定義屬性成員時指定初值定義屬性成員時指定初值。 public class Point public class Point J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象指定初值的另一種辦法是通過指定初值的另一種辦法是通過初始化塊初始化塊來設置來設置對象的初值。對象的初值。 public class Point public class Point pr
10、ivate private intint x; x; 給給x x賦賦默認默認值值0 0給給x x值改為值改為2020J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象更為常用初始化方法是通過更為常用初始化方法是通過構造方法構造方法 Point p4 = new Point p4 = new Point(20Point(20, 30);, 30); 使用該構造方法創建一個使用該構造方法創建一個PointPoint對象賦給變量對象賦給變量p4p4 對象的對象的x,yx,y屬性值屬性值分別設置為分
11、別設置為20,3020,30 屬性初始化執行次序屬性初始化執行次序: J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象 如果一個類未指定構造方法,則系統自動提供如果一個類未指定構造方法,則系統自動提供無參構造方法。無參構造方法。但但如果自定義了構造方法,則如果自定義了構造方法,則系統不再提供無參構造方法系統不再提供無參構造方法。構造方法的名稱必須構造方法的名稱必須與類名同名;與類名同名; 構造方法構造方法沒有返回類型沒有返回類型; ; 通常通常一個類可提供多個構造方法一個類可提供多個構造方
12、法,這些方法,這些方法的參數不同。的參數不同。n 無參構造方法默認形式如下:無參構造方法默認形式如下:publicPoint()J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象寫出程序執行結果寫出程序執行結果public class public class A A intint v=0; / v=0; /定義時定義時 v=v+1; / v=v+1; /初始化塊初始化塊 public A( ) public A( ) public public A(A(intint x ) v=x; x
13、) v=x; public public static void main(String static void main(String argsargs ) ) A m1 = new A(25); A m1 = new A(25); System.out.printlnSystem.out.println(m1.v); (m1.v); A m2 = new A(); A m2 = new A(); System.out.printlnSystem.out.println(m2.v); (m2.v); 25251 1J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 (
14、 ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象變量的作用域也稱變量的有效范圍,它是程序變量的作用域也稱變量的有效范圍,它是程序的一個區域,變量在其作用域內可訪問。的一個區域,變量在其作用域內可訪問。作用域也決定系統什么時候為變量創建和清除作用域也決定系統什么時候為變量創建和清除內存。根據變量在程序中聲明的位置,可分為內存。根據變量在程序中聲明的位置,可分為4 4類情形。類情形。成員變量成員變量局部變量及方法參數局部變量及方法參數語句塊中的變量語句塊中的變量異常處理參數異常處理參數J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第
15、第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象 成員變量可添加修飾符,包括訪問權限修飾符成員變量可添加修飾符,包括訪問權限修飾符publicpublic、privateprivate、protectedprotected和非訪問權限修飾和非訪問權限修飾符符staticstatic、finalfinal、nativenative等。等。如果沒有給對象屬性賦初值,則如果沒有給對象屬性賦初值,則對象屬性的初對象屬性的初始值由相應數據類型的默認值決定始值由相應數據類型的默認值決定,如數值型,如數值型數據的默認值為數據的默認值為0 0,booleanboolean的默認值為的默認值
16、為falsefalse,字符串的默認值為字符串的默認值為nullnull。成員變量的作用域是整個類體。成員變量的作用域是整個類體。(1) 成員變量成員變量J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象(2) (2) 局部變量局部變量方法體中的局部變量方法體中的局部變量 (1 1)作用域是在本方法內。)作用域是在本方法內。(2 2)變量前不能加修飾符。)變量前不能加修飾符。(3 3)局部變量在使用前必須明確賦值局部變量在使用前必須明確賦值,因為它沒,因為它沒有默認值,否則編譯時會出錯。有默
17、認值,否則編譯時會出錯。在語句塊中定義的變量在語句塊中定義的變量在語句塊中定義的變量它只在語句塊中有效;在語句塊中定義的變量它只在語句塊中有效;J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象public class Scope public class Scope int x = 1; / int x = 1; /成員變量成員變量 int y; int y; public void method(int a) public void method(int a) int x = 8; /
18、int x = 8; /本地本地局部變量局部變量將成員變量隱藏將成員變量隱藏 for ( int i=1;ia;i+) /for ( int i=1;ia;i+) /循環內定義變量循環內定義變量i i y+; y+; System.out.println(x=+x+,y=+y +,a=+a); System.out.println(x=+x+,y=+y +,a=+a); public static void main(String a) public static void main(String a) Scope x = new Scope(); / Scope x = new Scope(
19、); /局部變量局部變量x x x.method(6); x.method(6); J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象在同一作用域不能定義兩個同名變量在同一作用域不能定義兩個同名變量。比如:比如:不能有兩個成員變量不能有兩個成員變量x;x;方法中不能再定義一個與參數同名的變量方法中不能再定義一個與參數同名的變量。但但不同作用域變量允許同名。不同作用域變量允許同名。例如:例如: method method方法內定義的方法內定義的局部變量局部變量x x與成員變量同名與成員變量同名
20、,它將,它將隱藏同名的成員變量。隱藏同名的成員變量。J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象寫程序運行結果寫程序運行結果public class public class RangeTestRangeTest intint countcount=8;=8; public void m( ) public void m( ) for( for(intint countcount=1;count4;count+)=1;count4;count+) System.out.printlnS
21、ystem.out.println(count);(count); System.out.printlnSystem.out.println(count=+ (count=+ countcount); ); public static void main(String public static void main(String argsargs ) ) new new RangeTestRangeTest().m( ); ().m( ); 指實例變量指實例變量1 12 23 3count=8count=8J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第
22、 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象5.4.1 5.4.1 類變量類變量- static- static修飾的屬性修飾的屬性在本類中直接訪問:在本類中直接訪問:count count 通過類名訪問通過類名訪問:User.count User.count 通過類的一個對象訪問,如:通過類的一個對象訪問,如:x1.count x1.count 類變量的訪問形式類變量的訪問形式【例例5-3】中,中,User類的靜態屬性類的靜態屬性count 是最常用的是最常用的方式方式x1x1為為UserUser類的對象引用類的對象引用依托類依托類J a v aJ a v a 語 言
23、程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象 給類變量賦初值給類變量賦初值-用靜態初始化代碼塊用靜態初始化代碼塊 以下程序的執行結果以下程序的執行結果?class test static int x=5; static x+=10; public static void main(String args ) System.out.println(x=+x); static x=x-5; 【注意注意】靜態初始化代碼的執行是在靜態初始化代碼的執行是在mainmain方法執行前完成。方法執行前完成。 所有靜態初始化在類所有靜態初
24、始化在類裝載時就執行裝載時就執行x=10 x=10J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象理解類空間與對象空間理解類空間與對象空間【例例5-35-3】 類空間的類空間的變量只有變量只有1份份每個對象有每個對象有各自的存儲各自的存儲每個對象有各每個對象有各自的屬性值自的屬性值J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象【例例5-35-3】 靜態空間與對象空間的對比。靜態空間與
25、對象空間的對比。class class TalkPlaceTalkPlace static String talkArea=; static String talkArea=; public class public class UserUser static int count=0; static int count=0; / /類變量類變量 String username; int age; String username; int age; / /實例變量實例變量 public User(String name,int yourage) public User(String name,i
26、nt yourage) username=name; age=yourage; username=name; age=yourage; / /* * 方法方法loglog通過靜態變量記錄調用它的次數通過靜態變量記錄調用它的次數 * */ / void log( ) void log( ) count+; count+; / /直接訪問本類的靜態變量直接訪問本類的靜態變量 System.out.println(you are no +count+ user); System.out.println(you are no +count+ user); J a v aJ a v a 語 言 程 序
27、設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象 void speak(String words) / void speak(String words) /* * 向討論區發言向討論區發言 * */ / TalkPlace.talkArea += username + TalkPlace.talkArea += username + 說說:+words+n; :+words+n; public static void main(String args ) public static void main(String args ) Us
28、er x1 = new User( User x1 = new User(張三張三,20); ,20); x1.log( ); x1.speak(hello); x1.log( ); x1.speak(hello); User x2 = new User( User x2 = new User(李四李四,16); ,16); x2.log( ); x2.speak(good morning); x2.log( ); x2.speak(good morning); x1.speak(bye); x1.speak(bye); System.out.println(- System.out.prin
29、tln(-討論區內容如下:討論區內容如下:);); System.out.println(TalkPlace.talkArea); System.out.println(TalkPlace.talkArea); J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象5.4.2 5.4.2 靜態方法靜態方法 用用 staticstatic修飾的方法稱為靜態方法,也叫類方法修飾的方法稱為靜態方法,也叫類方法. .在在staticstatic方法中只能訪問類變量方法中只能訪問類變量和和其它其它stat
30、icstatic方法;方法; 例:給例:給UserUser類增加一個類增加一個clearCountclearCount() ()方法將方法將countcount清零清零 public static void public static void clearCountclearCount()() count=0; / count=0; /訪問類變量訪問類變量 age=0; /age=0; /不允許不允許 在在staticstatic方法中方法中絕不能直接訪問任何歸屬對象空間的變量絕不能直接訪問任何歸屬對象空間的變量或方法或方法 J a v aJ a v a 語 言 程 序 設 計語 言 程 序
31、設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象例例5-4 5-4 求求1010100100之間的所有素數之間的所有素數public class findPrime public class findPrime public public static static boolean prime(int n)boolean prime(int n) for (int k=2;k=Math.sqrt(n);k+) for (int k=2;k=Math.sqrt(n);k+) if ( n % k=0) if ( n % k=0) return false;
32、return false; return true; return true; public static void main(String args) public static void main(String args) for (int m=10;m=100;m+) for (int m=10;m=100;m+) if (prime(m) if (prime(m) System.out.print(m+ , ); System.out.print(m+ , ); J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章
33、 類 與 對 象類 與 對 象【思考思考】如果將如果將primeprime方法設計為非靜態方法,方法設計為非靜態方法,則如何在則如何在mainmain方法中調用。方法中調用。public static void main(String args) public static void main(String args) findPrime x=new findPrime(); findPrime x=new findPrime(); for (int m=10;m=100;m+) for (int m=10;m=100;m+) if ( if ( x.prime(m)x.prime(m) )
34、) System.out.print(m+ , ); System.out.print(m+ , ); 顯然,這種設計是不好的,顯然,這種設計是不好的,因此,因此,Math類的方法均為類的方法均為靜態方法。靜態方法。J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象思考題思考題public class Testpublic class Test long a = new long10; long a = new long10; public static void main ( String
35、 arg ) public static void main ( String arg ) System.out.println ( a6 ); System.out.println ( a6 ); 敘述正確的是(敘述正確的是( )。)。A. A. 輸出輸出 nullnullB. B. 輸出輸出 0 0C. C. 出現編譯錯誤出現編譯錯誤D. D. 運行出錯運行出錯J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象this this -出現在類的實例方法或構造方法中,用來代出現在類的實例方法
36、或構造方法中,用來代表使用該方法的表使用該方法的當前當前對象對象 的引用的引用。用用thisthis作為前綴,訪問當前對象的屬性或方法。作為前綴,訪問當前對象的屬性或方法。(1 1)使用)使用thisthis可以區分當前作用域中同名的不同變量。可以區分當前作用域中同名的不同變量。 private private intint x, y; / x, y; / 屬性屬性 public Point( public Point(intint x x, , intint y) / y) /構造方法構造方法 thisthis.x.x = x; = x; this.y = y; this.y = y; (2
37、 2)把當前對象引用作為參數傳遞給另一個方法。)把當前對象引用作為參數傳遞給另一個方法。 如:如: p.distancep.distance( (thisthis); ); (3 3)一個構造方法中調用另一個構造方法。)一個構造方法中調用另一個構造方法。 public Point() public Point() thisthis(0,0); (0,0); J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象例例5-5 Point5-5 Point類的再設計類的再設計public class
38、Point public class Point private int x, y; private int x, y; public Point(int x, int y) public Point(int x, int y) thisthis.x = x; .x = x; this.y = y;this.y = y; public Point() public Point() thisthis(0,0); (0,0); public double distance(Point p) public double distance(Point p) return Math.sqrt(retur
39、n Math.sqrt(thisthis.x-p.x).x-p.x)* * (x-p.x) + (y-p.y) (x-p.x) + (y-p.y)* *(y-(y-p.y); p.y); J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象/ / * * 以下兩個方法在利用上面方法求距離,純粹為了演示概念以下兩個方法在利用上面方法求距離,純粹為了演示概念 * */ /public double distance2(Point p) public double distance2(Point p
40、) return p.distance( return p.distance(thisthis); /p); /p到當前點的距離到當前點的距離 public double distance3(Point p) public double distance3(Point p) return return thisthis.distance(p); /.distance(p); /調用當前對象另一方法調用當前對象另一方法 思考思考: 以上程序中哪些地方可省略以上程序中哪些地方可省略this ?問題:為何在靜態方法中不能用問題:為何在靜態方法中不能用thisthis?J a v aJ a v a 語
41、 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象采用分層結構采用分層結構 同一包中不能有兩個同名的類同一包中不能有兩個同名的類 在缺省情況下在缺省情況下, ,系統會為每一個源文件創建一個無名包系統會為每一個源文件創建一個無名包 String類awtawtappletappletutilutillanglangeventeventjava(核心包的根)核心包的根)Arrays類 Graphics類Applet類System類J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版
42、版 ) )第第 5 章章 類 與 對 象類 與 對 象 用戶自定義包用戶自定義包 packagepackage語句放在源文件的第一行。語句放在源文件的第一行。package test; public class Point 當前文件夾當前文件夾testPoint.class創建包就是在指定目錄路徑下創建一個創建包就是在指定目錄路徑下創建一個子文件夾子文件夾,這個包中這個包中類的字節碼文件將存放在該文件夾下類的字節碼文件將存放在該文件夾下 J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象 對
43、定義包程序的編譯對定義包程序的編譯 方法方法1 1:創建一個:創建一個testtest子目錄,將源程序文件存放到該目錄子目錄,將源程序文件存放到該目錄, ,編譯時指明路徑。編譯時指明路徑。 javacjavac test/Point.java test/Point.java 或者,進入到子目錄內,對源程序進行編譯。或者,進入到子目錄內,對源程序進行編譯。 運行:運行: java java test.Pointtest.Point方法方法2 2:采用帶路徑指示的編譯命令:采用帶路徑指示的編譯命令: 格式:格式:javacjavac d d destpathdestpath Point.java
44、Point.java 編譯器將自動在編譯器將自動在destpathdestpath指定的目錄下建一個指定的目錄下建一個testtest子目子目錄,并將產生的字節碼文件保存到該子目錄下錄,并將產生的字節碼文件保存到該子目錄下 。典型用法是源程序放在當前目錄下,用如下命令編譯典型用法是源程序放在當前目錄下,用如下命令編譯 javacjavac d . Point.java d . Point.java 編譯后將在當前目錄下自動創建編譯后將在當前目錄下自動創建testtest子目錄子目錄當前目錄指明類的包路徑指明類的包路徑J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 (
45、 ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象 引用其它包的類的方法引用其它包的類的方法 (1) (1) 在引用類時使用包名作前綴。在引用類時使用包名作前綴。 例例 :new java.util.Date() new java.util.Date() (2) (2) 用用importimport語句加載需要使用的類語句加載需要使用的類。 例例:import java.util.Date; :import java.util.Date; 然后在程序中可以直接通過類名創建對象然后在程序中可以直接通過類名創建對象 如:如:new Date(); new Date();
46、(3) (3) 用用importimport語句加載整個包語句加載整個包-用用“* *”號代替類名位置。號代替類名位置。 它將加載包中的所有的類。例如:它將加載包中的所有的類。例如:import java.util.import java.util.* *; ; J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象【例例5-65-6】編寫一個代表圓的類,其中包含圓心(用編寫一個代表圓的類,其中包含圓心(用PointPoint表示)表示)和半徑兩個屬性,利用本章和半徑兩個屬性,利用本章Point
47、Point類提供的方法,求兩個圓心類提供的方法,求兩個圓心間的距離,編寫一個靜態方法判斷兩個圓是否外切。用兩個實間的距離,編寫一個靜態方法判斷兩個圓是否外切。用兩個實際圓驗證程序。際圓驗證程序。 import import test.Pointtest.Point; ; public class Circle public class Circle Point center Point center ; ; double r; double r;public Circle(Point public Circle(Point p,doublep,double r) r) center = p;
48、center = p; this.rthis.r = r; = r; public static public static booleanboolean isCircumscribeisCircumscribe(Circle c1,Circle c2) (Circle c1,Circle c2) return ( return (Math.absMath.abs(c1.center.distance(c2.center)(c1.center.distance(c2.center)-c1.r-c2.r)0.00001);-c1.r-c2.r)0.00001); 【注意注意】如果一個程序中同時存如果一個程序中同時存在在package語句、語句、import語句語句和類定義,則和類定義,則package語句為語句為第一條語句,接下來是第一條語句,接下來是import語句,然后是類定義。語句,然后是類定義。J a v aJ a v a 語 言 程 序 設 計語 言 程 序 設 計 ( ( 第第 2 2 版版 ) )第第 5 章章 類 與 對 象類 與 對 象 public String public String toStringtoString() () return return 圓心是圓心是+center+,+center+,半徑半徑=+r+;=+r+;
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 項目管理中的倫理和道德考量試題及答案
- 圍墻彩涂板銷售方案范本
- 2024年微生物學科的交叉應用試題及答案
- 電氣設備智能電網通信網絡考核試卷
- 保潔公司競標方案范本
- 砌塊建筑電氣系統設計與施工考核試卷
- 畜牧業市場分析考核試卷
- 紙板容器表面處理方法考核試卷
- 2025年【煤礦防突】模擬考試題及答案
- 2023年中國鐵建財務有限公司公開招聘筆試參考題庫附帶答案詳解
- (高清版)DZT 0002-2017 含煤巖系鉆孔巖心描述
- 天然石材更換方案
- 腹腔鏡下子宮肌瘤剔除術護理查房
- 嚴防管制刀具 對自己和他人負責-校園安全教育主題班會課件
- 09J202-1 坡屋面建筑構造(一)-1
- 扁平足的癥狀與矯正方法
- 青春健康知識100題
- 員工考勤培訓課件
- 危機處理與應急管理
- 豐田C-HR汽車說明書
- 國開電大操作系統-Linux系統使用-實驗報告
評論
0/150
提交評論