java中封装的set get怎么使用

java中封装的set get怎么使用,第1张

get方法是给私有成员变量取值的,set方法是赋值的,而成员变量的值只能在本类中被使用,而且改变的时候容易引起新的问题
比如:
private String age;
private String id;
如果没有get,set你就无法赋值String age和String id。
规则上来说是没什么区别的, 用get, set, 是因为在这里面可以多做很多事情, 比如set一个字符串, 你把它转化为内部实际使用的整数(为了效率), get的时候又把整数转化为字符(为了便于理解)
另外, 如果你用了继承, set的时候可以调用父类的相应方法
总之get, set有一些便利, 所以很多编辑器直接支持了。

主要的几个点:
1、确定表有多少行。
2、按表的行数画表格。

给你个示列

import javaawtBorderLayout;

import javaawtColor;

import javaawtFont;

import javabeansStatement;

import javasqlConnection;

import javasqlDriverManager;

import javasqlResultSet;

import javasqlSQLException;

import javautilVector;

getResult() 是静态方法 , 可以在main函数中直接直接调用(在非本类中可以用 类名方法名 来调用) 而不用声明对象 , 这里main中只是要看不同入参的结果 , 所以多次调用
如果你问的是 , 为什么电泳getResult() 而不是直接写代码的话 , 原因就是 , 如果直接写代码 , 调用的三次就需要写三遍一模一样的代码 , 只是a值不一样而已 , 这样代码很冗余, 而且别的类中想要同样的功能 , 还要自己写 , 而把这个功能提取出来作为一个方法 , 就可以随意调用了, 一行代码就可以了 , 而不必再次写一个循环和输入

1、在类中使用set和get方法时,都是在set和get后面跟上一些特定的词来形成特定意思的方法名,比如setage()和getage(),表示设置年龄和获取年龄。

2、然后我们来了解一下JAVA面向对象编程中的封闭性和安全性。封闭性即对类中的域变量进行封闭 *** 作,即用private来修饰他们,如此一来其他类则不能对该变量访问。

3、这样我们就将这些变量封闭在了类内部,这样就提高了数据的安全性,当我们想要 *** 作这些域变量怎么办呢?我们可以通过两种方法,第一中即通过public方式的构造器(或称构造函数),对象一实例化就对该变量赋值。第二种就是通过上面提到的set和get方法,这里我举一个特定的例子,我定义一个Person类,该类中有name、age这两个私有域变量,然后我定义setname()、getname()、setage()、getage()这四个方法,通过这四个方法来实现对name和age的 *** 作。这样一来,我不用直接对Person类中的域变量 *** 作,而是通过set和get方法间接地 *** 作这些变量,这样就能提高域变量的安全性,同时又保证了域变量的封装型。

4、最后说说set和get方法的使用场景,一般来说set和get方法都是对私有域变量进行 *** 作的,所以大多数都是使用在包含特定属性的类实体中。

这么说吧,
get就是你从它那里得到,
set就是你要给与它值,
比如一个冰箱作为对象吧,
冰箱get()就是你从冰箱里面拿出雪糕
冰箱set()就是你往冰箱里面放入雪糕,
get就是你拿出雪糕了,然后雪糕由你来处理,怎么样都行,自己吃,给别人,随你
如果冰箱是空得,你怎么拿的出雪糕呢,
所以你最先要做得是放入,也就是你来给它雪糕
同样你给了它其实就是为你以后得拿来做铺垫
总结set是给,get是拿。。。。
这样说够简单了吧,希望你能明白

给你写了个例子你看下哈。。
import javalangreflectField;
public class GetField {
public static void main(String[] args) {
try {
Class clazz = ClassforName("");//根据类名获得其对应的Class对象 写上你想要的类名就是了 注意是全名 如果有包的话要加上 比如javaLangString
Field[] fields = clazzgetDeclaredFields();//根据Class对象获得属性 私有的也可以获得
for(Field f : fields) {
Systemoutprintln(fgetType()getName());//打印每个属性的类型名字
}
} catch(Exception e) {
eprintStackTrace();
}

}
}dzwsthmzcom/jhsy/wtrl/

import javaio;
public class Linux {
public static void main(String[] args) throws IOException {
//将根目录下的文件列出并将结果写入 /tmp/listout
Process p = RuntimegetRuntime()exec("ls -al /");
InputStream in = pgetInputStream();
OutputStream out = new FileOutputStream("/tmp/listout");
byte[] b = new byte[1024];
int r;
while((r=inread(b))>-1)
outwrite(b,0,r);
outflush();
outclose();
}
}

构造函数这么写:
Vehicle(double maxLoad){
setMaxLoad(maxLoad);
}
然后再加一个setMaxLoad方法:
public void setMaxLoad(double maxLoad) {
thismaxLoad = maxLoad;
}
就可以了。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/13089809.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-30
下一篇 2023-05-30

发表评论

登录后才能评论

评论列表(0条)

保存