1. 程式人生 > >Java學習筆記16(面向對象九:補充內容)

Java學習筆記16(面向對象九:補充內容)

nal ati 接收 pri version prot sys add []

總是看到四種權限,這裏做一個介紹:

最大權限是public,後面依次是protected,default,private

private修飾的只在本類可以使用

public是最大權限,可以跨包使用,不同包的子類和無關類都可以使用,可以修飾類,方法,成員變量

不寫權限就是default默認權限:限於本包內使用

protected權限:跨包後的類如果有繼承關系(子類),不能使用default修飾的,而可以使用protected修飾的,調用時候必須在子類的裏面才可以調用父類的受保護權限,註意protected不能修飾類

日常開發用的只有:public、private

另外註意:

abstract不可以與static,private,final寫在一起

關於代碼塊:

示例

public class Person {
    private String name;
    private int age;
    public Person(String name,int age){
        this.age = age;
        this.name = name;
        System.out.println("構造方法");
    }
    //構造代碼塊
    {
        System.out.println("構造方法代碼塊");
    }
    //靜態代碼塊
    static{
        System.out.println(
"靜態代碼塊"); } }
//靜態代碼塊,只執行一次
//構造代碼塊,每次創建對象都會執行,優先於構造方法
public class Test {
    public static void main(String[] args) {
        Person person1 = new Person("張三", 18);
        Person person2 = new Person("李四", 18);
    }
}
/*
輸出:
靜態代碼塊
構造方法代碼塊
構造方法
構造方法代碼塊
構造方法
*/

還有一些補充內容:

文檔註釋和生成jar包

隨意寫一個類

package
demo; /** * @author dell * @version 1.0 */ public class Person { /** * * @param a * @param b * @return function */ public int function(int a, int b){ return a+b; } }

利用eclipse,選擇工程,右鍵export裏面有選擇Java,裏面有Javadoc等文件,

選擇後會生成一套網頁,相當於說明書,可以查看相關內容

也可以選擇java的其他選項,生成jar包等

導入jar包方式:

通常是在工程目錄下新建一個lib文件夾,放入jar包,右鍵build path -> add to build path,使用時候import就可以了

面向對象的補充:

1.類可以作為方法的參數傳遞,即方法的參數可以是一個對象,實質上是傳遞一個內存地址,在方法中進行對象的相關操作

2.和第一條類似,類也可以作為方法的返回值,即返回一個對象的引用

3.抽象類也可以作為方法的參數和返回值,區別在於:

抽象類沒有對象,只能利用多態的特性傳遞(返回)抽象類的子類對象,註意接收返回值的時候類型必須是抽象類而不是子類

4.接口同樣可以作為方法的參數和返回值:

接口也沒有對象,必須傳遞接口的實現類對象,註意可以利用多態創建實現類對象也可以直接創建實現類對象,

同樣,作為返回值的時候雖然傳入的是實現類對象,但是接收的時候必須是接口類型

針對上面的補充內容寫一個簡單的案例來理解:

public abstract class Animal {
    public abstract void eat();
    public static Animal getInstance(){
        return new Cat();
    }
}
public class Cat extends Animal {
    public void eat(){
        System.out.println("貓在吃");
    }
}
public class Test {
    public static void main(String[] args) {
        Animal a = Animal.getInstance();
        a.eat();//輸出:貓吃魚
    }
}

Java學習筆記16(面向對象九:補充內容)