访问封装内容,setter和getter方法使用
2016-05-20 16:46
423 查看
在整个java中,对于封装的访问给出了一个明确的原则,此原则必须遵守。
否则,因为属性或者方法被封装了,访问不了,会出错。
被封装的属性如果需要被访问,则需要编写setter和getter方法完成。
例如,现在有一个属性:private string name;
Setter():public void setName(String n){};
Getter():public String getName(){};
例子:
class Person{
private String name ;// 声明姓名属性
private int age ;// 声明年龄属性
public void setName(String n){// 设置姓名
name = n ;
}
public void setAge(int a){// 设置年龄
if(a>=0&&a<=150){// 加入验证
age = a ;
}
}
public String getName(){// 取得姓名
return name ;
}
public int getAge(){// 取得年龄
return age ;
}
public void tell(){
System.out.println("姓名:" + this.getName() + ",年龄:" + this.getAge()) ;
}
};
public class EncDemo05{
public static void main(String arsgh[]){
Person per = new Person() ;// 声明并实例化对象
per.setName("张三") ;// 调用setter设置姓名
per.setAge(-30) ;// 调用setter设置年龄
per.tell() ;
// 输出信息
}
以上代码只是可以访问封装的属性,但是并没有加入到检测的措施。
如果年龄设置有问题,则不应该为属性赋值。
应该在哪个方法中加入检验呢?
。setter()中加入检验;(判断语句)
.getter()只是简单的把数据取出。
否则,因为属性或者方法被封装了,访问不了,会出错。
被封装的属性如果需要被访问,则需要编写setter和getter方法完成。
例如,现在有一个属性:private string name;
Setter():public void setName(String n){};
Getter():public String getName(){};
例子:
class Person{
private String name ;// 声明姓名属性
private int age ;// 声明年龄属性
public void setName(String n){// 设置姓名
name = n ;
}
public void setAge(int a){// 设置年龄
if(a>=0&&a<=150){// 加入验证
age = a ;
}
}
public String getName(){// 取得姓名
return name ;
}
public int getAge(){// 取得年龄
return age ;
}
public void tell(){
System.out.println("姓名:" + this.getName() + ",年龄:" + this.getAge()) ;
}
};
public class EncDemo05{
public static void main(String arsgh[]){
Person per = new Person() ;// 声明并实例化对象
per.setName("张三") ;// 调用setter设置姓名
per.setAge(-30) ;// 调用setter设置年龄
per.tell() ;
// 输出信息
}
以上代码只是可以访问封装的属性,但是并没有加入到检测的措施。
如果年龄设置有问题,则不应该为属性赋值。
应该在哪个方法中加入检验呢?
。setter()中加入检验;(判断语句)
.getter()只是简单的把数据取出。
相关文章推荐
- jQuery基础的工厂函数以及定时器的经典实例分析
- 除非另外还指定了 TOP 或 FOR XML,否则,ORDER BY 子句在视图、内联函数、派生表、子查询和公用表表达式中无效。
- 保持compareTo和equals同步
- Angular2 and Electron - The definitive guide
- Runtime的几个小例子(含Demo)
- 软件评价
- 软件工程个人作业05
- CMake 入门实战
- ios学习--UIStepper
- JavaScript中的Object对象学习教程
- chart.js 入门&&highcharts 入门(推荐使用highcharts)
- 第三方 库 dll和lib 的引入
- RocketMQ使用步骤--- 开发测试环境搭建及Java用例
- highchart的封装格式
- 从网络上下载省份城市名称并存入文件然后进行读取省份城市
- 找水王
- MyBatis6:MyBatis集成Spring事物管理(下篇)
- Android Xutils 框架
- xpstopdf
- OkHttp3设置Content-Type