1. 程式人生 > >面向物件———封裝,包,訪問修飾符,static關鍵字

面向物件———封裝,包,訪問修飾符,static關鍵字

一、封裝概念

封裝實質就是將類的狀態資訊隱藏在類內部,不允許外部程式直接訪問,而是通過該類的方法來實現對隱藏資訊的操作和訪問。

理解:封裝就是將類內部的屬性私有化,不允許外部直接訪問,然後通過對應的get,set方法來實現對隱藏資訊的操作!

封裝好處:隱藏類的實現細節,限制不合理操作!

2.實現封裝的步驟:

  • 修改屬性的可見性
  • 設定get set方法
  • 設定屬性的存取限制

程式碼如下:

//人類
public class Person {
	public String name;			//姓名
	public int age;				//年齡
	public String gender;		//性別
	
	//封裝屬性
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		if(age<0||age>150) {
			System.out.println("****輸入的年齡為:"+age+",該年齡不合法,將重置....");
			return;
		}
		this.age = age;
	}
	public String getGender() {
		return gender;
	}
	public void setGender(String gender) {
		if(gender.equals("男")||gender.equals("女")) {			//判斷是否輸入的男或者女
			this.gender=gender;
		}else {
			System.out.println("*****性別不合法*****");
		}
	}
	
	//構造方法
	public Person() {
		this.name="無名氏";
		this.age=18;
		this.gender="男";
	}
	//有參構造
	public Person(String name,int age, String gender) {
		this.name=name;
		this.age=age;
		this.gender=gender;
	}
	
	//自我介紹方法
	public void say() {
		System.out.println("自我介紹一下:");
		System.out.println("姓名:"+this.name);
		System.out.println("性別:"+this.gender);
		System.out.println("年齡:"+this.age);
	} 
	
}

//測試類
 public class Test {
	 public static void main(String[] args) {
		Person person=new Person();			//例項化物件
		person.setAge(220);					//給年齡賦值
		person.setGender("中性");			//給性別賦值 
		person.setName("劉明");				//給姓名賦值
		person.say();						//呼叫方法,輸出
	}
 }

輸出結果:

二、包

1.使用包的步驟

  • 新建包
  • 將定義好的包分別放入不同的類中
  • 匯入包

2.包的作用:

  • 便於管理

  • 防止命名衝突(主要是類名)

  • 限制訪問許可權

3.包的定義

  • package是宣告包的關鍵字
  • 包的宣告必須是java原始檔中的第一條非註釋性語句,而且一個原始檔只能有一個宣告包的語句
  • 包的使用規範:包名字首小寫,不能以圓點開頭或者結尾,不能包含除   " . "  外的其他特殊符號!

三、類和類的訪問修飾符

1.類的訪問修飾符

java中類的訪問修飾符

修飾符

同一個包中

非同一包中

public

可以使用

可以使用

預設修飾符

可以使用

不可以使用

2.類成員的訪問修飾符

Java類成員的訪問修飾符

修飾符

同一類中

同一包中

子類中

其他地方

private

可以使用

不可以使用

不可以使用

不可以使用

預設修飾符

可以使用

可以使用

不可以使用

不可以使用

protected

可以使用

可以使用

可以使用

不可以使用

public

可以使用

可以使用

可以使用

可以使用

四、static關鍵字

1.用static關鍵字修飾屬性

static修飾的屬性稱為靜態變數或者類變數,沒有使用static修飾的屬性叫做例項變數

2.用static關鍵字修飾方法

用static修飾的方法叫做靜態方法,沒有使用static修飾的方法叫做例項方法。

注意:

  • 靜態方法/屬性,不屬於具體的物件,被呼叫時可以直接  類名.屬性/方法名  呼叫。

  • 在靜態方法/變數中不能直接訪問非靜態(例項)方法/變數

  • 在例項方法/變數中可以直接呼叫類中定義的靜態方法/變數