日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

java学习笔记(八)----包,jar文件

發(fā)布時間:2025/7/14 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 java学习笔记(八)----包,jar文件 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.


包? //建立包后同一個文件中的類都屬于這個包,所有的類都必須按包名所對應(yīng)的目錄,在硬盤中存放。同一個包中的類在相互調(diào)用時,是不用指定包名的。???
---在編譯時對于下面這個類,用這樣的方法? javac -d . TestException 就可以不用自已創(chuàng)建目錄,它自己就可以創(chuàng)建一個fhx的目錄,然后把所有的類放到里面。???????
package fhx;?? //定義包,這樣,在下面的所有的類都在這個包中,必須建一個名為fhx的文件夾,將下面編譯后的所有的類,都放到這個文件夾中,運(yùn)行時輸入 java fhx.TestException
class Test
{ public int devide(int x,int y) throws Exception
?? {? int result=x/y;
????? return result;
?? }
}
class TestException
{ public static void main(String[] args)
? { try
??? { new Test().devide(3,0);}
??? catch(Exception ex)
??? { System.out.println(ex.getMessage()); }
??? System.out.println("program is running here!");
? }
}
---如果一個包中的類要訪問另一個包中的類,則那個包中的類前必須加上public
package fhx;?
public class Test
{ public int devide(int x,int y) throws Exception
?? {? int result=x/y;
????? return result;
?? }
}


package hx;
class TestException
{ public static void main(String[] args)
? { try
??? { new fhx.Test().devide(3,0);}? //這里必須打上Test所在的包名,因為一個包中的類在調(diào)用另一個包中的類,必須寫上完整的包名。
??? catch(Exception ex)
??? { System.out.println(ex.getMessage()); }
??? System.out.println("program is running here!");
? }
}

----如果要多次用到fhx包中的類,可以用import fhx.*; 這樣在調(diào)用fhx包中的類,就不用再前面加上fhx.了
package hx;
import fhx.*;
class TestException
{ public static void main(String[] args)
? { try
??? { new Test().devide(3,0);}????? //這里就不用寫fhx.Text().devide(3,0)?
??? catch(Exception ex)
??? { System.out.println(ex.getMessage()); }
??? System.out.println("program is running here!");?
? }
}
---如果同時調(diào)用兩個包,而這兩個包又含有相同的類名,調(diào)用這個類時必須在類前寫上完整的包名
? import java.sql.*;
? import java.util.*;//它們下有下同的類Data
? java.util.Data? //調(diào)用util下的Data
?

***java下常用的包***
*java.lang----包含一些java語言的核心類,如String,Math,Integer,System,Thread,提供常用的功能。
*java.awt-----包含了構(gòu)成抽象窗口工具集(abstract window toolkits)的多個類,這些類被用來構(gòu)建和管理應(yīng)用程序的圖形用戶界面(GUI)
*java.applet--包含applet運(yùn)行所需的一些類。
*java.net-----包含執(zhí)行與網(wǎng)絡(luò)相關(guān)的操作的類。
*java.io------包含能提供多種輸入/輸出功能的類。
*java.util----包含一些實用工具類,如定義系統(tǒng)特性,使用與日期日歷相關(guān)的函數(shù)。

?

***********訪問控制*************
-----------------------------------
|???????????? |private|defalut|protected|public|
--------------------------------------------------
|同一類??????? |? T??? |?? T?? |?? T???? |?? T? |????
|同一包中的類? |?????? |?? T?? |?? T???? |?? T? |
-------------------------------------------------
|子類????????? |?????? |?????? |?? T???? |?? T? |
-------------------------------------------------
|其它包中的類? |??????? |?????? |???????? |? T?? |
--------------------------------------------------
類本身也有訪問控制,即在定義類的class關(guān)鍵字前加上訪問控制符,但類本身只有兩種訪問控制,即public和默認(rèn),父類不能是private和protected,否則子類無法繼承。public修飾的類能被的所有的類訪問,默認(rèn)修飾(即class關(guān)鍵字前沒有訪問控制符)的類,只能被同一包中的所有類訪問。???????
package fhx;?
public class Test
{ public int devide(int x,int y) throws Exception
?? {? int result=x/y;
????? return result;
?? }
? void fun1()? //前面沒有加public,所以別的包中的類不能調(diào)用它,只有同一包中的類可以調(diào)用它
? {...}
? private void fun2()? //加private只能被同一類中的函數(shù)訪問
? { fun1(); }
}


package hx;
class TestException
{
? public static void main(String[] args)
? { try
??? { new fhx.Test().devide(3,0);}?
????? new fhx.Test().fun1(); // 這條語句在編譯時出錯
??? catch(Exception ex)
??? { System.out.println(ex.getMessage()); }
??? System.out.println("program is running here!");
? }
}

-----------------------------------------------------------------------------------------------

package fhx;?
public class Test
{ public int devide(int x,int y) throws Exception
?? {? int result=x/y;
????? return result;
?? }
?protected void fun1()? //前面加protected,別的類繼承這個Test類可以執(zhí)行fun1()
? {...}
? private void fun2()? //加private只能被同一類中的函數(shù)訪問
? { fun1();
? }
}


package hx;
class TestException
{ class TestSub extends fhx.Test? //因為fun1()前面有protect,所以這里可以調(diào)用fun1()
? {?? public void fun3()
????? { fun1();}
? }
? public static void main(String[] args)
? { try
??? { new fhx.Test().devide(3,0);}?
????? new fhx.Test().fun1(); // 雖然fun1前有protect,但是這條語名編譯時出錯,因為只有繼承Test的類能用
??? catch(Exception ex)
??? { System.out.println(ex.getMessage()); }
??? System.out.println("program is running here!");
? }
}


*********jar文件**********
jar -cf 新建文件名.jar 壓縮的目錄
jar -cvf 新建文件名.jar 壓縮的目錄??? //在壓縮時顯示詳細(xì)信息
jar -cvf 新建文件名.jar 壓縮的目錄/*? //這樣就會把該目錄也加到j(luò)ar這個壓縮文件中
jar -cvf 新建文件名.jar 壓縮的目錄1 壓縮的目錄2 //同是壓縮多個目錄
jar -tf 文件名.jar?? //顯示jar中的詳細(xì)目錄信息
jar -tvf 文件名.jar?? //顯示jar中的更為詳細(xì)目錄信息
jar -tvf 文件名.jar >1.txt //將jar中的文件定向到1.txt中
jar -xvf 文件名.jar?? //解壓文件,顯示詳細(xì)信息

總結(jié)

以上是生活随笔為你收集整理的java学习笔记(八)----包,jar文件的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。