搜尋
首頁JavaJava入門java物件導向-封裝

java物件導向-封裝

Nov 28, 2019 pm 02:12 PM
java封裝物件導向

java物件導向-封裝

概述

物件導向程式語言是客觀世界的模擬,客觀世界裡成員變數都是隱藏在物件內部的,外界無法直接操作和修改。封裝可以被認為是一個保護屏障,防止該類別的程式碼和資料被其他類別隨意存取。要存取該類別的數據,必須透過指定的方式。

適當的封裝可以讓程式碼更容易理解與維護,也加強了程式碼的安全性。

原則

將屬性隱藏起來,若需要存取某個屬性,提供公共方法對其存取。

封裝的步驟

使用 private 關鍵字來修飾成員變數。

對需要存取的成員變量,提供對應的一對 getXxx 方法 、 setXxx 方法。

java學習影片推薦:java線上教學

封裝的操作—private關鍵字

private的意思:

private是一個權限修飾符,代表最小權限,可以修飾成員變數和成員方法,被private修飾後的成員變數和成員方法,只在本類別中才能存取。

private的使用格式

private 数据类型 变量名 ;

使用private 修飾成員變量,程式碼如下:

java物件導向-封裝

#提供getXxx 方法/ setXxx 方法,可以存取成員變量,程式碼如下:

java物件導向-封裝

#封裝優化1——this關鍵字

java物件導向-封裝

##我們發現setXxx 方法中的形參名字並不符合見名知意的規定,那麼如果修改與成員變數名稱一致,是否就見名知意了呢?程式碼如下:

經過修改和測試,我們發現新的問題,成員變數賦值失敗了。也就是說,在修改了 setXxx() 的形參變數名後,方 法並沒有給成員變數賦值!這是由於形參變數名與成員變數名重名,導致成員變數名被隱藏,方法中的變數名,無法存取成員變量,從而賦值失敗。所以,我們只能使用this關鍵字,來解決這個重名問題。

this的意思

this代表所在類別的目前物件的參考(位址值),即物件自己的參考。

記住 :方法被哪個物件調用,方法中的this就代表那個物件。即誰在調用,this就代表誰。

this使用格式:

this.成员变量名;
public class Student {  
	private String name;  
	private int age;
	public void setName(String name) {
		//name = name;  
		this.name = name;
	}
	public String getName() {  
		return name;
	}
	public void setAge(int age) {
		//age = age; 
		this.age = age;
	}
	public int getAge() {  
		return age;
	}
}

#提示:方法中只有一個變數名稱時,預設也是使用 this 修飾,可以省略不寫。 java物件導向-封裝

封裝最佳化2-建構方法

當一個物件被建立時候,建構方法用來初始化該對象,為物件的成員變數賦初始值。 java物件導向-封裝

提示:無論你與否自訂建構方法,所有的類別都有建構方法,因為Java自動提供了一個無參數建構方法, 一旦自己定義了建構方法,Java自動提供的預設無參數構造方法就會失效。

建構方法的定義格式:

######建構方法的寫法上,方法名稱與它所在的類別名稱相同。它沒有傳回值,所以不需要傳回值類型,甚至不需要void。使用建構方法後,程式碼如下:##################注意事項:#########如果你不提供建構方法,系統會給予無參數構造方法。 ######如果你提供了建構方法,系統將不再提供無參數建構方法。 ######建構方法是可以重載的,既可以定義參數,也可以不定義參數。 ###

标准代码——JavaBean

JavaBean 是 Java语言编写类的一种标准规范。符合 JavaBean 的类,要求类必须是具体的和公共的,并且具有无 参数的构造方法,提供用来操作成员变量的 set 和 get 方法。

java物件導向-封裝

编写符合 JavaBean 规范的类,以学生类为例,标准代码如下:

java物件導向-封裝

测试类,代码如下:

public class TestStudent {
	public static void main(String[] args) {
		//无参构造使用
		Student s= new Student();  
		s.setName(" 柳 岩 "); 
		s.setAge(18);
		System.out.println(s.getName()+"‐‐‐"+s.getAge());
		//带参构造使用
		Student s2= new Student(" 赵 丽 颖 ",18);  
		System.out.println(s2.getName()+"‐‐‐"+s2.getAge());
	}
}

推荐相关文章教程:java语言入门

以上是java物件導向-封裝的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
3 週前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您聽不到任何人,如何修復音頻
3 週前By尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解鎖Myrise中的所有內容
4 週前By尊渡假赌尊渡假赌尊渡假赌

熱工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版

mPDF

mPDF

mPDF是一個PHP庫,可以從UTF-8編碼的HTML產生PDF檔案。原作者Ian Back編寫mPDF以從他的網站上「即時」輸出PDF文件,並處理不同的語言。與原始腳本如HTML2FPDF相比,它的速度較慢,並且在使用Unicode字體時產生的檔案較大,但支援CSS樣式等,並進行了大量增強。支援幾乎所有語言,包括RTL(阿拉伯語和希伯來語)和CJK(中日韓)。支援嵌套的區塊級元素(如P、DIV),

Atom編輯器mac版下載

Atom編輯器mac版下載

最受歡迎的的開源編輯器

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一個PHP/MySQL的Web應用程序,非常容易受到攻擊。它的主要目標是成為安全專業人員在合法環境中測試自己的技能和工具的輔助工具,幫助Web開發人員更好地理解保護網路應用程式的過程,並幫助教師/學生在課堂環境中教授/學習Web應用程式安全性。 DVWA的目標是透過簡單直接的介面練習一些最常見的Web漏洞,難度各不相同。請注意,該軟體中

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器