面向物件的三大特徵(封裝)
阿新 • • 發佈:2018-12-15
文章目錄
基本含義
建立語法:
- private [非訪問控制修飾符] 資料型別 成員變數名;
- private [非訪問控制修飾符] 返回值資料型別 方法名(資料型別 形參1, 資料型別 形參2){方法體};
專案 | 含義 |
---|---|
別名 | 隱藏 |
目的 | 隱藏屬性或方法,防止外部類隨意訪問。 |
本類訪問 | this.成員變數名。 |
外類訪問 | 通過set方法和get方法 |
注意:
- 採用private訪問控制修飾符來修飾。
- 封裝的物件常常是成員變數。
具體操作
主函式入口原始檔:
public class MainEntrance{
public static void main(String[] args){
Student stu = new Student("張三", 18, "男");
/*
* 外類呼叫:封裝的成員變數。
* 目的:使用成員變數。
* 方法:通過get方法來呼叫。
*/
System.out.println("外類呼叫被封裝的成員變數為:" + stu.getAge());
// 結果:18。
/*
* 外類呼叫:封裝的成員變數。
* 目的:修改成員變數
* 方法:通過set方法來呼叫。
*/
stu.setAge();
// 結果: 19。
stu.getAge();
// 結果:19。
}
}
學生類原始檔:
public class Student{
/*
* 封裝屬性,即成員變數。
* 語法:private 資料型別 成員變數名;
* 目的:防止外部類隨意訪問。隱藏屬性。
*/
private String name;
private int age;
private String sex;
// 構造器:無參構造器。
public Student{
}
// 構造器:有引數的構造器。
public Student(String name, int age, String sex){
// 本類構造器呼叫:this.成員變數名。
this.name = name;
this.age = age;
this.sex = sex;
}
// 物件(非靜態)方法:
/*
* set方法
* 作用: 修改封裝的成員變數。
* 目的:幫助外部類物件修改被封裝的成員變數。
* set方法名:set + 首字母大寫的屬性名。
* 語法:public void set屬性(屬性資料型別 變數名){方法體}。
*/
public void setAge(){
// 本類物件方法呼叫:this.age。
this.age++;
System.out.println("設定加1後的年齡:"+ this.age);
}
/*
* get方法
* 作用:獲取封裝的成員變數。
* 目的:幫助外部類物件獲取被封裝的成員變數。
* get方法名:get + 首字母大寫的屬性名
* 語法:public 屬性資料型別 get屬性(){方法體}。
*/
public int getAge(){
return this.age;
}
/* 類(靜態)方法
* 訪問成員變數步驟
* 1. 建立物件。
* 2. 物件.成員變數名
*/
}