Java學習---JAVA的類設計

來源:互聯網
上載者:User

標籤:final   執行個體   回收   首字母   closed   封裝   open   日期   finalize   

基礎知識

     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的類設計

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.