java面向?qū)ο蟪绦蛟O(shè)計_第1頁
java面向?qū)ο蟪绦蛟O(shè)計_第2頁
java面向?qū)ο蟪绦蛟O(shè)計_第3頁
java面向?qū)ο蟪绦蛟O(shè)計_第4頁
java面向?qū)ο蟪绦蛟O(shè)計_第5頁
已閱讀5頁,還剩50頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、目錄第 1 章了解 Java 2第 2 章面向?qū)ο蟮摹皩ο蟆?. 7第 3 章對象的屬性 - 變量詳述 . 9第 4 章對象的行為 - 成員方法詳述. 12第 5 章生命周期及作用域 . 17第 6 章Java 常用類與函數(shù)庫 19第 7 章對象的進一步探討 - 面向?qū)ο笾械睦^承 . 22第 8 章深入多態(tài) . 26第 9 章使用異常處理 . 28第 10 章 基于 Swing 的圖形界面編程 . 29第 11 章 可視化程序的事件處理 . 38第 12 章 Java 多線程機制 51第1章 了解Java1.編寫一個程序,將用戶在命令行輸入的24小時制時間轉(zhuǎn)換為12小時制 public cla

2、ss TimeTestpublic static void main( Stri ng args)int time;time = In teger.parsel nt(args0); if(time24)System.out.pri ntl n(”輸入的不是一個合法時間!);else if(time12)System.out.println(12小時制為+(time-12)+點);elseSystem.out.println(12小時制為+time+點);2.用戶輸入x的數(shù)值,根據(jù)如下規(guī)則輸出計算后的結(jié)果y值。(x1) (1=x=10)public class CalculateTestpub

3、lic static void mai n(Stri ng args) float x,y;x = Float.parseFloat(args0);if(x1)y = x;else if(1=x& x10)y = 2*x-1;elsey = 3*x-11; System.out.pri ntl n( y);3. 編寫一個Java應(yīng)用程序,由命令行參數(shù)輸入一個百分制成績,要求打印出 成績等級“ A”、“B”、“C 、“D”、“E”。90分以上為“ A”; 8089分為“B”; 7079分為“C; 6069分為“D”; 60分以下為“ E。要求使用switch語句實現(xiàn)。運行效果如圖2所示:圖1pu

4、blic class Prin tGrade public static void main( Stri ng args) double score = Double.parseDouble(args0); if(score100)System.out.pri ntln(錯誤,不是一個合法的百分制成績!);elseint s = (i nt)score)/10;char grade;switch(s)case 10:case 9: grade = A; break;case 8: grade = B; break;case 7: grade = C; break;case 6: grade =

5、 D; break;default:grade = E;System.out.println(” 成績是:+score+,相應(yīng)的等級是+grade);4. 假設(shè)今天是星期日,編寫一個程序,求 n天后是星期幾。要求:n的數(shù)值由 命令行輸入;使用switch語句實現(xiàn)。public class DateTest public static void main( Stri ng args) int n = In teger.parse In t(args0);switch (n %7)case 0: System.out.println(n+ 天后是星期天);break;case 1: System.

6、out.println(n+ case 2: System.out.println(n+ case 3: System.out.println(n+ case 4: System.out.println(n+ case 5: System.out.println(n+ case 6: System.out.println(n+天后是星期一 ); break; 天后是星期二 ); break; 天后是星期三 ); break; 天后是星期四 ); break; 天后是星期五 ); break; 天后是星期六 ); break;5. 用戶在命令行輸入一個數(shù)字,按照數(shù)字輸出相應(yīng)個數(shù)的星號public

7、 class PrintStar public static void main(String args) int n = Integer.parseInt(args0);int i;for( i=1; i=n; i+)System.out.print(*);System.out.println();6. 編寫程序,求 0到 100之間的偶數(shù)和。 要求:分別用 while 語句、 do while 語句和 for 循環(huán)語句實現(xiàn)while 實現(xiàn):public class SumDemo1 public static void main(String args) int sum = 0, i =

8、0;while(i=100)if(i%2=0) sum = sum+i;i+;System.out.println(0-100之間所有偶數(shù)的和是 +sum);do while 實現(xiàn):public class SumDemo2 public static void main(String args) int sum = 0, i = 0;doif(i%2=0)sum = sum+i;i+; while(i=100); System.out.println(0-100之間所有偶數(shù)的和是 +sum);for 循環(huán)實現(xiàn): public class SumDemo3 public static void

9、 main(String args) int sum = 0, i = 0; for( ; i=100; i=i+2) sum = sum+i;System.out.println(0-100之間所有偶數(shù)的和是 +sum);7. 輸入一個大于 1的整數(shù),求 1 到這個數(shù)的階乘。用三種循環(huán)語句實現(xiàn) 提示: 5的階乘表示為 5! ,計算公式: 5!=1*2*3*4*5while 實現(xiàn): public class Factorial1 public static void main(String args) int num = Integer.parseInt(args0);int result =

10、 1; if(num1)System.out.println( 應(yīng)輸入大于 1 的整數(shù)! ); elseint i = 1; while(i=num) result = result*i; i+;System.out.println(num+ 的階乘是 +result);do while 實現(xiàn): public class Factorial2 public static void main(String args) int num = Integer.parseInt(args0);int result = 1; if(num1)System.out.println( 應(yīng)輸入大于 1 的整數(shù)!

11、 ); elseint i = 1;do result = result*i; i+;while(i=num);System.out.println(num+ 的階乘是 +result); for 循環(huán)實現(xiàn): public class Factorial3 public static void main(String args) int num = Integer.parseInt(args0);int result = 1; if(num1)System.out.println( 應(yīng)輸入大于 1 的整數(shù)! ); elseint i;for( i=1; i=num; i+) result =

12、result*i;System.out.println(num+ 的階乘是 +result); 8. 用 for 循環(huán)語句打印九九乘法表。public class Multiplication public static void main(String args) int i,j;for(i=1;i=9;i+)for(j=1;j=i;j+) System.out.print(i*j+t);System.out.println();第 2章 面向?qū)ο蟮摹皩ο蟆?. 定義一個描述長方體的類 Box,類中有三個整型的成員變量:length、width和 height ,分別表示長方體的長、寬和高。

13、定義 setInfo(int ,int ,int)方法設(shè)置這三個變量的值;定義 volumn() 方法求長方體的體積并返回整型結(jié)果;定 義 area() 方法求長方體的表面積并返回整型結(jié)果;定義 toString() 方法把長方 體的長、寬、高,以及長方體的體積和表面積轉(zhuǎn)化為字符串并返回字符串。編寫Java應(yīng)用程序,測試類Box,使用類中定義的各個方法,并將其結(jié)果 輸出。class Boxint length,width,height;public setInfo(int l,int w,int h)length = l;width = w;height = h;public int volu

14、mn()return length*width*height;public int area()return (length*width + length*height + width*height) * 2;public String toString()return Length: + length + width: + width + height: + height+ volumn: + volumn() + area: + area();public class BoxTest public static void main(String args) Box b = new Box(

15、);b.setInfo(5,2,4);System.out.println(b.toString();2. 定義一個圓形類 Circle ,類中有一個用來描述半徑的 double 型成員變量 r, 定義 setR(double) 方法初始化半徑;定義 getArea() 方法求圓形的面積并返回 double 類型結(jié)果;定義 getPerimeter() 方法求圓形的周長并返回 double 類型結(jié) 果。編寫 Java 應(yīng)用程序,使用 Circle 類創(chuàng)建兩個對象, 通過相應(yīng)方法分別設(shè)置 不同的半徑值,計算各自的面積及周長并顯示結(jié)果。class Circle double r;void setR

16、(double radius) r = radius;double getArea() return 3.14*r*r;double getPerimeter() return 2*3.14*r;public class CircleTest public static void main(String args) Circle c1 = new Circle();Circle c2 = new Circle();c1.setR(1);c2.setR(2);System.out.println(c1System.out.println(c2的面積是 +c1.getArea()+ , c1 的周

17、長是 +c1.getPerimeter(); 的面積是 +c2.getArea()+ , c2 的周長是 +c2.getPerimeter();第 3章 對象的屬性 - 變量詳述1編寫程序,計算如下表達式的值,將結(jié)果輸出。( 1) 3.5+1/2+56%10( 2) 3.5+1.0/2+56%10( 3) int a = 4%3*7+1public class Testpublic static void main(String args) System.out.println( 3.5+1/2+56%10 ); System.out.println( 3.5+1.0/2+56%10 ); i

18、nt a = 4%3*7+1; System.out.println( a ); 程序運行結(jié)果:9.510.082思考下列語句執(zhí)行后變量 a、b、c、 d 的值分別是多少:int a=5,b=8,c,d;c=(a+)*b;d=(+a)*b;執(zhí)行后的結(jié)果是:a=7 b=8 c=40 d=563自定義一個字符串數(shù)組,提示用戶輸入 5 個字符串,通過循環(huán)語句實現(xiàn)將用 戶輸入的字符串存放到數(shù)組里,然后反向輸出這五個字符串。import java.util.Scanner;public class Testpublic static void main(String args) Scanner read

19、er = new Scanner(System.in); String str = new String5; int i; for(i=0;i=0;i-)System.out.println(stri);4定義一個實型數(shù)組用來存放學生成績,提示用戶確定成績的個數(shù),根據(jù)個數(shù) 創(chuàng)建數(shù)組。 提示用戶輸入每個成績, 為各數(shù)組元素賦值。 詢問用戶要查找第幾個 同學的成績,顯示相應(yīng)的查詢結(jié)果,如果超出個數(shù)范圍則進行相應(yīng)提示。import java.util.*;public class Search1 public static void main(String args) Scanner reader

20、= new Scanner(System.in);double score;System.out.println( 您要輸入多少個同學的成績? );int num = reader.nextInt();score = new doublenum;for(int i=0;i=1 & index=num-1 )System.out.println(第 + index + 個同學的成績是 +scoreindex-1); elseSystem.out.println( 數(shù)據(jù)不在合法范圍內(nèi),無法查找。 );5在第 4 題的基礎(chǔ)上進行改寫,修改查詢條件:詢問用戶要查找分數(shù)為多少的 成績,找到相應(yīng)的成績則顯

21、示第幾位同學符合查詢條件, 找不到相應(yīng)的成績則顯 示沒有該成績,如果超出成績范圍則進行相應(yīng)提示。import java.util.*;public Search2public static void main(String args) Scanner reader = new Scanner(System.in);double score;System.out.println( 您要輸入多少個同學的成績? );int num = reader.nextInt();score = new doublenum;for(int i=0;i=0 & s=100) for(int i=0;inum; i

22、+) if(scorei=s)System.out.println( 第 +(i+1)+ 個同學符合查詢條件 ); flag = true; if(!flag) System.out.println( 沒有學生考該分數(shù)成績 );else System.out.println( 成績非法,不能查詢。 );6提示用戶輸入一個整數(shù),再提示用戶輸入一個符號。在屏幕上輸出該整數(shù)個 這樣的符號。import java.util.*;class CharTestpublic static void main(String args)Scanner reader = new Scanner(System.in

23、);System.out.println( 請輸入一個整數(shù) );int n = reader.nextInt();System.out.println( 請輸入一個符號 ); char ch = reader.next().charAt(0); for(int i = 1; i=0)System.out.println(”絕對值是+a);elseSystem.out.println(絕對值是+(-a);3. 在上述題目的基礎(chǔ)上,修改abs成為帶返回值的方法,即public static int abs(i nt a),實現(xiàn)相同的功能。import java.util.Sca nner;publ

24、ic class Demo public static void main( Stri ng args) Sca nner reader = new reader(System.i n);System.out.println(”請輸入一個整數(shù));int n = reader. next In t();System.out.println(絕對值是+abs(n);public static int abs(i nt a) if(a=0)return a;elsereturn -a;,實現(xiàn)輸出ndraw方法輸出圖形。4. 定義一個方法 public static void draw( int n,

25、 char ch) 個ch符號。在main方法中提示用戶輸入相應(yīng)數(shù)據(jù),調(diào)用import java.util.Sca nner;public class Multiplicati on public static void main( Stri ng args) Scanner reader = new Sca nn er(System.i n); System.out.pri ntln(”要顯示哪個符號?);char c = reader. next().charAt(O); System.out.pri ntln(”要顯示多少個?);int num = reader.nextInt(); d

26、raw( nu m,c);public static void draw( int n, char ch) for(i nt i=1; i=n; i+)System.out.pri nt(ch); System.out.pri ntl n();5. 求數(shù)值累加和的方法public class App4static int sum (int n)int s=0;for (i nt i=1; i=n; i+ )s+=i;return s;public static void mai n(Stri ng s)System.out.pri ntl n(“ 110 的累加和是”+ sum(10);6.

27、定義一個類Initial,類的內(nèi)部重載initArr()方法,分別實現(xiàn)對整型數(shù)組、雙精度型數(shù)組、字符串數(shù)組的初始化功能,數(shù)組作為方法的參數(shù),方法體內(nèi)提示 用戶為數(shù)組元素輸入數(shù)據(jù),然后顯示所有元素。在mia n方法中創(chuàng)建三種類型的數(shù)組,創(chuàng)建In itial類的對象,分別調(diào)用ini tArr()方法進行初始化。import java.util.*;public class OverLoad2 public static void main( Stri ng args) / TODO Auto-ge nerated method stubScanner reader = new Sca nn er(

28、System.i n);Initial init = new Initial();int a = new in t6;in it.i ni tArr(a);double b = new double5;in it. in itArr(b);Stri ng s = new Stri ng3;in it.i ni tArr(s);class In itialSca nner reader = new Sca nn er(System.i n);void ini tArr(i nt arr)System.out.println(初始化整型數(shù)組);for(int i=0;iarr.length;i+)

29、System.out.println(請輸入第+(i+1)+個整數(shù));arri = reader. next In t();System.out.pri ntln(”整型數(shù)組初始化完畢,所有元素為:);for(int i=0;iarr.length;i+)System.out.print(arri+);System.out.pri ntl n(n);void in itArr(double arr)System.out.println(”初始化雙精度型數(shù)組);for(int i=0;iarr.length;i+)System.out.println(請輸入第+(i+1)+個雙精度數(shù));arri

30、 = reader. nextDouble();System.out.pri ntln(”雙精度型數(shù)組初始化完畢,所有元素為:);for(int i=0;iarr.length;i+)System.out.print(arri+);System.out.println(n);void in itArr(Stri ng arr)System.out.println(”初始化字符串型數(shù)組);for(int i=0;iarr.length;i+)System.out.println(請輸入第+(i+1)+個字符串);arri = reader. next();System.out.pri ntln(

31、”字符串型數(shù)組初始化完畢,所有元素為:);for(int i=0;i=0.5) return n+1;else return n;static long round(double a) long n = (long)a; if(a-n=0.5) return n+1;else return n;第 5章 生命周期及作用域1. 定義一個按身高計算標準體重的類 StdWeight ,其中包含兩個靜態(tài)的成員方 法: forMale(double h) 計算男子標準體重、 forFemale(double h) 計算女子 標準體重,兩個方法均帶返回值。在應(yīng)用程序類的main方法中提示用戶輸入身高和性別

32、,調(diào)用StdWeight類的 方法得到標準體重,顯示結(jié)果。計算公式:標準體重 ( 男)=( 身高 cm-100)x0.9(kg) 標準體重 (女)=( 身高 cm-100)x0.9(kg)-2.5(kg) 正常體重:標準體重 -( 多少) 10提示:控制實數(shù)保留N位小數(shù):(如保留2位小數(shù))import java.text.DecimalFormat;double num = 21.3749;DecimalFormat df = new DecimalFormat(0.00);String s = df.format(num); /21.37參考代碼:import java.util.*;imp

33、ort java.text.*;public class Demo public static void main(String args) Scanner reader = new Scanner(System.in);System.out.println(請輸入您的身高 (單位厘米);double height = reader.nextDouble();System.out.println(請選擇您的性別: 1. 男 2. 女);int sex = reader.nextInt();DecimalFormat df = new DecimalFormat(0.00); if(sex=1)

34、System.out.println( 標準體重是 +df.format(StdWeight.forFemale(height)+ 公斤 );else if(sex=2)System.out.println( 標準體重是 +df.format(StdWeight.forMale(height)+ 公斤 ); elseSystem.out.println( 您輸入的選擇不正確。 );class StdWeight static double forMale(double h) return (h-100)*0.9;static double forFemale(double h) return

35、(h-100)*0.9-2.5;第6章 Java 常用類與函數(shù)庫1. 提示用戶輸入三角型兩邊邊長與其夾角度數(shù),利用公式 s=1/2absin(c) 計算 三角型面積,輸出結(jié)果。注意:正弦值的計算對象是弧度制的角,需將角度轉(zhuǎn)換為弧度:n /180。 import java.util.Scanner;import java.text.DecimalFormat;class Demopublic static void main(String args)Scanner reader = new Scanner(System.in);System.out.println( 請輸入三角型兩邊邊長 );d

36、ouble a = reader.nextDouble();double b = reader.nextDouble();System.out.println( 請輸入兩邊夾角度數(shù) );double angle = reader.nextDouble();double s = 0.5*a*b*Math.sin(angle*Math.PI/180);DecimalFormat df = new DecimalFormat(0.00);String area = df.format(s);System.out.println( 該三角型面積是 +area); /System.out.println

37、(Math.sin(90);2. 編寫 Java 應(yīng)用程序,使用 Vector 向量來保存用戶輸入的若干字符串。循環(huán) 讀入用戶輸入的字符串,以 end 作為結(jié)束。將所有字符串顯示出來。在所有 字符串的中間位置插入“ NICE,再次顯示所有字符串。import java.util.Vector;import java.util.Scanner;class Demopublic static void main(String args)Scanner reader = new Scanner(System.in);Vector vct = new Vector(1,1);System.out.pr

38、intln( 請輸入字符串,以輸入 end 作為結(jié)束 );String str;dostr = reader.next();vct.add(str);while(!str.equals(end);System.out.println(您剛才輸入的所有字符串是:);System.out.println(vct.toString();System.out.println(”插入 NICE到中間位置:);int n = vct.capacity();vct.i nsertEleme ntAt(NICE, n/2);System.out.pri ntl n(vct.toStri ng();3. 顯示I

39、nputDialog輸入對話框?qū)崿F(xiàn)對用戶輸入的英文單詞進行簡單處理(轉(zhuǎn) 換為大寫、轉(zhuǎn)換為小寫、反轉(zhuǎn)顯示)。程序運行效果如下圖:import javax.swi ng.J Optio nPane;class Demopublic static void main( Stri ng args)String str = JOptionPane.showInputDialog(”請輸入一個英文單詞);str = str.trim();String items = 轉(zhuǎn)換為大寫,轉(zhuǎn)換為小寫,反轉(zhuǎn)顯示;Object selectedValue = JOptionPane.showInputDialog(nu

40、ll, 請選擇 ,輸入 ,JOptionPane.INFORMATION_MESSAGE, null, items, items0);String choice = (String)selectedValue; if(choice.equals( 轉(zhuǎn)換為大寫 ) JOptionPane.showMessageDialog(null,str.toUpperCase(), 操作結(jié)果 ,JOptionPane.INFORMATION_MESSAGE); else if(choice.equals(轉(zhuǎn)換為小寫 )JOptionPane.showMessageDialog(null,str.toLowe

41、rCase(), 操作結(jié)果 ,JOptionPane.INFORMATION_MESSAGE); elseJOptionPane.showMessageDialog(null, (new StringBuffer(str).reverse(), 操作結(jié)果 ,JOptionPane.INFORMATION_MESSAGE); 第 7章 對象的進一步探討 - 面向?qū)ο笾械睦^承1. 定義一個球類 Ball ,包含一個私有成員變量半徑 (double r ),兩個公有成 員方法:設(shè)定半徑值方法( void setR(double x) 、 得到半徑值方法( double getR( ) )。定義一個臺

42、球類 Billiards ,繼承 Ball 類,包含一個私有成員變量顏色 ( String color ),兩個公有成員方法:設(shè)定顏色方法( void setCol (String clo) )、輸出信息方法( void show() ),其中 show 方法可以輸出該臺球的顏色 和半徑值。定義一個公有類,測試前兩個類。class Ballprivate double r;public void setR(double x)r = x;public double getR()return r;class Billiards extends Ballprivate String color;pu

43、blic void setCol(String col)color = col;public void show()System.out.println( 臺球的顏色是 +color+, 半徑是 +getR();public class Demopublic static void main(String args)Ball b1 = new Ball();b1.setR(10);System.out.println( 球的半徑是 +b1.getR();Billiards b2 = new Billiards();b2.setR(5);b2.setCol( 藍色 );b2.show(); 2.

44、 定義材料類 Material ,包含:保護的成員變量名稱、單價( String name; double price;)為數(shù)據(jù)初始化賦值的構(gòu)造方法;公有的成員方法得到所有信息( public String toString()。定義木材類 Wood繼承自材料類。包含: 私有的成員變量顏色( String col; ) 為數(shù)據(jù)初始化賦值的構(gòu)造方法; 覆蓋公有的成員方法得到所有信息( public String toString() )。 定義公共類,測試上述兩個類的使用。思考: 程序中把木材類中 toString()方法的 public 去掉會產(chǎn)生什么結(jié)果?為什么?程序中把材料類中 toStr

45、ing()方法的 public 去掉會產(chǎn)生什么結(jié)果?為什么?class Material protected String name; protected double price;Material(String n,double p)name = n; price = p;public String toString() return name+ 的價格是 +price; class Wood extends Materialprivate String col;Wood(String n,double p,String c) super(n,p);col = c;public String

46、 toString()return name+ 的價格是 +price+ ,顏色是 +col; public class Demopublic static void main(String args) Material m = new Material( 大理石 ,1000); System.out.println(m.toString();Wood w = new Wood(檀木,1200,紅棕);System.out.println(w.toString();思考題:木材類中 toString() 方法的 public 去掉程序會出錯, 因為該方法由材料類 繼承而來,子類覆蓋父類的方法時

47、不能縮小其訪問權(quán)限, public 去掉就會變成 包訪問權(quán)限,此處不能去掉。材料類中 toString() 方法的 public 去掉會產(chǎn)生同樣的問題, 因為 toString 方法不是材料類自定義的,是所有類的父類 Object 類提供的。3. 改寫例 7-8,給 Shape 類增加構(gòu)造方法,能夠?qū)︻伾M行初始化設(shè)置,思考 兩個子類的構(gòu)造方法該如何修改才能使程序正常運行。class Demopublic static void main(String args)Circle c = new Circle(blue,1);c.printInfo();Rectangle rect = new Rectangle(green,3,4);rect.printInfo();class ShapeString color;Shape(String c)color = c;double getArea()return 0;class Circle extends Shapedouble radius;Circle(String c, double r)super(c);radius = r;double getArea()return Math

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論