總是看到四種許可權,這裡做一個介紹: 最大許可權是public,後面依次是protected,default,private private修飾的只在本類可以使用 public是最大許可權,可以跨包使用,不同包的子類和無關類都可以使用,可以修飾類,方法,成員變數 不寫許可權就是default預設許可權:限於本 ...
總是看到四種許可權,這裡做一個介紹:
最大許可權是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();//輸出:貓吃魚 } }