JAVA入門系統教程(六)物件導向(封裝)

來源:互聯網
上載者:User
###物件導向(封裝)###

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)

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.