封装:Java的四大特性之一(另外三个为继承,多态,抽象),封装(英语:Encapsulation)是指一种 将抽象性函式接口的实现细节部分包装、隐藏起来的方法。封装可以被认为是一个保护屏障, 防止该类的代码和数据被外部类定义的代码随机访问。通俗一点来说就是把类中的某些信 息进行隐藏,从而使外部程序不能直接对这些信息进行直接的访问,只能通过类中定义的方法 对这些隐藏的信息进行操作和访问。现在主要是对属性进行封装,对方法进行封装的比较少 见。
好处:1.提高程序的安全性,保护数据
2.隐藏代码的实现细节
3.统一接口
4.增加代码的可维护性
对封装的学习可以从以下两个方向入手:属性私有,get/set方法
一:属性私有(private)
将属性和方法用private封装后表示,被封装的属性与方法只能在本类中使用,类外部不可见。
定义一个student的类,包含三个属性
class student {
//定义三个私有属性变量
private String name;//姓名
private char sex; //性别
private int age; //年龄
}
再定义一个测试类
class test {
public static void main(String[] args){
student a=new student();
a.name="小明";
System.out.println(a.name);
}
}
//该程序运行后系统会报错
/*此时student中的属性不能再test类中修改和调用,
因为student中的属性全部用private修饰,为私有属性,
这些属性只能在student类中被修改和调用,
但是把student类中属性的修饰符改为public后,可以正常调用。*/
二:get和set方法
setter 和getter方法的书写规则:
●setter 方法: set+首写字母大写的属性名, 没有返回值(void),有参数。
●getter 方法: get+首写字母大写的属性名,有返回值,没有参数。
class student {
//定义三个私有属性变量
private String name;//姓名
private char sex; //性别
private int age; //年龄
//get和set方法
//get获取name
//调用get方法获取一个数据后,需要返回这个数据的结果,所以有return和方法类型
public String getName(){
return this.name;
}
//set方法修改name的值
public void setName(String name){
this.name=name;
}
}
//测试类
class test {
public static void main(String[] args){
student CXK=new student();//实例化一个cxk对象
//调用set方法修改name
CXK.setName("蔡");//可以直接在set方法处对属性值进行修改
System.out.println(CXK.getName());//调用get方法获取修改后的name
//此时可以直接在main方法里面对变量值进行修改
}
}
注意:在IDEA编译器中可以“ alt+insert”快捷键直接对私有属性变量提供get和set方法
按快捷键 ait+insert 进入如下选项
进入此处的Getter and setter后选择要get和set的属性,回车确认即可自动生成该属性的get和set方法。