封装详解

封装:通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息隐藏

  追求:高内聚,低耦全。高内聚就是类的内部数据操作细节自己完成,不允许外部的数据干涉,低耦合:仅暴露少量的方法给外部使用

 方法:set get

  作用:过虑不合法的值,如一个人的年龄正常情况下,是不会大于200岁的,那超过这个值就想当于是不合法值,那我们封装数据后,可以在set方法中增加一些判断去过虑掉这些不合法的值

import java.util.Scanner;

public class Main {
    public static void main(String []args){
    
    Subt su=new Subt();
    //设置输出name
    su.setNmae("小白");
    System.out.println(su.getNmae());
   
   //设置输出age
   su.setAge(-11);
   System.out.println(su.getAge());
    }
    
}
class Subt{
//private:私有的
     private String name ;//名字
     private int age;//年龄
     private int xykg;//编号
    
    //get:获取数据
    public String getNmae(){
       return this.name;
    }
    
    //set:给这个属性设置值
    public void setNmae(String name){
        this.name=name;

    }
    //年龄
    //get:获取数据
    public int getAge(){
       return this.age;
    }
    
    //set:给这个属性设置值
    public void setAge(int age){
    //在设置方法回增加条件用来限制输入
        //过虑不合法值:年龄大于3,则为不合法值
        if(age>120||age<=0){
        this.age=1;//当输入的值不合法时,输出1
        }else{
        this.age=age;
    }
        }
    }
    

意义:

  提高安全性,保护数据

  隐藏代码实际细节,对于调用者并不知道内部定了什么

  统一接口

  加强可维护性

  一般情况下,会在set方法中添加一些安全性的验证与判断

posted @ 2022-03-31 10:46  hollg  阅读(110)  评论(0)    收藏  举报