1. 程式人生 > >Java學習---JAVA的類設計

Java學習---JAVA的類設計

宋體 3-9 不同 length 析構 final span width 學習

基礎知識

JAVA是由C/C++語言發展而來的純面向對象語言,其基本元素包括:簡單數據類型 和 復合數據類型(即類)。類是對客觀事物的抽象描述,它有面向對象的四個特點,即:封裝性、繼承性、多態性和通信相關性。

類由屬性和方法構成,類、屬性、方法都通過修飾符限制如何使用。常用的修飾符包括:public、protected、private、static、final、abstract等等。JAVA語言中除了類以外,還存在抽象類和接口,其中抽象類是使用abstract修飾的類,其中包含了抽象的方法(即只有方法的申明,無方法體,而且抽象的方法都需要被其子類所覆蓋),接口的關鍵字是interface,它僅包含使用finall修飾的成員變量和抽象方法。類之間的關系是繼承(extends),接口之間的關系也是繼承(extends),類與接口之間的關系是實現(implements)。

在類中的方法有三類,分別是:構造方法、普通方法和主方法。構造方法是對象初始化的方式,一般存在多個構造方法,根據帶入的參數構造不同的對象。主方法是程序的入口,其固定格式為:public static void main(String [] args)。類中的方法存在多態性,分別是:重載和覆蓋。其中,重載是在同一類中具有相同名稱的方法,而參數的類型和個數不同;覆蓋是具有繼承關系的父類和子類之間具有相同名稱的方法,且參數的類型和個數,以及返回值均相同。

使用類來聲明對象時,就是產生不同的個體,即實例化。且需要使用new操作符來申請內存空間。當該對象不再需要時,JAVA有三種垃圾回收方法,分別是:JVM周期性自動回收、調用System.gc()方法 和 定義finalize()析構方法。

JAVA語言標識符命名規則如下:

JAVA語言的標識符由字母、數字、下劃線(_)、美元符號($)組成,並且首字符不能使用數字;

不能把關鍵字作為標識符

標識符通常由多個有意義的英文單詞構成,且長度一般在30個字符以內

為了保證良好的編程風格,清晰標識各類符號,Java語言有如下編程規範:

● 類名和接口名:單詞首字母大寫,其余字母小寫,如SamDoc;

● 方法名和變量名:首單詞小寫,其余單詞的首字母大寫,其余字母小寫,如bothEyesOfDoll;

● 包名:字母全部小寫,如com.abc.dollapp;

● 常量名:采用大寫形式,單詞之間以下劃線“_”隔開,如DEFAULT_COLOR_DOL。

所有的關鍵字都是小寫。

代碼實例

舉例矩形類 長方體類,仿制圓形類和柱形類

技術分享圖片
 1 class rectangle{
 2   double width;
 3   double length;
 4   public rectangle(){
 5     width = 10;
 6     length = 10;
 7   }
 8   public rectangle(int width, int length){
 9     this.width = width;
10     this.length = length;
11   }
12   public rectangle(double width, double length){
13     this.width = width;
14     this.length = length;
15   }
16   public double getCircle(){
17     return 2*(width + length);
18   }
19   public double getArea(){
20     return width * length;
21 } }
22 
23 class cube extends rectangle{
24   double height;
25   public cube(){
26     width = 10;
27     length = 10;
28     height = 10;
29   } 
30   public cube(double width1, double length1, double height){
31     width = width1;
32     length = length1;
33     this.height = height;
34   } 
35   public double getVol(){
36     return widht * length * height;
37   }
38   public double getArea(){
39     return 2*(width * length + width * height + length * height);
40   }
41 }
42 class example{
43   public static void main(String [] args){
44     rectangle r = new rectangle(20, 20);
45     cube c = new cube(11, 22, 33);
46     System.out.println("矩形的面積" + r.getArea());
47     System.out.println("長方體的體積" + c.getVol());
48     System.out.println("長方體的面積" + c.getArea());
49 } }
View Code

設計根據年月輸出當月日歷的程序,對比以下2個關於日期程序

技術分享圖片
 1 public class date{                 //該類只存在一個主方法,相當於一個C語言程序
 2 public static void main(String [] args){
 3      int year = 2013;
 4      int month = 3;
 5      int day = 0;
 6      boolean isLeap = false;
 7 
 8      if((year % 400 == 0) ||  ((year % 100 == 0) && (year % 4 == 0))){
 9            isLeap = true;
10      } else {
11            isLeap= false;
12      }
13      switch(month){
14        case 1:  case 3:  case 5: case 7: case 8: case 10:  case 12: 
15          day = 31;
16          break;
17        case 2:
18           day = if(isLeap)?29:28;
19           break;
20        default:
21           day = 30;
22           break;
23      }
24      for(int i=0; i<day; i++){
25        if(i % 7 == 0)System.out.println();    
26        System.out.print((i+1)+"天"+"/t");
27  } } }
View Code

按照本班同學為例,編寫人類,同學類

技術分享圖片
 1 class human{
 2   String name;
 3   Int age;
 4   Char gender;
 5   public human(String name, int age, char gender){
 6      This.name = name;
 7      This.age = age;
 8      This.gender = gender;
 9   }
10   public void setName(String name){
11 This.name = name;
12   }
13   public void setAge(int age){
14 This.age = age;
15   }
16   public void setName(char gender){
17 This.gender = gender;
18   }
19   public String getName(){
20 return name;
21   }
22   public int getAge(){
23 return age;
24   }
25   public char getGender(){
26 return gender;
27   }
28   public void showMessage(){
29     System.out.println(“姓名:”+name+”,年齡:”+age+”,性別”+gender);
30 } }    
31 //學生類
32 class classmate extends human{
33   String school;
34   public classmate(String name1, int age1, char gender1, String school){
35      name = name1;
36      age = age1;
37 gender = gender1;
38 this.school = school;
39     ...
40   }
View Code

Java學習---JAVA的類設計