Java 包與接口

                                       Java 包和權限

6.1javac -d . Test.java //-d是根據Test.java生成文件夾、包.是代表當前路徑

//將類放置到一個包當中,需要使用package "包名"

//編譯時需要使用 -d參數,該參數的作用是依照包名生成相應的文件夾

//一個類的全名應該是“包名”+.+“類名”

//Jason.Test

//命名規劃:1.要求包名所有的字母都要小寫

//2.包名一般情況下,是你的域名倒過來寫

package org.jason.user;

class Test{

public static void main(String args[]){

System.out.println("Hello package");

}

}

6.2 包與訪問權限

Public主要在不同的包之中,如果需要訪問成員函數等等,需要定義public權限

package org.jason;

//如果一個類是public,那麼類名一定要與源文件名一致

//如果未加public,同時類在不同的包內,引用時則會報提示不是公共的

class Person{

public String name;

public int age;

public void introduce(){

System.out.println("name");

}

}

package org.feng;

class Test{

public static void main(String args[]){

org.jason.Person p=null;//不在同一個包內,需要寫全稱

}

}

Private權限只能在當前類中使用,目前只能爲變量與函數定義。

Default權限,同樣可以修飾類、變量、函數等,不需要寫修飾符,如果類在同一個包中,可以任意使用,調用,如果在不同的包中,需要使用public權限

 

Import導入

import org.jason.Person;

 

6.3 訪問權限與繼承

 

package org.jason;

//default 如果子類和父類不在同一個包當中,則子類可以繼承變量與函數,但是沒有權限訪問

//private 如果子類和父類不在同一個包當中,則子類無法繼承到父類當中的成員變量與成員函數

//protected權限首先擁有和default一樣的功能,但是該權限只能修飾成員變量與成員函數,

//除此之外,protected還允許跨包的繼承(子類與父類),而public允許各種包之間相互調用

//public>protected>default>private

//一個類或者變量的權限儘可能小

public class Person{

protected String name;

protected int age;

void eat(){

System.out.println("eat");

}

void sleep(){

System.out.println("sleep");

}

}

package org.feng;

import org.jason.Person;

class Student extends Person{

void introduce(){

System.out.println("my name is "+name+",my age is"+age);

}

7.java接口(重點)

定義了接口,就等於定義了調用對象的標準

 實現是特殊的繼承。

interface USB{

void read();

void write();

}

interface WiFi{

void open();

void close();

}

class Phone implements USB,WiFi{

public void read(){

System.out.println("USBPhone read");

}

public void write(){

System.out.println("USBPhone write");

}

public void open(){

System.out.println("WIFi open");

}

public void close(){

System.out.println("Wifi close");

}

}

class Test{

public static void main(String args[]){

Phone phone=new Phone();

USB usb=usbPhone;

usb.read();

usb.write();

WiFi wifi=phone;

wifi.open();

wifi.close();

}

}

class PrinterFactory{

public static Printer getPrinter(int flag){

Printer printer=null;

if (flag==0){

printer=new HPPrinter();

}

else if (flag==1){

printer=new CanonPrinter();

}

return printer;

}

}

 

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