97干视频,99国产精品懂色,亚洲精品99久久久久中文字幕,伊人五月丁香综合AⅤ,国产精品成人免费999

  您的位置:華清遠見教育科技集團 >> 新聞動態(tài) >> Android資料 >> Java源文件結構  
 
Java源文件結構
分享到:

本文關鍵字:java源文件,package語句,import語句

Java語言的源程序代碼由一個或多個編譯單元(Compilation unit)組成,每個編譯單元只能包含下列內容(空格和注釋除外),如表2-1所示。

表2-1 Java源文件結構

結構 作用 要求
package語句 聲明類所在的包 0或1個,必須放在文件開始
import語句 從特定的包引入類 0或多個,必須放在所有類定義之前
public classDefinition 公共類定義部分 0或1個
classDefinition 非公共類定義部分 0或多個
interfaceDefinition 接口定義部分 0或多個

package語句

在大型項目開發(fā)中,為了避免類名的重復,經常使用“包”來組織各個類。例如,公司用開發(fā)了一個類Food,公司乙也開發(fā)了一個類Food,現在需要同時用到這兩個類,為了將這兩個類區(qū)分開來,將這兩個文件放在兩個不同的目錄下。那么,在使用的時候如何準確地找到需要的類呢?這就需要用到“包(package)”這個概念。

在Java程序中可以用package來指明這兩個類的引用路徑:將甲公司開發(fā)的Student類放到一個包(package)中,而將乙公司開發(fā)的Student類放到另一個包(package)中。為了避免不同的公司之間類名的重復,Sun建議使用公司Internet域名的倒寫來當做包名,例如,使用域名farsight.com.cn的倒寫 cn.com.farsight來作為包的名稱。如果現在有一個名為Student的類,將它放到目錄cn\com\farsight下,然后再在程序中加入如下語句:

package cn.com.farsight;

這樣,這個類就可以和其他的名稱為Student的類區(qū)分開了。

package語句的基本語法如下:

package <top_pkg_name> [ .<sub_pkg_name>] * ;

在同一個項目組中,經常用功能或模塊的名稱來作為子包名,例如,現在開發(fā)一個學員管理系統,一個用于華清遠見的管理模塊,一個用于清華附中的管理模塊,這兩個功能模塊中均有一個Student的類,這時可以將華清遠見管理模塊中使用的Student放到cn\com\farsight\college目錄下,而將清華附中管理模塊的Student類放到cn\com\farsight\school中,這樣,這兩個文件就不會沖突了。

注意,當將開發(fā)的類放到包中時,必須將類的源文件放到與包名的元素相一致的目錄結構中,就如上面的學生類Student,如果在文件中加入了package語句:package cn.com.farsight,則必須將這個Student類文件放到cn\com\farsight目錄下。在磁盤目錄結構中,使用“\”(Windows)或“/”(Unix/Linux/BSD)來分隔各個層級的目錄,而在Java類文件中,使用“.”來分隔包的層次。

Java的核心包都放在Java包及其子包中,而將很多擴展包放在javax包及其子包中。在Java核心包中,也有一些重復的類名,就是通過不同的包來區(qū)分的,例如,在java.sql包中,有一個Date類,而在java.util中,也有一個Date類。通過將它們放在不同的包中,就可以區(qū)分這兩個類。

一般來說,如果在程序中使用package將程序打包,則將程序放到對應的目錄下,這樣,才不違背package的設計初衷。如果將類的源文件(.java文件)都放到同一個路徑下,只是將編譯后的class文件放到不同的目錄下,上面提到的文件名沖突的問題依然存在(同一個路徑下不允許兩個文件同名),因此,需要將源文件保存在不同的路徑中。這時,可以使用如下命令來編譯文件:

javac cn\com\farsight\college\Student.java

在cn目錄的上一級目錄下執(zhí)行上述命令。

如果程序是一個帶main方法的應用程序,可以在cn目錄的上一級目錄下執(zhí)行這個文件,命令如下:

java cn.com.farsight.college.Student

注意編譯和執(zhí)行時的分隔符。因為在編譯時,需要指明的是文件的路徑,所以使用“\”來分隔;而在執(zhí)行類文件時,需要指明的是包名稱,所以使用“.”來分隔。

下面來看一個使用package的例子。

源文件:Student.java


package cn.com.farsight;

    public class Student {
        // 定義屬性
        private String studentId;

        // 定義屬性“studentId”的設置方法
        public void setStudentId(String student_Id) {
            studentId = student_Id;
        }

        // 定義屬性“studentId”的獲取方法
        public String getStudentId() {
            return studentId;
        }
    }

這個程序好放在路徑cn\com\farsight下,然后再在cn的上一層路徑執(zhí)行如下的指令編譯程序:

javac cn\com\farsight\Student.java

而被編譯后的class文件必須放置在cn\com\farsight路徑下,這樣才可以成功地被其他程序引用。

如果Student是一個應用程序(有一個main()方法),那么,為了執(zhí)行這個程序,必須在“cn”的上一級目錄執(zhí)行如下的指令:

java cn.com.farsight.Student

import語句

在編譯器定位你所創(chuàng)建的類所訪問的其他類的過程中,包(package)扮演了重要的角色。當編譯器碰到一個類對另一個類的引用時,它會在當前的包中和設置的CLASSPATH中尋找這個類,以檢查這個類是否能在這些路徑中找到。

import語句應該出現在package語句之后(如果有的話),類的定義之前。package語句只能有一個,但是import語句可以有多個。

可以使用import來引入包中的一個類,也可以用import來引入指定包中的所有類。

import語句的基本語法如下:

import <pkg_name>[.<sub_pkg_name>].<class_name>;

import <pkg_name>[.<sub_pkg_name>].*;

● 引入一個類:

import cn.com.farsight.college.Student

● 引入指定包中的所有類使用通配符“*”:

import cn.com.farsight.college.*

這樣就可以引入包cn.com.farsight.college中的所有類。

這兩種方式對于引入相應的類并沒有什么區(qū)別。但是,如果只是需要一個包中有限的幾個類,建議采用第一種方式(寫明引入的類名)會讓人一目了然。另外,需要注意的是,通過import引入包中的類的時候,它并不會遞歸地執(zhí)行引入動作,比如,通過下面的語句:

import cn.com.farsight.*;

引入了cn.com.farsight這個包中的所有類,但它并不會引入cn.com.farsight.school和cn.com.farsight.colleage中的類。要使用這兩個包中的類,還需要將它們使用“import”語句分別引入。

Java編譯器默認為所有的Java程序引入了JDK的java.lang包中所有的類(import java.lang.*;),其中定義了一些常用類:System、String、Object、Math等。因此可以直接使用這些類而不必顯式引入。但使用其他非無名包中的類則必須先引入、后使用。

另外,可以通過在類名前加上不同的限制符,如public等來控制類的適用范圍。關于這些限制符及相應的使用范圍,將在后續(xù)章節(jié)介紹。

package語句和import語句實例

1.任務描述

編寫一個Parent類,在構造方法中輸出“我是parent”,放在parent包中,編寫一個Child類,在構造方法中輸出“我是child”放在child包中,child包是parent包的子包。使用package語句生成包,并使用import引用子包。

2.技能要點
    ● 掌握包的創(chuàng)建和使用。
    ● 通過給包命名創(chuàng)建包的層次。

3.任務實現過程

(1)在scr默認包中創(chuàng)建parent包,在此包中創(chuàng)建Parent類,不帶參數,在構造方法中輸出“I am a parent”。

(2)創(chuàng)建parent的子包parent.child包,在此包中創(chuàng)建Child類,不帶參數,在構造方法中輸出“I am a child ”。

(3)在Parent類中使用import語句引入parent.child包,并創(chuàng)建Parent類和Child類對象,實現輸出。

Parent.java
    package parent;

    import parent.child.Child;

    public class Parent {
        public Parent(){
            System.out.print("I am a parent");
        }
        public static void main(String[] args) {
            Child c = new Child();
            Parent p = new Parent();
        }
    }
    Child.java
    package parent.child;

    public class Child {

    public Child(){
        System.out.print("I am a child \n");
        }
    }

運行結果:

I am a child
    I am a parent

本文選自華清遠見android開發(fā)培訓教材《Android系統下Java編程詳解》

 更多相關文章

·java 封裝簡介
·java面向對象編程
·Android開發(fā)環(huán)境搭建
·Android開發(fā)框架
·Android系統架構