• java的封装


        学习编程和有一段时间了,现在整理一些东西,留着自己以后翻阅,有可能也能帮助其他人。

    封装:

      封装是指将对象的状态信息隐藏在对象内部,不允许外部的程序直接访问对象内部的信息,而是通过该类所提供的方法来实现对内部信息的操作和访问。

        封装是面向对象编程语言对客观世界的模拟,客观世界里的属性都是被隐藏在对象内部,外界无法直接操作和修改。

        封装的好处很多:

    1、 隐藏类的实现细节

    2、 让使用者只能通过预定的方法来访问数据,从而可以在该方法里加入控制逻辑,限制对属性的不合理访问。

    3、 可进行数据检查,从而有利于保证对象信息的完整性。

    4、 便于修改,提高代码的可维护性。

    访问控制符:

       Java中提供了三种访问控制符:private ,protected和public,另外还有一个不加任何访问控制符的访问控制级别,因此java提供了四种访问控制级别。即:private,default,protected和public。含义分别表示私有的,默认的,受保护的和公有的访问修饰符。这四个访问级别中default并没有对应的访问控制符,当不使用任何修饰符来修饰类和成员(属性/方法)时,系统默认使用该访问控制符。这些访问修饰符既可以修饰类中的属性,又可以修饰类中的方法,而public和default还可以修饰类。在同一个java文件里,公有类有且仅有一个,并且该文件命名为类名.java

         Java访问修饰符就是确定类中属性或方法的访问权限,换句话说,就是这些属性和方法所起的作用范围。

         private,私有的访问权限,也是最严格的访问权限,仅只能在设置了该权限的类中访问,利用这个访问权限,表现出封装思想。

         default,默认的访问权限,也是可以省略的访问权限,它不仅能在设置了该权限的类中访问,也可以在同一包中的类或子类中访问。

         protected,受保护的访问权限(子类访问权限),如果一个成员(属性或是方法)使用了这个访问控制符修饰,那么这个成员既可以被一个包中的其他类访问,也可以被不同包中的子类访问,通常,如果用protected来修饰一个方法,通常是希望其子类来重写这个方法。

         public,公有的访问权限,也是最宽松的访问权限,不仅可以是同一个类或子类,还是同一个包中的类或子类,又还是不同包中的类或子类,都可以访问。

         要想更深入地理解这些访问权限,一方面需要明白各自的作用域,另一方面更是要弄清楚各自所体现出来的编程思想,比方说,private表现的封装思想,public表现的面向接口编程的思想等。

    例如:

    public class Test
    {
        public static void main(String[] args)
        {
            Human aPerson = new Human(160);
            System.out.println(aPerson.getHeight());
            aPerson.growHeight(170);
            System.out.println(aPerson.getHeight());
            aPerson.repeatBreath(100);
        }
    
    }
    
    class Human
    {
        /**
         * constructor
         */
        public Human(int h)
        {
            this.height = h;
            System.out.println("I'm born");
        }
    
        /**
         * accessor
         */
        public int getHeight()
        {
           return this.height;
        }
    
        /**
         * mutator
         */
        public void growHeight(int h)
        {
            this.height = this.height + h;
        }
    
         /**
          * encapsulated, for internal use
          */
        private void breath()
        {
            System.out.println("hu...hu...");
        }
    
    
       /**
        * call breath()
        */
        public void repeatBreath(int rep)
        {
            int i;
            for(i = 0; i < rep; i++) {
                this.breath();
            }
        }
    
        private int height; // encapsulated, for internal use
    }

         在面向对象设计和编程的过程中,归根结底就是类的设计。而要设计出不仅满足当前需求同时也能符合未来需求的类,就很有必要对类中属性和行为设置合适的访问 权限。那些应该为私有的,那些又应该为公有的,还有那些又应该为受保护的等,都应该给予合理的规划和布局,一来保证程序的功能要求,二来要体现程序的扩展 性能,三来要呈现程序友好性质。总之,程序应该更好地服务用户。而访问权限在这样宏伟目标里扮演着重要角色。

  • 相关阅读:
    Ubuntu20 修改网卡名称
    单臂路由实现不同vlan间通信
    配置trunk和access
    基于端口划分vlan
    Zabbix5.0服务端部署
    搭建LAMP环境部署opensns微博网站
    搭建LAMP环境部署Ecshop电商网站
    Zabbix 监控过程详解
    Zabbix agent端 配置
    Zabbix 监控系统部署
  • 原文地址:https://www.cnblogs.com/duhuo/p/4162959.html
Copyright © 2020-2023  润新知