java裏getter和setter的作用(轉載) - 程式人生
文章推薦指數: 80 %
【java】類中使用getter和setter的優勢. http://www.importnew.com/9716.html. java有三大特性:封裝,繼承還有多態。
而今天,我來講一下其中最重要 ...
程式人生>>java裏getter和setter的作用(轉載)
java裏getter和setter的作用(轉載)
阿新••發佈:2017-10-03
details訪問str內部比較進行無需銀行自己的【java】類中使用getter和setter的優勢
http://www.importnew.com/9716.html
java有三大特性:封裝,繼承還有多態。
而今天,我來講一下其中最重要的特性之一:封裝。
首先,屬性可用來描述同一類事物的特征,方法可描述一類事物可做的操作。
封裝就是把屬於同一類事物的共性(包括屬性與方法)歸到一個類中,以方便使用。
1.概念:封裝也稱為信息隱藏,是指利用抽象數據類型將數據和基於數據的操作封裝在一起,使其構成一個不可分割的獨立實體,數據被保護在抽象數據類型的內部,盡可能地隱藏內部的細節,只保留一些對外接口使之與外部發生聯系。
系統的其他部分只有通過包裹在數據外面的被授權的操作來與這個抽象數據類型交流與交互。
也就是說,用戶無需知道對象內部方法的實現細節,但可以根據對象提供的外部接口(對象名和參數)訪問該對象。
2.好處:(1)實現了專業的分工。
將能實現某一特定功能的代碼封裝成一個獨立的實體後,各程序員可以在需要的時候調用,從而實現了專業的分工。
(2)隱藏信息,實現細節。
通過控制訪問權限可以將可以將不想讓客戶端程序員看到的信息隱藏起來,如某客戶的銀行的密碼需要保密,只能對該客戶開發權限。
而我們在設置變量的屬性時,我們通常會對數據進行封裝,這樣就可以增加了數據訪問限制,增加了程序可維護性。
而實現方法就是:用private去修飾一個變量,然後再用setter方法去設置該變量的值,然後在用getter方法去調用該變量的值。
[java]viewplaincopy
publicclassStudent{
privateStringnumber;//學生學號
privateStringname;//學生姓名
privateintgrade;//學生成績
publicStudent(){
}
publicStringgetNumber(){//用get方法得到學號(下同)
returnnumber;
}
publicvoidsetNumber(Stringnumber){//用set方法去設置學號(下同)
this.number=number;
}
publicStringgetName(){
returnname;
}
publicvoidsetName(Stringname){
this.name=name;
}
publicintgetGrade(){
returngrade;
}
publicvoidsetGrade(intgrade){
this.grade=grade;
}
publicstaticvoidmain(Stringagrs[]){
Studentst=newStudent();
st.setNumber("010112233");
st.setName("小明");
st.setGrade(100);
System.out.println("學號為:"+st.getNumber()+","+"姓名為:"+st.getName()+","+"成績為:"+st.getGrade()+"。
");
}
}
用setter來改變數據成員的值時,操作必須由這個對象自己來觸發用public來改變數據成員的值時,操作可以由任何對象來觸發這是面向對象的封裝,總之就是自己的數據成員,只對自己可見,也只有自己才能改變其值
對象的封裝性,private的只有對象自己才可以訪問,其他任何對象不行,包括它的子類和父類。
安全性高,其他對象只能通過它的public方法,set,get來獲取或設置原對象的private屬性。
public其他對象可以訪問,安全性就不高了。
/*問題:在java類中使用getter和setter的好處?*定義為private是為了實現數據的隱藏和封裝;而setget方法提供了類與外部的接口;在大型軟件中這是很有必要的,它有利於代碼的維護舉個例子,一個父類有多個子類(甚至還有間接子類),程序代碼中,子類是不能直接訪問父類的private屬性的;這時提供的setget方法是很有必要的誠然,若將父類的屬性聲明為protected,在子類中就可以直接訪問了,但是這種方法破壞了數據的隱藏和封裝原則,關鍵是不利於代碼的維護,如果父類中的一個屬性改名了,那麽在子類中用到該屬性名的代碼,要發生大範圍的修改,而前面的private,set,get方法就比較好,對代碼只需小範圍的修改,一般都是這麽用的,這是一個良好的編程習慣*/
java裏getter和setter的作用(轉載)
智能小車34:匯編與C語言一起玩
«上一篇
ThreadLocal的理解與應用場景分析下一篇»
相關推薦
java裏getter和setter的作用(轉載)
details訪問str內部比較進行無需銀行自己的【java】類中使用getter和setter的優勢
...
安全程式設計(十七)-Java的getter()和setter()
1.前言
我們在學習時,參考別人專案時會碰到像這樣的一些程式碼:
packagecn...
namespace的用法和作用(轉載)
在大型軟體開發專案中,型別和函式名衝突是常有的事,如:定義專用型別時就常常不只一次地使用相同的名字。
為了避免這個問題。
人們通常...
getClass()和getSimpleName()的區別和作用(轉載)
介面:
packagecom.test;
publicinterfaceFruit{
}
一個實現類:
packagecom.test;
...
Softmax函式的特點和作用(轉載)
Logistic分類器
分類問題,是機器學習裡最基礎的問題。
我們從最簡單的二分類任務開始考慮,假...
【Spring】Spring各jar包的作用(轉載)
除了spring.jar檔案,Spring還包括有其它13個獨立的jar包,各自包含著對應的Spring元件,使用者可以根據自己的需要來選擇組...
Spring各jar包的作用(轉載)
文章出處:https://www.cnblogs.com/BensonHe/p/3903050.html
spring.jar是包含有完整發布的單...
PHP目錄下php-config的作用[轉載]
##原文地址:https://blog.csdn.net/yonggang7/article/details/24106681
1.ph...
UML交互圖:順序圖和協作圖(轉載)
-a過程ges.cn表達用戶umlarticle交互關系順序圖和協作圖統稱為“交互圖”,順序圖著重體現交互...
Ajax請求中的async:false/true的作用【轉載】
[Ajax請求中的async:false/true的作用]
作者:https://www.cnblogs.com/mmzuo-798/p/7098979.ht...
搜尋
基礎教學
Mysql入門
Sql入門
Android入門
Docker入門
Go語言入門
Ruby程式入門
Python入門
Python進階
Django入門
Python爬蟲入門
最近訪問
java裏getter和setter的作用(轉載)
DB2的資料移動:匯入(Import)匯出(Export)載入(Load)
全網最詳細!Centos7.X+搭建Grafana+Jmeter+Influxdb+效能實時監控平臺
ssm專案+啟動的時候立即執行一些程式
javascript如何監聽頁面重新整理和頁面關閉事件
ContentType元件+ContentType元件
C#+TableLayoutPanel使用方法
std::less()用法及分析分析
struct結構體佔記憶體大小計算
清空文件內容命令之echo和/dev/null區別?
延伸文章資訊
- 1java中的setter()、getter()方法用法 - CSDN博客
JAVA中的setter//getter()方法用法public class Student { String name;public String getName() { return nam...
- 2[Java] 關於getter與setter | 羅倫斯的IT航海日誌 - - 點部落
- 3java裏getter和setter的作用(轉載) - 程式人生
【java】類中使用getter和setter的優勢. http://www.importnew.com/9716.html. java有三大特性:封裝,繼承還有多態。 而今天,我來講一下其中最...
- 4Java Getter/Setter “防坑指南” 来了 - 掘金
Getter/Setter 在Java 中被广泛使用。看似简单,但并非每个Java 开发人员都能很好理解并正确实现Getter/Setter 方法。因此,在这篇文章里, ...
- 5Java』List<GetterSetter> 如何在陣列中使用Getter Setter
今天想來聊一下關於用Java的List陣列完成Getter-Setter這件事(`・ω・´)+ 如果你上網google: java setter ... Array<HashMap<String...