① 在java中,set和get方法什麼時候用
get()和set()有一個好處,當輸入.get(.set)時就能顯示所有的屬性。把所有設置都歸納起來,對於外部的使用都方便而已。
1、靈活性
比如我們有一個Person類,我們給它設置一個屬性name,但是我們希望在取名字的時候,不是只顯示名字,而是把名字按我們的要求輸出,比如」我的名字叫XX」,代碼如下:
publicclassPerson{
privateStringname;
publicStringgetName(){
return"我的名字叫"+name;
}
publicvoidsetName(Stringname){
this.name=name;
}
}
如上代碼,以後我們只要定義一個person對象,並給他setName(xx),再getName的時候,就會顯示我的名字叫XX。
2、安全性。
比如我們的操作系統在新建用戶或在共享文件的時候,經常會提示對針對某個用戶的許可權是什麼,是只讀還是只寫還是可讀寫,這里的讀寫就好比get/set。
對於類來說,如果不使用set/get方法,直接用public定義某個屬性,那麼這個屬性是可讀可寫的,如果你希望一個類的某個屬性是只能讀取,不能寫入的時候,上面用public定義某個屬性就不能滿足了,但是我們可以使用private定義屬性,再定義一個get方法,但是不定義set方法來實現。反之,只定義set,不定義get則表示該屬性是只寫不能讀的。如下列代碼:
publicclassCircle{
privatedoubleradius;
privatedoublepai=3.14;
publicdoublegetPai(){
returnpai;
}
publicvoidsetRadius(doubleradius){
this.radius=radius;
}
/**
*計算周長
*/
publicdoublegetC(){
return2*pai*radius;
}
}
我們定義了一個圓類,定義了屬性半徑和pai,半徑我只提供寫的方法,但是不提供讀,而pai只提供讀,但不能寫,並提供了一個計算周長的方法getC。在實際項目中,對一些類的設計時,嚴謹的設計是要考慮哪些類是只讀或是只寫的。
② java中「get」和「set」方法怎麼寫
java bean就是把自己的數據成員封裝起來, 讓外界不能直接操作數據成員; 而只能通過bean提供的get 和 set方法進行操作,保證了數據安全性。可以理解為:get就是把對象中的值拿出來, set就是把某個值放到對象中去。
比如:
public class LoginInfoBean {
private String time; //時間
private String ip; //IP
private String account; // 賬號
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
}
---------------------------------------------------------------
關於如何在servlet中取得數據:
首先要明白,我們提交到servlet的數據,需要走servlet的doGet或者doPost方法。
如果你不用框架,只用純粹的servlet,在servlet的doGet和doPost方法中因為只有兩個參數,也就是HttpRequest和HttpResponse,比如:
doPost(HttpServletRequest req,
HttpServletResponse resp){
........
}
按照以上的寫法,只能通過req.getParamter("xxx")取得;
比如下面這個例子:
file: login.jsp
<form id="loginform" name="loginform" method="post" action="LoginServlet" >
<input name="userName" type="text" id="userName" />
ps: 通過 action="LoginServlet" 可以知道,提交的路徑為LoginServlet, 然後會到web.xml中尋找關於LoginServlet 的具體配置,以確定是哪個servlet處理這個請求。
file: web.xml
<servlet>
<servlet-name>LoginServlet</servlet-name>
<servlet-class>com.test.LoginServlet</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>LoginServlet</servlet-name>
<url-pattern>/LoginServlet</url-pattern>
</servlet-mapping>
ps: 通過以上配置可以確定,處理這個請求的servlet為com.test.LoginServlet
file: com.test.LoginServlet.java
public void doPost(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
String name = request.getParameter("userName");
}
ps: 通過 request.getParameter("userName"); 就可以取得頁面上輸入的值。
如果用框架,每個框架的機制不一樣,需要分別對待, 但底層也都是servlet。我接觸過的struts1, struts2, 和spring MVC, 其中 struts1 給我們提供了一個formbean, 用於收集頁面的數據(就是上面那個javabean的問題); struts2和spring MVC 省去了formbean, 後台處理的action就是一個bean, 數據在action中直接可以取到。
推薦一個簡單的方法:寫get/set方法,OC有一個自動化的方法,即使用@proterty和@synthesize關鍵字
Person.h
③ JAVA 中get()和get()的用法,和意義
面向對象最重要的特性之一是封裝
getter和setter我們稱為屬性訪問控制器
通常,由於我們的屬性被設置為private,我們不允許直接外部調用,而只提供公共的getter和setter方法。
我們只需要封裝年齡屬性,我們只需要保持適當的值,沒有負的年齡,這是常識。
例如:
Publicclass{
Privateintage;
PublicintgetAge(){
Returnthis.Theage;
}
PublicvoidsetAge(intage)throwsanexception{
If (age < 0){
Throwanewexception("ageerrorentered");
Other}{
This.Theage;
}
}
}
(3)java函數get擴展閱讀:
Set()和get()在API中不可用,因為任何類都可以有Set和get方法,您可以在自己的類中編寫Set和get方法。變數的set方法是為該變數賦值,get方法是獲取該變數的值。
這是set和get最基本的用法,例如:一個標準的Javabean由所有變數及其set和get方法組成。
Java是一種面向對象的編程語言,它不僅吸收了c++語言的優點,而且拋棄了c++中難以理解的多繼承概念、指針,因此Java語言具有功能強大和易於使用的兩個特點。
作為靜態面向對象編程語言的代表,Java語言很好地實現了面向對象理論,允許程序員以一種優雅的思維方式進行復雜的編程。