面向对象编程(二)封装

1.介绍

封装就是把抽象出的数据(属性)和对数据的操作(方法)封装在一起,数据被保护在内部,程序的其他部分只有通过被授权的操作(方法),才能对数据进行操作

2.好处

隐藏实现的细节:方法(连接数据库)<----调用(传入参数)

可以对数据进行验证,保证安全合理

3.实现步骤

  • 将属性私有化private(不能直接修改属性)

  • 提供一个公共的(public)set方法,用于对属性判断并赋值

public void setXxx(类型 参数名){

//加入数据验证的业务逻辑

属性 = 参数名;

}

  • 提供一个公共的get方法,用于获取属性的值

    public 数据类型 getsetXxx(){

    return xx;

    }

eg:不能随便查看人的年龄,工资等隐私,并对设置的年龄进行合理的验证。年龄合理就设置,否则给默认年龄, 必须在 1-120, 年龄, 工资不能直接查看 , name 的长度在 2-6 字符 之间

public class fengzhuang {
    public static void main(String[] args) {
        Person person = new Person();
        person.setName("zyf");
        person.setAge(30);
        person.setSalary(30000);
        System.out.println(person.info());
        System.out.println(person.getSalary());
    }
​
}
​
class Person{
    public String name;
    private int age;
    private double salary;
​
    public String getName() {
        return name;
    }
    public void setName(String name) {
//加入对数据的校验,相当于增加了业务逻辑
        if(name.length() >= 2 && name.length() <=6 ) {
            this.name = name;
        }else {
            System.out.println("名字的长度不对,需要(2-6)个字符,默认名字");
            this.name = "无名人";
        }
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age) {
        //判断
        if(age >= 1 && age <= 120) {//如果是合理范围
            this.age = age;
        } else {
            System.out.println("你设置年龄不对,需要在 (1-120), 给默认年龄 18 ");
            this.age = 18;//给一个默认年龄
        }
    }
    public double getSalary() {
//可以这里增加对当前对象的权限判断
        return salary;
    }
    public void setSalary(double salary) {
        this.salary = salary;
    }
    //写一个方法,返回属性信息
    public String info() {
        return "信息为 name=" + name + " age=" + age + " 薪水=" + salary;
    }
    //有三个属性的构造器
    public Person(String name, int age, double salary)      {
        // this.name = name;
        // this.age = age;
       // this.salary = salary;
       //我们可以将 set 方法写在构造器中,这样仍然可以验证
       setName(name);
       setAge(age);
       setSalary(salary);
   }
}

  • 23
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值