Java第二阶段---11封装---第一节 封装(Encapsulation)

1. 什么是封装

封装就是将类的部分(也可能是所有)属性和方法隐藏起来,不允外部程序直接访问,只能通过该类提供的公开的方法(接口)来访问类中定义的属性和方法。封装是面对对象的三大特征之一。

2.如何使用封装

示例

public class Person {

    public String name;//姓名

    public int age;//年龄

    public String secret;//秘密

    //定义了一个构造方法用来创造对象
    public Person(String name,int age, String secret){
        this.name = name;
        this.age = age;
        this.secret = secret;
    }
}

修改属性的可见性:将类中定义的所有属性全部修改为private修饰

public class Person {

    private String name;//姓名

    private int age;//年龄

    private String secret;//秘密

    //定义了一个构造方法用来创造对象
    public Person(String name,int age, String secret){
        this.name = name;
        this.age = age;
        this.secret = secret;
    }
}

创建公开的getter/setter方法:用于读取/修改属性值

public class Person {

    private String name;//姓名

    private int age;//年龄

    private String secret;//秘密

    //定义了一个构造方法用来创造对象
    public Person(String name,int age, String secret){
        this.name = name;
        this.age = age;
        this.secret = secret;
    }

    //ALT + INSERT
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        if(age<0){
            System.out.println("你输入的年龄不合法,年龄必须为 > 0 的整数");
        }else{
            this.age = age;
        }
    }

    public String getSecret() {
        return secret;
    }

    public void setSecret(String secret) {
        this.secret = secret;
    }
}

在getter/setter方法中加入控制语句:用于对属性值的合法性校验

  public void setAge(int age) {
        if(age<0){
            System.out.println("你输入的年龄不合法,年龄必须为 > 0 的整数");
        }else{
            this.age = age;
        }
    }

3. 为什么要使用封装

a.封装提高了代码的重用性。因为封装会提供对外访问的公开的方法,而方法可以重用,因此封装提高了代码的重用性。

b.封装提高了代码的可维护性。

比如:年龄在设计时只考虑到了负数的情况,没有考虑实际生活中的情况,人的年龄一般都不会超过200岁,因此还需要加上一层验证

public void setAge(int age){
	if(age < 0 || age>200){
		System.out.println("你输入的年龄不合法,年龄必须为0~200之间的整数");
	}else{
		this.age = age;
	}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值