① 在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语言很好地实现了面向对象理论,允许程序员以一种优雅的思维方式进行复杂的编程。