• 封装


    封装

    程序永远追求高内聚,低耦合。高内聚是类中的数据操作细节由自己完成,不允许外界干涉。低耦合指将更少的方法暴露给外界使用。

    封装(数据隐藏):顾名思义,代表将部分不向外展示的程序包封装起来,只留一个操作接口来和外界对接。

    封装分为两部分,一个是封闭程序,一个是设置对接口。private封闭程序,get/set设置出口。封装大多是对属性进行封装,对方法使用封装的时候很少。

    封装的作用

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

    2. 影藏代码的实现细节

    3. 统一接口

    4. 提高系统的可维护性

    属性私有

    封装代表将部分程序隐藏起来,这就产生了私有的性质。

    private 私有的,与public的公开向对应。在对类中的属性进行封装时,在变量类型前面加 private关键字,这样外界实例化(类 对象 = new 类)这个类后也无法使用该属性。

    在这个类中对name 、age中加入private变为私有的。

    package oop.demo03;

    public class Demo01 {
       private String name;
       private int age;

    }

    这样在主方法中实例化后也不能访问这两个变量。

    package oop.demo03;

    public class Application {
       public static void main(String[] args) {
           Demo01 S1 = new Demo01();
           S1.name = "小明";//此处name爆红,无法访问
      }
    }

     

    get / set

    外界无法访问私有的属性,所以衍生出get/set。get/set的作用是外界可以通过这两个关键词访问内部私有的属性,但无法篡改内部数据。这就实现了封装的接口。

    get:获取这个数据

    set:给这个数据赋值

    get的使用:在被封装的类中使用 public 变量类型 get变量名(){return this.变量名;} 在主方法中使用new get变量名就可以使用了。

    package oop.demo03;

    public class Demo01 {
       private String name;
       private int age;

       public String getName(){//get使用
           return this.name;
      }
    }

     

    set的使用:在被封装的类中使用public void 变量类型 set变量名(赋值的变量类型 变量名1){this.变量名 = 变量名1}

    public void setAge(int a){//set使用
       this.age = a;
     


     

    set中,可以加入一些条件来使外部访问时更符合规则。

        public void setAge(int a){
           if (age>120 || age<0){
               this.age = 0;
          }else{
               this.age = a;
          }

    主方法中调用get/set

    在main方法中,先照常实例化变量(类名 对象名 = new 类名),然后使用 对象名.set被私有的参数名(赋值的数据);

    package oop.demo03;

    public class Application {
       public static void main(String[] args) {
           Demo01 demo01 = new Demo01();
           demo01.setAge(50);
           System.out.println(demo01.getAge());

      }
    }
  • 相关阅读:
    docker 容器启动时设置环境变量source
    解决docker容器中Centos7系统的中文乱码
    Python 常用的标准库以及第三方库有哪些?
    excel 两列值匹配取另外一列值 INDEX MATCH 函数
    Dockerfile编写,以及设置一个自启动脚本
    主机、Docker时间与时区设置总结
    CentOS安装scp命令
    Python3中遇到UnicodeEncodeError: 'ascii' codec can't encode characters in ordinal not in range(128)
    yum 安装 tomcat
    Docker退出容器不关闭容器的方法
  • 原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/13955008.html
Copyright © 2020-2023  润新知