zoukankan      html  css  js  c++  java
  • 面向对象第一个特征-封装(Encapsulation)

             面向对象第一个特征-封装(Encapsulation)

                                 作者:尹正杰

    版权声明:原创作品,谢绝转载!否则将追究法律责任。

     

     

    一.封装概述(Encapsulation)

    1>.什么是封装

      是指隐藏对象的熟悉和实现细节,仅对外提供访问方式。说白了就是将数据和操作组织到类中,即属性和方法。

    2>.封装的好处

      将变化隔离
    
      便于使用
    
      提高重用性
    
      提高安全性

    3>.封装原则

      将不需要对外提供的内容都隐藏起来。
    
      把数据都隐藏,提供公共方法对其访问。

    二.private(私有)关键字

      private关键字:
        是一个权限修饰符,用于修饰成员变量(包括属性和成员函数),被私有化的成员只在本类中有效。
    
      常用场景:
        将成员变量私有化,对外提供对应的getter,setter方法对其进行访问。提高堆数据访问的安全性。

      私有是封装的一种体现形式。

    三.代码封装案例

    1>.定义Person类对age属性进行封装

    /**
     * 
     * @author 尹正杰
     *
     */
    public class Person {
        String name;
        
        //将age变量私有化,此时只有当前类可以范围该变量
        private short age;
        
        public void speak() {
            System.out.println("My name is " + name + ", 我今年" + age +  "岁啦!");
        }
        
        //定义setter方法
        public void setAge(short num) {
            if(num > 0 && num <= 150) {
                age = num;
            }else {
                System.out.println("Error: 您给定的年龄不合法,age字段赋值失败,正确范围为(0,150]");
            }
        }
        
        //定义getter方法
        public int getAge() {
            return age;
        }
    }

    2>.编写PersonDemo.java代码

    /**
     * 
     * @author 尹正杰
     *
     */
    public class PersonDemo {
    
        public static void main(String[] args) {
            Person p1 = new Person();
            short age = 18;
            
            p1.name = "尹正杰";
            
            p1.setAge(age);
            
            p1.speak();
        }
    }

     

  • 相关阅读:
    Service、chkconfig命令
    mongoDB 入门
    HTTP 缓存
    MIME类型记录
    CSS3 动画 思维导图
    部署Seafile服务
    AngularJS 学习笔记
    Bootstrap3 学习笔记
    CSS 弹性盒
    传送门(portal)
  • 原文地址:https://www.cnblogs.com/yinzhengjie2020/p/12231254.html
Copyright © 2011-2022 走看看