zoukankan      html  css  js  c++  java
  • 19. java面向对象

    一、封装和隐藏

    1. 封装

    ​ 我们要用洗衣机,只需按一下开关和洗涤模式就可以了。有必要了解洗衣机内部的结构么。

    ​(1)我们程序设计追求:高内聚,低耦合

    ​ ① 高内聚:类的内部数据操作细节自己完成,不允许外部干涉;

    ​ ② 低耦合:仅对外部暴露少量的方法用于使用。

    2. 隐藏

    ​ 隐藏对象内部的复杂性,只对外部公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。

    public class Animal {
        String name;
        //让age为私有,限制用户传入负值
        private int age;
    
        public void setAge(int age) {
            if (age >= 0 && age % 2 == 0) {
                age = age;
            } else {
                age = 0;
            }
        }
    }
    

    3. 封装性体现

    ​ 我们将类的属性私有化(private),同时提供公共的(public)方法来获取(getXxx)和设置(setXxx)此属性的值。拓展:①不对外暴露的私有方法 ②单例模式

    二、权限修饰符

    修饰符 类内部 同一个包 不同包子类 同一工程
    private Yes
    default Yes Yes
    protected Yes Yes Yes
    public Yes Yes Yes Yes

    对于class的权限只可以用public和default。四种权限可以用来修饰类及类的内部结构:属性、方法、构造器、内部类;

    • public类可以在任意地方被访问
    • default类只可以被同一个包内部的类访问
    public class Animal {
        String name;
        private int age;
        //设置值
        public void setAge(int formAge) {
            if (formAge < 0 || formAge >130) {
                throw new RuntimeException("传入值非法!");
            } else {
                age = formAge;
            }
        }
        //取值
        public int getAge(){
            return age;
        }
    }
    
    
    class animalTest{
        public static void main(String[] args) {
            Animal anl = new Animal();
            // anl.setAge(131);
            anl.setAge(10);
            System.out.println(anl.getAge());
        }
    }
    
  • 相关阅读:
    函数和指针
    SQL Server 2005 存储过程
    位数组
    C的名字空间
    C奇特的声明
    位字段
    Git忽略规则
    常用C库简介
    《SQL Server 2005 编程入门经典》第一到十二章
    Linus:利用二级指针删除单向链表
  • 原文地址:https://www.cnblogs.com/hq82/p/12128959.html
Copyright © 2011-2022 走看看