面向对象特性之封装
概念
Java语言中的封装性:
1.狭义上的封装性:
在设计一个实体类的时候,将该实体类的属性的访问权限设定为私有的(private),并为其提供getter/setter方法器,让该类外部可以通过访问器方法对该私有的属性提供访问
2.广义上的封装性:
类和方法定义本身,就是封装性的体现
private的使用
get/set方法的说明(讲this之前,参数与成员变量名称要不同)
/**
* 猫实体类
*
* 演示java中的封装性
*/
public class Cat {
String name;//名称
private int age; //年龄-->使用private修饰的属性,其可见性范围仅限于本类
/**
* setter(设置值的访问器方法),作用:用来在该类外部修改本类私有的属性值
* @param a
*/
public void setAge(int a){
//在此处,可以植入拦截逻辑(拦截非法参数值)
if (a>=0){
age=a;
}else {
System.out.println("给定的猫龄错误");
return;
}
}
/**
* getter(获取值的访问器方法),作用:用来在该类外部获取本类私有的属性
*/
public int getAge(){
return age;
}
/**
* 秀一下
*/
public void show(){
System.out.println("名字:"+name);
System.out.println("年龄:"+age);
}
}
/**
* 主人类(测试类)
* java语言中的封装性测试类
*/
public class TestCat {
String name;//名字
/**
* 介绍猫
* @param cat
*/
public void introduceCat(Cat cat){
System.out.println("主人"+this.name+"兴致勃勃的介绍了自家的猫咪");
cat.show();
}
public static void main(String[] args) {
//场景:主人在家里举行聚会,兴致勃勃地给客人介绍起自家养的宠物猫。
//思路:
//1.猫主人实例的构建
TestCat master = new TestCat();
master.name="陈南润";
//2.猫实例的构建
Cat cat = new Cat();
cat.name = "花花";
cat.setAge(-3);
//3.介绍猫
master.introduceCat(cat);
}
}