zoukankan      html  css  js  c++  java
  • 封装

    封装

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

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

    封装分为两部分,一个是封闭程序,一个是设置对接口。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());

      }
    }
  • 相关阅读:
    JavaScript 为字符串添加样式 【每日一段代码80】
    JavaScript replace()方法 【每日一段代码83】
    JavaScript for in 遍历数组 【每日一段代码89】
    JavaScript 创建用于对象的模板【每日一段代码78】
    html5 css3 新元素简单页面布局
    JavaScript Array() 数组 【每日一段代码88】
    JavaScript toUTCString() 方法 【每日一段代码86】
    位运算
    POJ 3259 Wormholes
    POJ 3169 Layout
  • 原文地址:https://www.cnblogs.com/jinweichaoyouqu/p/13955008.html
Copyright © 2011-2022 走看看