封装
- 什么是封装?
封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据,封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度。 适当的封装可以让程式码更容易理解和维护,也加强了程式码的安全性。
封装是把过程和数据包围起来,对数据的访问只能通过已定义的接口。面向对象计算始于这个基本概念,即现实世界可以被描绘成一系列完全自治、封装的对象,这些对象通过一个受保护的接口访问其他对象。封装是一种信息隐藏技术,在java中通过关键字private,protected和public实现封装。
- 简单来说封装就是将需要的数据隐藏起来,通过操作接口来访问
写程序追求“高内聚,低耦合”。高内聚:就是类的内部数据操作细节由自己完成,不允许外部干涉,低耦合:暴露少量的方法给外部使用
- 封装代码
因为Animals类中的属性是私有的我们不能直接的使用对象名.属性来进行操作
所以我们提供了get/set, public的方法来进行操作被封装的属性
//测试类
public class Test(){
public static void mian(String[] args){
Animals animals = new Animals();
//调用set方法传参,就可以给name属性赋值
animals.setName("旺财");
//调用get方法,得到name属性并输出
System.out.println(animals.getName())
}
}
//animals类
public class Animals(){
//属性私有,使用private修饰符
private String name;
private int age;
private char sex;
//get/set方法
//提供一些可以操作这些属性的方法
//get方法,顾名思义得到属性,
//所以想要得到name这个属性,我们的返回类型就必须是String
public String getName(){
return this.name;
}
//set方法,顾名思义就是设置属性
//这里设置name属性的值就必须要传参,所以需要定义一个形参
public void setName(String name){
this.name=name;
}
public int getAge(){
return this.age;
}
//我们在这里设置了age,但是动物的年龄是有限制的
//我们不能随意的传值,我们需要堆set方法添加一些细节,如下
//设置了动物的年龄只能是0到50岁之间
public void setAge(int age){
if(age>50||age<0)
{System.out.println("输入年龄有误")}
else
{this.age=age;}
}
}