1. 程式人生 > >JavaSE之包,許可權修飾符,內部類

JavaSE之包,許可權修飾符,內部類

包的概述

1,什麼是包?
   Java中的包,就相當於電腦中的資料夾。
2,包的宣告格式
   package 包名. 包名. 包名. .;
   如:package cn.sxflow.test;
3,包與包之間的互相訪問
   導包的格式,import 包名.類名
   例如:

package cn.sxflow.test02;
//被匯入的包
public class Test02 {
	public void show() {
		System.out.println("我是被匯入的包中的一個類");
	}
}
package cn.sxflow.test01;
//將包匯入
import cn.sxflow.test02.Test02;
public class Testo1 {
	public static void main(String[] args) {
		Test02 test = new Test02();
		test.show();
	}
}

許可權修飾符概述

Java中提供了四種訪問許可權,publicprotecteddefaultprivate
其中:
public 的範圍最大,所有的包,所有的類都可以訪問;注意:一個檔案中只允許有一個public修飾的類
protected 本包中的任意類和本包在其他包中的子類均可以訪問;
default ,預設修飾符,在本包範圍內可以隨便訪問;
private的範圍最小,唯有本類可以訪問;

值得注意的是,如果一個類的構造方法被private修飾,這個類將不可以創造物件。

內部類

1,什麼是內部類?
   將類寫在其他類的內部,如成員位置,區域性變數位置等。
2,內部類的使用情況
   描述一個物件的時候,這個事物內部還包含其他的事物。
   如:

class Person{//外部類 class School{//內部類 } }

3,成員內部類
   定義在外部類中的成員位置。
   訪問方式: 外部類名.內部類名 變數名 = new 外部類名().new 內部類名();
4,區域性內部類
   定義在外部類方法中的區域性位置,與訪問方法中的的區域性變數相似,可通過呼叫方法進行訪問。如:

public class Test01 {
	public static void main(String[] args) {
		Person p = new Person();
		p.test();
	}
}

class Person {// 外部類
	public void test() {
		System.out.println("展示學校前");
		class School {// 內部類
			void show() {
				System.out.println("這是我的學校,大同大學");
			}
		}
		School school = new School();
		school.show();
		System.out.println("展示學校後");
	}
}

5,匿名內部類
   建立每個型別子類物件的快捷方式,一般用於只使用一次的類;
格式:new 父類或者介面名(){ //對父類方法進行重寫};
舉例:

//介面
interface Person{
	void show();
}

public class Test01 {
	public static void main(String[] args) {
		Person person = new Person(){
			@Override
			//匿名內部類
			public void show() {
				System.out.println("這是我的學校,山西大同大學!");				
			}	
		};
		person.show();
	}
}