getter和setter方法一般是用于对类私有成员进行取值和赋值的操作。一般把getter和setter方法设置为public,便于外界访问类内部私有成员。如果把getter和setter方法设置为private,那么就只能在类内部进行访问了。这样的话,唯一的作用就是把对私有成员进行取值和赋值操作的时候需要的其他的一些相关操作封装在getter和setter函数里,进行统一操作。这样就不用每次在类内部的其他地方进行取值和赋值的时候都要进行相关操作了。相关示例代码如下:
public class PrivateGetSet extends BaseClass {
private int x;
private int getX() {return x++; //每次取值,都会自加1}
private void setX(int x) {//每次赋值,都会检查并进行相关操作if (x < 0) {this.x = 0;} else {this.x = x;}}
/****/public PrivateGetSet() {// TODO Auto-generated constructor stub}
/* (non-Javadoc)* @see BaseClass#test()*/@Overridepublic void test() {// TODO Auto-generated method stubgetX();setX(-1);for (int i = 0; i < 3; i++) {System.out.println(getX());}}
}
java程序一般将A类的属性修饰符设置为private,这是为了更好的封装数据。要想在B类里引用该属性,就可以在A类里定义修饰符为public的set,get方法以设置和获取private型的属性值。好处1 将数据与行为分离,也就是java的面向对象的概念。
对象就是属性+行为,封装就是把对象的私有属性封装起来,只有通过自己公开的行为去改变(获得)对象内部的私有属性信息,而那些public的方法正是面向其他对象的接口,只有通过接口去改变(获得)对象的私有属性2 安全性
设想,你有一个Person类代表一个人,Person有一个char类型的sex字段表示性别,理论上,sex只接受两个值, 'M '和 'F ',但如果你把sex字段设为public,你很难限制你的用户只给它赋 'M '或 'F '值。将sex设为private,再用setSex()来设置性别,你就完全可以控制这种行为了。而且你还可以控制只能get不能set,或相反,但如果是public就不行了。别外有一点属性我们可能并不希望其他用户对我们的属性进行写操作,这个时候,可以直接不写setX方法。这就是只读属性了。3 编码规范性
我们在设计类,或者作com组件时经常告诉其实coder,你只需要调用我的XX接口方法就可以了,内部我是怎么实现的,你不用管,如果面向特定的环境特定的时间段,直接将属性声明为public,让外部对象访问也未偿不可,没有面象对象思想时,我在写C语言程序时结构中的变量是可以随意被访问的,因为没有pulbic,private之分,现在我们是面向对象编程,我们需要在接口处作文章,而保护对象的私有属性,即安全性,只有通过对外公开的接口方法去访问在面向对象理论上认为是安全的。4 稳定性5 可扩展性6 便于维护
是指private变量的getter/setter的作用,不是private getter/setter(一般没有这种做法)的作用吧,问题有点歧义。setter方法1.可以限制和检验setter方法传入的参数2.隐藏对象内部数据结构3.保持对象在每个状态的完整性getter方法1.按照客户的期望返回格式化数据2.控制服务的顺序(例如只有当连接建立时getter方法才返回相应实例)参考:http://stackoverflow.com/questions/7207994/java-setter-and-getter框架中写的大部分getter和setter方法都是直接返回和赋值,不过实际上可以在方法中加入访问权限控制、逻辑判断等,实现OO编程中封装和信息隐藏。
private是该类的私有(也可以认为是特有的)属性,是不会被子类继承的实体变量。而getter和setter是对数据的一种保护,属于实体类的封装的方法,让别人无法通过.**来获得你的实体变量值,实现保护功能
getter 和 setter 是对数据的一种保护操作,可以检验参数等,通常情况下是提供给外面用的,会定义为 public。但是也有定义为 private 的情况,这是给内部用的,如果 getter 和 setter 里面的操作比较复杂,而在内部有多次使用,那么这样的封装可以使代码更加简洁明确。
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(5)
getter和setter方法一般是用于对类私有成员进行取值和赋值的操作。
一般把getter和setter方法设置为public,便于外界访问类内部私有成员。
如果把getter和setter方法设置为private,那么就只能在类内部进行访问了。
这样的话,唯一的作用就是把对私有成员进行取值和赋值操作的时候需要的其他的一些相关操作封装在getter和setter函数里,进行统一操作。这样就不用每次在类内部的其他地方进行取值和赋值的时候都要进行相关操作了。
相关示例代码如下:
public class PrivateGetSet extends BaseClass {
private int x;
private int getX() {
return x++; //每次取值,都会自加1
}
private void setX(int x) {
//每次赋值,都会检查并进行相关操作
if (x < 0) {
this.x = 0;
} else {
this.x = x;
}
}
/**
*
*/
public PrivateGetSet() {
// TODO Auto-generated constructor stub
}
/* (non-Javadoc)
* @see BaseClass#test()
*/
@Override
public void test() {
// TODO Auto-generated method stub
getX();
setX(-1);
for (int i = 0; i < 3; i++) {
System.out.println(getX());
}
}
}
java程序一般将A类的属性修饰符设置为private,这是为了更好的封装数据。要想在B类里引用该属性,就可以在A类里定义修饰符为public的set,get方法以设置和获取private型的属性值。
好处
1 将数据与行为分离,也就是java的面向对象的概念。
对象就是属性+行为,封装就是把对象的私有属性封装起来,只有通过自己公开的行为去改变(获得)对象内部的私有属性信息,而那些public的方法正是面向其他对象的接口,只有通过接口去改变(获得)对象的私有属性
2 安全性
设想,你有一个Person类代表一个人,Person有一个char类型的sex字段表示性别,理论上,sex只接受两个值, 'M '和 'F ',但如果你把sex字段设为public,你很难限制你的用户只给它赋 'M '或 'F '值。将sex设为private,再用setSex()来设置性别,你就完全可以控制这种行为了。而且你还可以控制只能get不能set,或相反,但如果是public就不行了。别外有一点属性我们可能并不希望其他用户对我们的属性进行写操作,这个时候,可以直接不写setX方法。这就是只读属性了。
3 编码规范性
我们在设计类,或者作com组件时经常告诉其实coder,你只需要调用我的XX接口方法就可以了,内部我是怎么实现的,你不用管,如果面向特定的环境特定的时间段,直接将属性声明为public,让外部对象访问也未偿不可,没有面象对象思想时,我在写C语言程序时结构中的变量是可以随意被访问的,因为没有pulbic,private之分,现在我们是面向对象编程,我们需要在接口处作文章,而保护对象的私有属性,即安全性,只有通过对外公开的接口方法去访问在面向对象理论上认为是安全的。4 稳定性
5 可扩展性
6 便于维护
是指private变量的getter/setter的作用,不是private getter/setter(一般没有这种做法)的作用吧,问题有点歧义。
setter方法
1.可以限制和检验setter方法传入的参数
2.隐藏对象内部数据结构
3.保持对象在每个状态的完整性
getter方法
1.按照客户的期望返回格式化数据
2.控制服务的顺序(例如只有当连接建立时getter方法才返回相应实例)
参考:http://stackoverflow.com/questions/7207994/java-setter-and-getter
框架中写的大部分getter和setter方法都是直接返回和赋值,不过实际上可以在方法中加入访问权限控制、逻辑判断等,实现OO编程中封装和信息隐藏。
private是该类的私有(也可以认为是特有的)属性,是不会被子类继承的实体变量。而getter和setter是对数据的一种保护,属于实体类的封装的方法,让别人无法通过.**来获得你的实体变量值,实现保护功能
getter 和 setter 是对数据的一种保护操作,可以检验参数等,通常情况下是提供给外面用的,会定义为 public。
但是也有定义为 private 的情况,这是给内部用的,如果 getter 和 setter 里面的操作比较复杂,而在内部有多次使用,那么这样的封装可以使代码更加简洁明确。