<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
package是在使用多個類或介面時,為了避免名稱重複而採用的一種措施,直接在程式中加入package關鍵字即可
格式如下:
package 包名稱.子包名稱;
範例:
package org.lxh.test; class Demo{ public String getInfo(){ return "Hello World !!!"; } } public class Test{ public static void main(String[] args) { System.out.println(new Demo().getInfo()); } }
此時編譯時需要加上相應引數:javac -d.Test.java
-d
:表示生成目錄,生成的目錄以 package 的定義為準 .
: 表示在當前所在資料夾中生成
執行完以上命令後,會自動生成相應的資料夾(包),之後再執行類時就必須輸入完整的“包.類名稱”
如果幾個類存放在不同的包中,在使用類時就必須通過 import 語句匯入
import 的語法格式:
import 包名稱.子包名稱.類名稱; //手工匯入所需要的類 import 包名稱.子包名稱.*;//由JVM自動載入所需要的類
範例:定義 org.lxh.test 目錄下的 Demo1.java
package org.lxh.test; public class Demo1{ public String getInfo(){ return "Hello World!"; } }
範例:在另外一個類中參照Demo類
import org.lxh.test.Demo1;//參照 Demo1 類 public class Test{ public static void main(String[] args) { System.out.println(new Demo1().getInfo()); } }
如果在一個類中匯入一個包中多個類時,一個個地匯入會比較麻煩,可以使用匯入“*” 的方式由 JVM 根據需要自己載入的類。==但是當一個程式中同時匯入了兩個包的同名類,使用時就必須明確地寫出完整的“包.類名稱”。==
範例:
import org.lxh.demo.a.*;//包中存在Demo類 import org.lxh.demo.c.*;//包中存在Demo類 public class Test{ public static void main(String[] args){ org.lxh.demo.a.Demo d = new org.lxh.demo.a.Demo(); System.out.println(d.getInfo()); } }
在JDK中為了方便使用者開發程式,提供了大量的系統功能包,如下圖所示:
java.util包在開發中使用較多,因為其支援大量的工具類操作,像本書中的常用類庫、 Java 類集都是圍繞此包展開講解的。
java.lang.reflect這個包一般在面試時有可能會問到,此包屬於比較高階的開發包。
如果一個類中的方法全部是使用static
宣告的靜態方法,則在匯入時就可以直接使用 import static
的方式匯入:
import static 包.類.*
範例:定義一個類,全部由靜態方法組成
package org.lxh.test; public class Demo1{ public static int add(int i,int j){ return i+j; } public static int sub(int i,int j){ return i-j; } public static int mul(int i,int j){ return i*j; } }
使用靜態匯入:
import static org.lxh.test.Demo1.*;//靜態匯入 public class Test{ public static void main(String[] args) { System.out.println("3+3 = " + add(3,3)); System.out.println("3-3 = " + sub(3,3)); } }
由於程式中使用了靜態匯入,所以Demo1 類中的所有靜態方法可以直接在 Test 類中使用,而 不需要使用 “類.靜態方法()” 的形式使用。
當開發者為客戶開發出了一套 Java 類之後,肯定要把這些類交給使用者使用,但是如果所有的類直接通過 *.class
的格式給使用者,會比較麻煩,所以一般情況下會將這些 *.class
檔案壓縮車一個檔案交付給客戶使用,那麼這樣的檔案就稱為 jar 檔案(Java Archive File)。
如果要想生成 jar 檔案,直接使用 JDK 中 bin 目錄裡的 jar.exe 就可以將所有的類檔案進行壓縮,此命令是隨 JDK 一起安裝的,直接在命令列中輸入 jar,即可看到此命令的提示介面:
當用戶得到一個 jar 檔案後,可以通過設定 classpath 的方式在系統中註冊號此 jar 檔案,以供程式使用。
jar 命令主要使用的引數如下:
C:建立新的檔案
V:生成詳細的輸出資訊
F:指定存檔的檔名
範例:定義一個類:
package org.lxh.test.demo; public class Test{ public class Test{ public String getInfo(){ return "Hello"; } } }
進行編譯
javac -d.Test.java
編譯成功
將生成的 a 資料夾打包,命名為 my.jar
這個檔案可以直接使用解壓軟體開啟此檔案,如果想要使用此檔案,需要設定 classpath:set classpath = .;G:Javamy.jar
以上設定了兩個 classpath 目錄,一個是從當前所在的資料夾中查詢,另外一個就是剛壓縮好的*.jar
檔案
在 Java 中一共存在 4 種存取控制許可權,即 private,default,protected 和 public
private屬於私有存取許可權,前面已經介紹過private存取許可權,可以用在屬性的定義、方法的宣告上,一旦使用了private關鍵字宣告,則只能在本類中進行存取。
如果一個類中的屬性或方法沒有使用任何的存取許可權宣告,則就是預設的存取許可權,預設的存取許可權可以被本包中的其他類所存取,但是不能被其他包的類所存取。
protected屬於受保護的存取許可權。一個類中的成員如果使用了protected存取許可權,則只能被本包及不同包的子類存取。
範例:設定 protected 的存取許可權
package org.lxh.test; public class HelloDemo{ protected String name = "Java";//只能被本包及不同包的子類存取 }
存取受保護的屬性:
import org.lxh.test.HelloDemo; class SubHelloDemo extends HelloDemo{ public void print(){ System.out.println("存取受保護屬性:" + super.name);//可以存取 protected 許可權 } } public class root { public static void main(String[] args) { SubHelloDemo sub = new SubHelloDemo();//範例化子類物件 sub.print(); } }
執行結果;
存取受保護屬性:Java
public屬於公共存取許可權。如果一個類中的成員使用了public存取許可權,就可以在所有類中被存取,不管是否在同一個包中。
總結存取控制許可權:
宣告類、方法、屬性等都是有一定的規範的,此規範如下。
到此這篇關於深入瞭解Java包與存取控制許可權的文章就介紹到這了,更多相關Java包 存取控制許可權內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45