學(xué)習(xí)啦 > 知識(shí)大全 > 方法百科 > 產(chǎn)品使用方法 > java get set方法的使用

java get set方法的使用

時(shí)間: 陳哲凡673 分享

java get set方法的使用

  Java是一門(mén)面向?qū)ο缶幊陶Z(yǔ)言,不僅吸收了C++語(yǔ)言的各種優(yōu)點(diǎn),還摒棄了C++里難以理解的多繼承、指針等概念.下面是學(xué)習(xí)啦小編為您帶來(lái)的java get set方法的使用,希望對(duì)大家有所幫助。

  java get set方法的使用(一)

  set和get方法一般是用來(lái)給類(lèi)的成員變量賦值的,由于類(lèi)的成員變量一般會(huì)聲明為private的,其他的類(lèi)是不能直接訪問(wèn)成員變量的,所以為了在類(lèi)以外給該類(lèi)的成員變量賦值或者取值,只有用聲明為public的set和get方法來(lái)實(shí)現(xiàn)set和get方法是用于封裝的 所以一般只在private中用 當(dāng)然你如果不是在private中用也沒(méi)關(guān)系 代碼也是可以執(zhí)行的

  public void setA(int a){this.a = a; }是傳進(jìn)去一個(gè)int類(lèi)型的實(shí)參a把它賦值給類(lèi)里的形參a

  public void setA(){this.a = a; }相當(dāng)于執(zhí)行了一條a=a的代碼 都是形參;

  public int getA(int a){this.a = a;}

  public int get(){this.a = a;}

  這兩條代碼都通不過(guò)編譯 會(huì)提示沒(méi)有返回值。

  java get set方法的使用(二)

  我們先來(lái)看看set和get這兩個(gè)詞的表面意思,set是設(shè)置的以此,而get是獲取的意思,顧名思義,這兩個(gè)方法是對(duì)數(shù)據(jù)進(jìn)行設(shè)置和獲取用的。而且,在類(lèi)中使用set和get方法時(shí),都是在set和get后面跟上一些特定的詞來(lái)形成特定意思的方法名,比如setage()和getage(),表示設(shè)置年齡和獲取年齡。

  然后我們來(lái)了解一下JAVA面向?qū)ο缶幊讨械姆忾]性和安全性。封閉性即對(duì)類(lèi)中的域變量進(jìn)行封閉操作,即用private來(lái)修飾他們,如此一來(lái)其他類(lèi)則不能對(duì)該變量訪問(wèn)。這樣我們就將這些變量封閉在了類(lèi)內(nèi)部,這樣就提高了數(shù)據(jù)的安全性,當(dāng)我們想要操作這些域變量怎么辦呢?我們可以通過(guò)兩種方法,第一中即通過(guò)public方式的構(gòu)造器(或稱(chēng)構(gòu)造函數(shù)),對(duì)象一實(shí)例化就對(duì)該變量賦值。第二種就是通過(guò)上面提到的set和get方法,這里我舉一個(gè)特定的例子,我定義一個(gè)Person類(lèi),該類(lèi)中有name、age這兩個(gè)私有域變量,然后我定義setname()、getname()、setage()、getage()這四個(gè)方法,通過(guò)這四個(gè)方法來(lái)實(shí)現(xiàn)對(duì)name和age的操作。這樣一來(lái),我不用直接對(duì)Person類(lèi)中的域變量操作,而是通過(guò)set和get方法間接地操作這些變量,這樣就能提高域變量的安全性,同時(shí)又保證了域變量的封裝型。

  最后說(shuō)說(shuō)set和get方法的使用場(chǎng)景,一般來(lái)說(shuō)set和get方法都是對(duì)私有域變量進(jìn)行操作的,所以大多數(shù)都是使用在包含特定屬性的類(lèi)實(shí)體中。

  現(xiàn)在你明白set和get方法了吧,其實(shí)這兩個(gè)方法只是類(lèi)中的setxxx和getxxx方法的總稱(chēng)。

  在今后的開(kāi)發(fā)過(guò)程中,只要你細(xì)心體會(huì),結(jié)合JAVA中的一些宏觀的知識(shí)。set和get方法還是很容易理解的,或許你還會(huì)領(lǐng)會(huì)一些其他的JAVA中的重要理論知識(shí)。

  Java的基本語(yǔ)法

  編寫(xiě)Java程序時(shí),應(yīng)注意以下幾點(diǎn):

  大小寫(xiě)敏感:Java是大小寫(xiě)敏感的,這就意味著標(biāo)識(shí)符Hello與hello是不同的。

  類(lèi)名:對(duì)于所有的類(lèi)來(lái)說(shuō),類(lèi)名的首字母應(yīng)該大寫(xiě)。如果類(lèi)名由若干單詞組成,那么每個(gè)單詞的首字母應(yīng)該大寫(xiě),例如 MyFirstJavaClass。

  方法名:所有的方法名都應(yīng)該以小寫(xiě)字母開(kāi)頭。如果方法名含有若干單詞,則后面的每個(gè)單詞首字母大寫(xiě),例如myFirstJavaMethod。

  源文件名:源文件名必須和類(lèi)名相同。當(dāng)保存文件的時(shí)候,你應(yīng)該使用類(lèi)名作為文件名保存(切記Java是大小寫(xiě)敏感的),文件名的后綴為.java。(如果文件名和類(lèi)名不相同則會(huì)導(dǎo)致編譯錯(cuò)誤)。

  主方法入口:所有的Java 程序由public static void main(String [] args)方法開(kāi)始執(zhí)行。

  JAVA語(yǔ)言特點(diǎn)

  1.簡(jiǎn)單性

  Java看起來(lái)設(shè)計(jì)得很像C++,但是為了使語(yǔ)言小和容易熟悉,設(shè)計(jì)者們把C++語(yǔ)言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持go to語(yǔ)句,代之以提供break和continue語(yǔ)句以及異常處理。Java還剔除了C++的操作符過(guò)載(overload)和多繼承特征,并且不使用主文件,免去了預(yù)處理程序。因?yàn)镴ava沒(méi)有結(jié)構(gòu),數(shù)組和串都是對(duì)象,所以不需要指針。Java能夠自動(dòng)處理對(duì)象的引用和間接引用,實(shí)現(xiàn)自動(dòng)的無(wú)用單元收集,使用戶(hù)不必為存儲(chǔ)管理問(wèn)題煩惱,能更多的時(shí)間和精力花在研發(fā)上。

  2.面向?qū)ο?/p>

  Java是一個(gè)面向?qū)ο蟮恼Z(yǔ)言。對(duì)程序員來(lái)說(shuō),這意味著要注意應(yīng)中的數(shù)據(jù)和操縱數(shù)據(jù)的方法(method),而不是嚴(yán)格地用過(guò)程來(lái)思考。在一個(gè)面向?qū)ο蟮南到y(tǒng)中,類(lèi)(class)是數(shù)據(jù)和操作數(shù)據(jù)的方法的集合。數(shù)據(jù)和方法一起描述對(duì)象(object)的狀態(tài)和行為。每一對(duì)象是其狀態(tài)和行為的封裝。類(lèi)是按一定體系和層次安排的,使得子類(lèi)可以從超類(lèi)繼承行為。在這個(gè)類(lèi)層次體系中有一個(gè)根類(lèi),它是具有一般行為的類(lèi)。Java程序是用類(lèi)來(lái)組織的。

  Java還包括一個(gè)類(lèi)的擴(kuò)展集合,分別組成各種程序包(Package),用戶(hù)可以在自己的程序中使用。例如,Java提供產(chǎn)生圖形用戶(hù)接口部件的類(lèi)(java.awt包),這里awt是抽象窗口工具集(abstract windowing toolkit)的縮寫(xiě),處理輸入輸出的類(lèi)(java.io包)和支持網(wǎng)絡(luò)功能的類(lèi)(java.net包)。

  3.分布性

  Java設(shè)計(jì)成支持在網(wǎng)絡(luò)上應(yīng)用,它是分布式語(yǔ)言。Java既支持各種層次的網(wǎng)絡(luò)連接,又以Socket類(lèi)支持可靠的流(stream)網(wǎng)絡(luò)連接,所以用戶(hù)可以產(chǎn)生分布式的客戶(hù)機(jī)和服務(wù)器。

  網(wǎng)絡(luò)變成軟件應(yīng)用的分布運(yùn)載工具。Java程序只要編寫(xiě)一次,就可到處運(yùn)行。

  4.編譯和解釋性

  Java編譯程序生成字節(jié)碼(byte-code),而不是通常的機(jī)器碼。Java字節(jié)碼提供對(duì)體系結(jié)構(gòu)中性的目標(biāo)文件格式,代碼設(shè)計(jì)成可有效地傳送程序到多個(gè)平臺(tái)。Java程序可以在任何實(shí)現(xiàn)了Java解釋程序和運(yùn)行系統(tǒng)(run-time system)的系統(tǒng)上運(yùn)行。

  在一個(gè)解釋性的環(huán)境中,程序開(kāi)發(fā)的標(biāo)準(zhǔn)“鏈接”階段大大消失了。如果說(shuō)Java還有一個(gè)鏈接階段,它只是把新類(lèi)裝進(jìn)環(huán)境的過(guò)程,它是增量式的、輕量級(jí)的過(guò)程。因此,Java支持快速原型和容易試驗(yàn),它將導(dǎo)致快速程序開(kāi)發(fā)。這是一個(gè)與傳統(tǒng)的、耗時(shí)的“編譯、鏈接和測(cè)試”形成鮮明對(duì)比的精巧的開(kāi)發(fā)過(guò)程。

  5.穩(wěn)健性

  Java

  Java原來(lái)是用作編寫(xiě)消費(fèi)類(lèi)家用電子產(chǎn)品軟件的語(yǔ)言,所以它是被設(shè)計(jì)成寫(xiě)高可靠和穩(wěn)健軟件的。Java消除了某些編程錯(cuò)誤,使得用它寫(xiě)可靠軟件相當(dāng)容易。

  Java是一個(gè)強(qiáng)類(lèi)型語(yǔ)言,它允許擴(kuò)展編譯時(shí)檢查潛在類(lèi)型不匹配問(wèn)題的功能。Java要求顯式的方法聲明,它不支持C風(fēng)格的隱式聲明。這些嚴(yán)格的要求保證編譯程序能捕捉調(diào)用錯(cuò)誤,這就導(dǎo)致更可靠的程序。

  可靠性方面最重要的增強(qiáng)之一是Java的存儲(chǔ)模型。Java不支持指針,它消除重寫(xiě)存儲(chǔ)和訛誤數(shù)據(jù)的可能性。類(lèi)似地,Java自動(dòng)的“無(wú)用單元收集”預(yù)防存儲(chǔ)漏泄和其它有關(guān)動(dòng)態(tài)存儲(chǔ)分配和解除分配的有害錯(cuò)誤。Java解釋程序也執(zhí)行許多運(yùn)行時(shí)的檢查,諸如驗(yàn)證所有數(shù)組和串訪問(wèn)是否在界限之內(nèi)。

  異常處理是Java中使得程序更穩(wěn)健的另一個(gè)特征。異常是某種類(lèi)似于錯(cuò)誤的異常條件出現(xiàn)的信號(hào)。使用try/catch/finally語(yǔ)句,程序員可以找到出錯(cuò)的處理代碼,這就簡(jiǎn)化了出錯(cuò)處理和恢復(fù)的任務(wù)。

  6.安全性

  Java的存儲(chǔ)分配模型是它防御惡意代碼的主要方法之一。Java沒(méi)有指針,所以程序員不能得到隱蔽起來(lái)的內(nèi)幕和偽造指針去指向存儲(chǔ)器。更重要的是,Java編譯程序不處理存儲(chǔ)安排決策,所以程序員不能通過(guò)查看聲明去猜測(cè)類(lèi)的實(shí)際存儲(chǔ)安排。編譯的Java代碼中的存儲(chǔ)引用在運(yùn)行時(shí)由Java解釋程序決定實(shí)際存儲(chǔ)地址。

  Java運(yùn)行系統(tǒng)使用字節(jié)碼驗(yàn)證過(guò)程來(lái)保證裝載到網(wǎng)絡(luò)上的代碼不違背任何Java語(yǔ)言限制。這個(gè)安全機(jī)制部分包括類(lèi)如何從網(wǎng)上裝載。例如,裝載的類(lèi)是放在分開(kāi)的名字空間而不是局部類(lèi),預(yù)防惡意的小應(yīng)用程序用它自己的版本來(lái)代替標(biāo)準(zhǔn)Java類(lèi)。

  7.可移植性

  Java使得語(yǔ)言聲明不依賴(lài)于實(shí)現(xiàn)的方面。例如,Java顯式說(shuō)明每個(gè)基本數(shù)據(jù)類(lèi)型的大小和它的運(yùn)算行為(這些數(shù)據(jù)類(lèi)型由Java語(yǔ)法描述)。

  Java環(huán)境本身對(duì)新的硬件平臺(tái)和操作系統(tǒng)是可移植的。Java編譯程序也用Java編寫(xiě),而Java運(yùn)行系統(tǒng)用ANSIC語(yǔ)言編寫(xiě)。

  8.高性能

  Java是一種先編譯后解釋的語(yǔ)言,所以它不如全編譯性語(yǔ)言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設(shè)計(jì)者制作了“及時(shí)”編譯程序,它能在運(yùn)行時(shí)把Java字節(jié)碼翻譯成特定CPU(中央處理器)的機(jī)器代碼,也就是實(shí)現(xiàn)全編譯了。

  Java字節(jié)碼格式設(shè)計(jì)時(shí)考慮到這些“及時(shí)”編譯程序的需要,所以生成機(jī)器代碼的過(guò)程相當(dāng)簡(jiǎn)單,它能產(chǎn)生相當(dāng)好的代碼。

  9.多線索性

  Java是多線索語(yǔ)言,它提供支持多線索的執(zhí)行(也稱(chēng)為輕便過(guò)程),能處理不同任務(wù),使具有線索的程序設(shè)計(jì)很容易。Java的lang包提供一個(gè)Thread類(lèi),它支持開(kāi)始線索、運(yùn)行線索、停止線索和檢查線索狀態(tài)的方法。

  Java的線索支持也包括一組同步原語(yǔ)。這些原語(yǔ)是基于監(jiān)督程序和條件變量風(fēng)范,由C.A.R.Haore開(kāi)發(fā)的廣泛使用的同步化方案。用關(guān)鍵詞synchronized,程序員可以說(shuō)明某些方法在一個(gè)類(lèi)中不能并發(fā)地運(yùn)行。這些方法在監(jiān)督程序控制之下,確保變量維持在一個(gè)一致的狀態(tài)。

  10.動(dòng)態(tài)性

  Java語(yǔ)言設(shè)計(jì)成適應(yīng)于變化的環(huán)境,它是一個(gè)動(dòng)態(tài)的語(yǔ)言。例如,Java中的類(lèi)是根據(jù)需要載入的,甚至有些是通過(guò)網(wǎng)絡(luò)獲取的。


猜你感興趣:

1.c中g(shù)et set的用法

2.Android Studio怎么自動(dòng)為變量生成Get/Set函數(shù)

3.什么是反射機(jī)制

4.java 反射調(diào)用set方法

551691