java基礎第11天



(1)包:package
A:對類文件進行分類管理
   B:給類提供多層命名空間,處理類名衝突!
  C:放在程序代碼的第一行(註釋除外)
        
   B的例子:
  java.awt.List  
  java.util.List
  java.sql.Date
  java.util.Date
  


  (2)包的命名(小寫)
   所有字母都要小寫!
   包名也是標識符,與類名、變量名等,都是標識符,應該遵守標識符規範。



   (3)訪問:先得有包,然後:包.類名
 編譯自動生成包層次文件夾
  javac –d  路徑 源文件名稱
  java c –d  .  源文件名稱
  javac  - d  .  PackageDemo.java


     -d 後面跟的是:目錄
     當前目錄:.
           運行時使用包的完全限定名(帶包名)
   運行類時,一定要給出完全限定名(全名)。
   java cn.itcast.類名
(4)不同包之間類的訪問
類一定要用類的完全限定名:包名.類名


2:protected
  包之間的繼承關係(子類),或者同包。
3:import
1)使用import引入指定包中所有類(簡化類名:import 包.*)
一個程序文件中只有一個package,可以有多個import。
用來導包中的類,不導入包中的包。

2)錯誤的import引入
  import java.*; (java包下沒有類只有包,*代表所有類)  
  import *.*;
   3)無需引入的包java.lang
  java.lang包下的類是常用類無需使用import來導入,但你非要導入也可以。
   
  
4:jar
(1)打包:
  打jar包 :jar cf  Package.jar cn(jar cf  打包後的名稱  要打包的名稱)
(2)查看jar包
jar  -xvf  Package.jar
  (3)jar.exe命令的參數
c:創建新的jar文件
f:指定文件名稱
v:顯示打包過程
m:指定清單文件
t:查看以存在jar文件內容
   (4)查看以存在jar文件內容:jar –tf  Package..jar





5:權限修飾符
同一個類中     同一個包中不同包中子類中    不同包中,不存在繼承關係
private OK
默認 OK Ok
protected    OkOk Ok
public OK Ok OK OK




6:關鍵字用來修飾什麼?
屬性方法 構造方法
private OK OK OK
默認 OK OkOk OK
protected Ok Ok OK
public Ok Ok Ok OK
static Ok Ok
final Ok Ok Ok
abstract Ok Ok


特殊:private和static可以修飾內部類。不用掌握。
      static可以代碼塊。靜態代碼塊。掌握。


A:權限修飾符任意時刻只能使用一種。
B:static,private,final 不能和abstract並用。


例1,導包例子
import java.util.Date;
class  PackageTest
{
public static void main(String[] args) 
{
Date d = new Date();


}
}
例2,編譯自動生成包層次文件夾
javac –d 路徑 源文件名稱
java c –d . 源文件名稱
javac –d . PackageTest.java




運行時使用包的完全限定名(帶包名)
  運行類時,一定要給出完全限定名(全名)。
  java cn.itcast.類名


package cn.itcast;
class  PackageTest
{
public static void main(String[] args) 
{

     System.out.println("Hello!!!");
}
}
例3打包
1,編譯自動生成包層次文件夾 javac –d . PackageTest.java
2,打jar包 :jar cf  Package.jar cn(jar cf  打包後的名稱  要打包的名稱)
package cn.itcast;
class  PackageTest
{
public static void main(String[] args) 
{

     System.out.println("Hello!!!");
}
}
例4把jar包引入到classpath中(會用到例3中的包)
先把這個包Package.jar放在F:\java0108\目錄下
再配置classpath
然後編譯,運行
E:\java0108\day11>set classpath=F:\java0108\Package.jar;.


E:\java0108\day11>javac -d . MainApp.java


E:\java0108\day11>java cn.itcast.MainApp
Hello!!!




package cn.itcast;
import cn.itcast.PackageTest;
class  MainApp
{
public static void main(String[] args) 
{

     PackageTest.main(null);
}
}
例5把jar包引入到classpath中


package cn.itcast;
import cn.itcast.PackageTest;
class  PackageTest
{
public static void main(String[] args) 
{

     System.out.println("Hello!!!");
}
}
例6protected(保護)訪問級別 (寫兩個java文件PackageTest .java ,MainApp.java)
package cn.itcast.a;


public class PackageTest {
protected void fun() {
System.out.println("PackageTest#fun()...");
}
}


package cn.itcast.main;


import cn.itcast.a.PackageTest;


public class MainApp extends PackageTest {
public void app() {
// super.fun();
}


public static void main(String[] args) {
MainApp ma = new MainApp();
ma.fun();
}

}



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章