首页 > 其他分享 >219 . 面向对象 (上) 封装性与隐藏

219 . 面向对象 (上) 封装性与隐藏

时间:2022-10-24 11:02:47浏览次数:55  
标签:封装 private 219 面向对象 yes 权限 public 属性

219 . 面向对象 (上) 封装性与隐藏

·为什么需要封装?封装的作用和含义?

我要用洗衣机,只需要按一下开关和洗涤模式就可以了。有必要了解洗衣机内部的结构吗?有必要碰电动机吗?

·我们程序设计追求“高内聚,低耦合”。

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

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

·隐藏对象内部的复杂性,只对外公开简单的接口。便于外界调用,从而提高系统的可扩展性、可维护性。通俗的说,把该隐藏的隐藏起来,该暴露的暴露出来。这就是封装性的设计思想。

为了限制用户直接调用某些属性,可以用private(私有的)关键字把这些功能加以限制,再加入set方法(设置)和get方法(获取).

属性赋值的限制条件不能再属性声明时体现,只能通过方法进行限制条件的添加.同时要避免用户用对象.属性的方式进行赋值.则需将其声明为私有(private).--此时, 针对属性就体现了封装性.

二 , 封装性的体现 :

将属性私有化的同时,提供公共的方法来获取(get)和设置(set)此属性的值.

public class pigTest {
    public static void main(String[] args) {
        pig p = new pig();
        //p.age = 3 ; //报错:The field pig.age is not visible
    //这个属性不可见,私有属性不能对象.属性的方式来调用.
        p.setAge(3);
    System.out.println(p.getAge());
    }
}   
public class pig {
        private int age ; //属性私有
        void setAge(int a) {  //用户可以调用方法来赋值
            age = a ;
        }
        int getAge() {  //调用方法来获取值
            return age ;
        }
}

拓展 : 封装性的体现不止是这些 1, 同上 2, 不对外暴露的私有化方法 3, 单例模式...

三 , 封装性的体现, 需要权限修饰符来配合

封装性的体现需要权限修饰符来配合。

    1. java规定的4种权限(从小到大) : *** private , 缺省 , protected , public ***
    2. 4种权限可以用来修饰类及类的内部结构 : 属性, 方法, 构造器, 内部类.
    3. 具体的, 4种权限可以用来修饰类的内部结构 : 属性, 方法, 构造器, 内部类.
修饰符 内部类 同一个包 不同子类 同一个工程
private yes
default yes yes
protected yes yes yes
public yes yes yes yes

对于类(class)的权限修饰,只可以用public 和 default.

public类可以在任何地方被访问,default类只可以被同一个包内部的类访问。

222. 总结 封装性

Java提供了4种权限修饰符来修饰类及其内部结构,体现了类及其内部结构可见性的大小。

标签:封装,private,219,面向对象,yes,权限,public,属性
From: https://www.cnblogs.com/lg369/p/16820776.html

相关文章

  • 面向对象编程 封装继承
    访问修饰符访问修饰符访问级别public公有地,外部可以访问protected受保护的,只有本类和派生类才能够访问private私有的,只有本类中可以访问封装字段......
  • 初始面向对象编程
    OOP面向对象编程类的结构classStudent{}类与对象classProgram{//主方法(程序入口)staticvoidMain(string[]args){//张三是Student实例......
  • 狂神说Java面向对象
    初识面向对象面向对象和面向过程面向过程思想步骤清晰简单,第一步做什么,第二步做什么....面对过程适合处理一些较为简单的问题面向对象思想物以类聚,分类的思维模......
  • 面向对象三大特性之封装
    封装的概述封装应该有两个含义,一是把对象的属性和行为看成一个密不可分的整体,将两者封装在对象中。另一层含义是“信息屏蔽”,把不需要外界知道的信息隐藏起来,有些对象的属......
  • 面向对象的三个基本特征?-小白妹
    面向对象的三个基本特征是:封装、继承和多态。继承:让某个类型的对象获得另一个类型的对象的属性的方法。继承就是子类继承父类的特征和行为,使得子类对象(实例)具有父类的实例......
  • 封装一个简单的乐观锁方法 -基于Laravel 8
    在模型文件中写入以下代码:/***@function实现一个简单的laravel乐观锁*@returnint受影响的函数*@othervoid*/publicfuncti......
  • 面向对象
    三大特性封装利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体。数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对......
  • 面向对象三大特性
    继承:一般类只能单继承,内部类实现多继承,接口可以多继承封装:访问权限控制public>protected>包>private内部类也是一种封装多态:编译时多态,体现在向上转型和向下转型,通过......
  • 回顾缓存穿透、缓存雪崩、缓存击穿及封装Redis工具类
    缓存穿透问题的解决思路缓存穿透:缓存穿透是指客户端请求的数据在缓存中和数据库中都不存在,这样缓存永远不会生效,这些请求都会打到数据库。常见的解决方案有两种:缓存......
  • C++ 核心 4.1 类的封装
    4类和对象面向对象三大特性:封装、继承、多态万物皆对象。对象=属性+行为类是抽象的对象。比如路上有很多(具体的)车,但抽象出来都属于车。定义类的语法:class类名{......