**
Getter/Setter方法的使用–java
**
Java面向对象的三大特征为:封装、继承、多态
今天,我们就来聊一聊封装那些事儿
首先,属性可用来描述同一类事物的特征,方法可描述一类事物可做的操作。封装就是把属于同一类事物的共性(包括属性与方法)归到一个类中,以方便使用。
1.概念:封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。
2.好处:(1)实现了专业的分工。将能实现某一特定功能的代码封装成一个独立的实体后,各程序员可以在需要的时候调用,从而实现了专业的分工。(2)隐藏信息,实现细节。通过控制访问权限可以将可以将不想让客户端程序员看到的信息隐藏起来,如某客户的银行的密码需要保密,只能对该客户开发权限。
而我们在设置变量的属性时,我们通常会对数据进行封装,这样就可以增加了数据访问限制,增加了程序可维护性。而实现方法就是:用private去修饰一个变量,然后再用setter方法去设置该变量的值,然后在用getter方法去调用该变量的值。代码如下:
public class Demo04Student {
public static void main(String[] args) {
class Student {
private String name;//姓名
private int age;//年龄
private boolean male;//是不是男的
public void setMale(boolean b){
male =b;
}
public boolean isMale(){
return male;
}
public void setName(String str){
name =str;
}
public String getName() {
return name;
}
public void setAge(int num){
age=num;
}
public int getAge(){
return age;
}
}
Student stu=new Student();
stu.setName("鹿晗");
stu.setAge(18);
stu.setMale(true);
System.out.println("姓名: "+stu.getName());
System.out.println("年龄: "+stu.getAge());
System.out.println("这是男的: "+stu.isMale());
}
}
细心的人可能已经发现,在boolean类型判断是否为男的的时候,用的不是getMale而是isMale。所以,对于Getter/Setter方法可以总结如下:
1.对于Getter来说,不能有参数,返回值类型和成员变量对应
2.对于Setter来说,不能有返回值,参数类型和成员变量对应
3.对于基本类型当中的boolean值,Getter方法一定要写成isXxx的形式,而非getXxx。setXxx规则不变