1. 程式人生 > >java 中的包概念

java 中的包概念

包名 span com文件 就會 port 管理 文件 anim java

  Java 中的包package, 就相當於電腦中的文件夾。我們平時在工作中,文件太多時,都會新建文件夾進行分類管理,java 中的包也是類似的道理,當我們的類太多時,也需要進行管理。這時我們就會把類文件放到包中,就是把這個.class文件放到了一個文件夾中,這樣可以對類文件進行分類管理,同時也有效地避免了命名沖突。

  當我們對java源文件進行編譯時,它會生成一個.class 文件,如果我們在java源文件的頂部,指定一個包名(package net;),編譯時,這個包名會生成一個文件夾,在這裏就是net文件夾,編譯好的.class文件則會放到該文件夾下。

package net;   // 指定包名net

public class Test { public static void main(String[] args) { System.out.println("hello"); } }

  當包名很長時,如package net.com.cn,這時它就會生成多級文件夾,先生成net文件夾,然後在net文件夾中生成com文件夾,最後在com文件夾中生成cn文件夾,我們編譯生成的.class 文件就會放到cn 文件夾中。我們寫一個Animal 類,指定包名為net.com.cn

package net.com.cn;

public class Animal {

    
private String name; private int age; public Animal( String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() {
return age; } public void setAge(int age) { this.age = age; } }

  編譯之後,你會發現我們當前文夾中多了一個net文件夾,打開net文件夾,發現com文件夾,再找開com文件夾,發現cn 文件夾,在cn文件裏面才有我們的Animal.class 類文件。 如果有了包之後,這個類實際上叫做net.com.cn.Animal, 這個Animal類有了所屬,如果在java源文件中使有這個類創建對象,就要使用

net.com.cn.Animal cat = new net.com.cn.Animal();

   這時我們使用類創建對象就非常麻煩了,所以出現了import導包。 把要使用的類直接導進來,我們在源代碼中就直接可以使用類名進行輸寫。 我們寫一個test.java文件

import net.com.cn.Animal;  // 引入包

public class Test {
    public static void main(String[] args) {
        Animal cat = new Animal();  // 直接使用類名進行書寫
        cat.setName("miaomiao");
        System.out.println(cat.getName());
    }
    
}

  當引入包之後,就是一個類文件有了所屬之後,這又帶來權限問題。如果包中的class類文件能夠被訪問,它必須是public的,包中的方法,如果能夠被訪問,它也必須是public. 包與包之間的類進行訪問,被訪問的包中的類必須是public權限的,被訪問的包中的類的方法也必須是public 權限的。

  最後還有一個jar包,它就是一個壓縮文件,當我們編譯之後,類文件都放到了文件夾中,這時 我們再對文件夾進行壓縮,就形成了jar包, 就像我們在文件夾上面,點擊右鍵,生成winrar文件 一樣。因為壓縮文件體積小,有利於進行傳播。第三方包,就是通過 jar進行發布,我們直接導入jar包,就可以對裏面的類文件進行使用。

java 中的包概念