Java基础:封装

Java基础:封装


封装

  • 封装:指一种将抽象性函式接口的实现细节部分包装、隐藏起来的方法

  • 封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问

  • 该露的露,该藏的藏

    • 我们程序设计要追求“高内聚,低耦合
    • 高内聚就是类的内部数据操作细节自己完成,不允许外部干涉
    • 低耦合:仅暴露少量的方法给外部使用
  • 封装(数据的隐藏)

    • 通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏
  • 封装最主要的功能在于我们能修改自己的实现代码,而不用修改那些调用我们代码的程序片段

  • 适当的封装可以让程式码更容易理解与维护,也加强了程式码的安全性

  • 特点:

    • 属性私有,通过 gettersetter 访问修改

    • 提高程序的安全性,保护数据

    • 隐藏代码的实现细节

    • 统一接口

    • 系统可维护增加

  • 示例

    public class Application {
    
        public static void main(String[] args) {
    
            Student s1 = new Student();
            s1.setName("李华");
            s1.setGender('男');
            s1.setAge(999);//不合法的
            s1.setId(10010);
            System.out.println(s1.getName() + "\t" + s1.getGender()
                    + "\t" + s1.getAge() + "\t" + s1.getId());
    
        }
    
    }
    
    //类     private:私有
    public class Student {
    
        //属性私有 private filed,只有本类才能访问,其他类都访问不了
    
        private String name;//名字
        private int id;//学号
        private char gender;//性别
        private int age;//年龄
    
        //提供一些可以操作这个属性的方法
        //提供一些public的get、set方法
    
        //get:获得这个数据
        public String getName() {
            return this.name;
        }
    
        //set:给这个数据设置值
        public void setName(String name) {
            this.name = name;
        }
    
        public int getId() {
            return id;
        }
    
        public void setId(int id) {
            this.id = id;
        }
    
        public char getGender() {
            return gender;
        }
    
        public void setGender(char gender) {
            this.gender = gender;
        }
    
        public int getAge() {
            return age;
        }
    
        public void setAge(int age) {
            if (age>120 || age<0) {//不合法
                this.age = 3;
            }else {
                this.age = age;
            }
        }
    }
    

    输出

    李华	男	3	10010
    

    在示例中 public 方法是外部类访问该类成员变量的入口
    通常情况下,这些方法被称为 gettersetter 方法因此,任何要访问类中私有成员变量的类都要通过这些 gettersetter 方法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值