###物件導向(封裝)###
1. 概念:封裝是將類的某些資訊隱藏在類的內部,不允許外部程式直接存取,而是通過該類提供的方法來實現對隱藏資訊的操作和訪問
優點:a.只能通過規定的方法訪問數 b.隱藏類的執行個體細節,方便修改和實現
2. 實現步驟:
1)修改屬性可見度(設為private)
2)建立getter/setter方法(用於屬性讀寫)
3)在方法中加入屬性控制語句(對屬性值得合法進行判斷)
例:設定學生類:兩個屬性 1)name 2)age
在Student類中,加入針對age年齡判斷,如果年齡小於0或者大於150,提示:不合理資料
加入判斷,不能解決的存在不合理資料;
利用關鍵字private:私人--->不能訪問(被private修飾的成員變數/成員方法,只能在本類中訪問,外界不能夠直接存取)
3. 包
1)包的作用:管理JAVA檔案,解決同名檔案衝突
定義包:package 包名
註:必須放在JAVA來源程式第一行包名間可以用 . 隔開,如:com.westos.Class
2)系統中的包:
java.(功能).(類)
java.lang.(類)包含java語言基礎類
java.util.(類)包含java語言中各種工具類
java.io.(類)包含輸入輸出相關功能類
3)包的使用:通過import關鍵字,在某個檔案使用其他檔案中的類
如:我們之間在鍵盤錄入中匯入的包
註:java中,包的命名規範全為小寫字母
使用時可以載入某包下的所有檔案(import java.util.*)或牟特具體子包(import java.util.Scanner)
4. 存取修飾詞:用來修飾屬性和方法的存取範圍
ps:通常我們把方法用public修飾屬性用private修飾
5.this關鍵字
1)this關鍵字代表當前引用對象
this.屬性: 操作當前對象的屬性
this.方法: 調用當前對象的方法
2)封裝對象的屬性的時候,經常會使用this關鍵字
ps:產生get 、set方法
Source--->Generate Getters and Setters
這時我們發現,我們的屬性名稱和參數名重複了,為了區分,我們加了this關鍵字,意為把參數的值賦給當前屬性的值
this關鍵字不但可以跟屬性使用,如果我們希望在一個set方法裡調用某個方法也可使用
例:綜合之前的例子,輸出結果
1.手機類
package example;public class Phone {private String brand;private int price;private String color;public void sendMessage() {System.out.println("you can message to Andrew");}public String getBrand() {return brand;}public void setBrand(String brand) {this.brand = brand;this.sendMessage();}public int getPrice() {return price;}public void setPrice(int price) {this.price = price;}public String getColor() {return color;}public void setColor(String color) {this.color = color;}public void show(String name) {System.out.println(name+" use the iphone to call Andrew");}}
2. 學生類
package example;public class Student {//定義兩個變數String name ;String gender;private int age ;//提供方法:輸出變數public void show() {System.out.println(name+" "+age+" "+gender);}public String getName() {return name;}public void setName(String name) {this.name = name;}public int getAge() {return age;}public String getGender() {return gender;}public void setGender(String gender) {this.gender = gender;}//針對age進行判斷public void setAge(int a) {if(a<0||a>150) {System.out.println("該資料不符合實際");}else {age = a;}}}
3. 調用
package example;public class Ex2 {public static void main(String[] args) {Student x = new Student();Phone i = new Phone();x.setAge(24);x.setName("Silvia");x.setGender("Lady");x.show();i.setBrand("Apple");i.setColor("玫瑰金");i.setPrice(6999);i.show(x.name);}}
結果:
####END####
相關文章:
JAVA入門系統教程(四)基礎文法(2)
JAVA入門系統教程(五)基礎文法(3)