Java知多少(26)源檔案的聲明規則

來源:互聯網
上載者:User

標籤:

當在一個源檔案中定義多個類,並且還有import語句和package語句時,要特別注意這些規則:

  • 一個源檔案中只能有一個public類。
  • 一個源檔案可以有多個非public類。
  • 源檔案的名稱應該和public類的類名保持一致。例如:源檔案中public類的類名是Employee,那麼源檔案應該命名為Employee.java。
  • 如果一個類定義在某個包中,那麼package語句應該在源檔案的首行。
  • 如果源檔案包含import語句,那麼應該放在package語句和類定義之間。如果沒有package語句,那麼import語句應該在源檔案中最前面。
  • import語句和package語句對源檔案中定義的所有類都有效。在同一源檔案中,不能給不同的類不同的包聲明。
  • 類有若干種存取層級,並且類也分不同的類型:抽象類別和final類等。這些將在後續章節介紹。
  • 除了上面提到的幾種類型,Java還有一些特殊的類,如內部類、匿名類。 
一個簡單的例子

在該例子中,我們建立兩個類 Employee 和 EmployeeTest,分別放在包 p1 和 p2 中。

Employee類有四個成員變數,分別是 name、age、designation和salary。該類顯式聲明了一個構造方法,該方法只有一個參數。

在Eclipse中,建立一個包,命名為 p1,在該包中建立一個類,命名為 Employee,將下面的代碼複製到源檔案中:

 1 package p1; 2 public class Employee{ 3     String name; 4     int age; 5     String designation; 6     double salary; 7     // Employee 類的構造方法 8     public Employee(String name){ 9         this.name = name;10     }11     // 設定age的值12     public void empAge(int empAge){13         age =  empAge;14     }15     // 設定designation的值16     public void empDesignation(String empDesig){17         designation = empDesig;18     }19     // 設定salary的值20     public void empSalary(double empSalary){21         salary = empSalary;22     }23     // 輸出資訊24     public void printEmployee(){25         System.out.println("Name:"+ name );26         System.out.println("Age:" + age );27         System.out.println("Designation:" + designation );28         System.out.println("Salary:" + salary);29     }30 }

程式都是從main方法開始執行。為了能運行這個程式,必須包含main方法並且建立一個對象。


下面給出EmployeeTest類,該類建立兩個Employee對象,並調用方法設定變數的值。

在Eclipse中再建立一個包,命名為 p2,在該包中建立一個類,命名為 EmployeeTest,將下面的代碼複製到源檔案中:

 1 package p2; 2 import p1.*; 3 public class EmployeeTest{ 4     public static void main(String args[]){ 5         // 建立兩個對象 6         Employee empOne = new Employee("James Smith"); 7         Employee empTwo = new Employee("Mary Anne"); 8         // 調用這兩個對象的成員方法 9         empOne.empAge(26);10         empOne.empDesignation("Senior Software Engineer");11         empOne.empSalary(1000);12         empOne.printEmployee();13         empTwo.empAge(21);14         empTwo.empDesignation("Software Engineer");15         empTwo.empSalary(500);16         empTwo.printEmployee();17     }18 }

編譯並運行 EmployeeTest 類,可以看到如下的輸出結果:

Name:James Smith
Age:26
Designation:Senior Software Engineer
Salary:1000.0
Name:Mary Anne
Age:21
Designation:Software Engineer
Salary:500.0

 系列文章:

Java知多少(1)語言概述

Java知多少(2)虛擬機器(JVM)以及跨平台原理

Java知多少(3) 就業方向

Java知多少(4)J2SE、J2EE、J2ME的區別

Java知多少(5) Java開發環境的搭建

Java知多少(6)第一個程式樣本

Java知多少(7)類與對象

Java知多少(8)類庫及其組織圖

Java知多少(9) import及Java類的搜尋路徑

Java知多少(10)資料類型及變數

Java知多少(11)資料類型轉換

Java知多少(12)運算子

Java知多少(13)流程式控制制

Java知多少(14)數組

Java知多少(15)字串

Java知多少(16)StringBuffer與StringBuider

Java知多少(17)強調一下編程風格

Java知多少(18)類的定義及其執行個體化

Java知多少(19)存取修飾詞(存取控制符)

Java知多少(20)變數的範圍

Java知多少(21)this關鍵字詳解

Java知多少(22)方法重載

Java知多少(23)類的基本運行順序

Java知多少(24)封裝類、拆箱和裝箱詳解

Java知多少(25)再談Java包

Java知多少(26)源檔案的聲明規則

Java知多少(26)源檔案的聲明規則

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.