zoukankan      html  css  js  c++  java
  • 封装

    封 装(面向对象特征之一):是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

    定义:把一个或多个项目封闭在一个物理的或者逻辑的包中。在面向对象程序设计方法论中,封装是为了防止对实现细节的访问。

    好处:将变化隔离;便于使用;提高重用性;安全性。

    封装原则:将不需要对外提供的内容都隐藏起来,把属性都隐藏,提供公共方法对其访问。

     表现形式

    • 把成员变量用private修饰
    • 提供对应的getXxx()和setXxx()方法
    • private仅仅是封装的一种体现形式,不能说封装就是私有

    this:代表对象。就是所在函数所属对象的引用。

    this到底代表什么呢?哪个对象调用了this所在的函数,this就代表哪个对象,就是哪个对象的引用。

    开发时,什么时候使用this呢?

    在定义功能时,如果该功能内部使用到了调用该功能的对象,这时就用this来表示这个对象。

    this 还可以用于构造函数间的调用。

    调用格式:this(实际参数);

    this对象后面跟上 .  调用的是成员属性和成员方法(一般方法);

    this对象后面跟上 () 调用的是本类中的对应参数的构造函数。

    注意:用this调用构造函数,必须定义在构造函数的第一行。因为构造函数是用于初始化的,所以初始化动作一定要执行。否则编译失败。

    详细理解:

    C#-面向对象的三大特性——封装(封装成员变量、封装成员方法)

     

    封装:

    封装就是将数据或函数等集合在一个个的单元中(我们称之为类)。被封装的对象通常被称为抽象数据类型。

    封装的意义在于保护或者防止代码(数据)被我们无意中破坏。

    封装既可以封装成员变量,又可以封装成员方法

    =====================================================================================================

    封装成员变量 封装步骤:

    1、新建类——

    面向对象最基本的单元就是类,即一个.cs文件,就像一个文本文档,里面就是放置C#代码

    新建一个类:在 解决方案资源管理器 中右键 空间名 → 添加 → 新建项目 或 类 → 命名类

    (用户自己写的类 - 用户自定义类型    

    如果要使用咱们自定义类型产生出来的 对象 必须有一个实例化的过程:类名 定义名 = new 构造函数(); 比如 student st=new student();)

    例如创建一个student类:

    class 表示类  student 为类名 (创建的类默认的访问修饰符为internal,隐藏显示)

    2、写构造函数——

    类的基本结构是:构造函数 - 创建一个类的函数(每一个类都有一个构造函数,默认隐藏)

    如何将隐藏的构造函数写出来?

    图中红色边框区域就是student类的构造函数,此时为public(公共的)

    每一个类都有构造函数,访问修饰符必须是public的,并且不需要写任何返回值,方法名与类名一致

    【什么是public? public是一个 访问修饰符

    访问修饰符是定义函数的访问权限和访问等级,访问修饰符有四种:public(公共的)、private(私有的)、internal(内部的)、protected(被保护的)

    public - 公共的,任何地方都可以访问,但是需要引用 命名空间
    private - 私有的,类的内部才可以访问

    internal - 内部的,默认的,程序集中可以访问,程序集就是命名空间
    protected - 被保护的,类的内部和类的父类和子类中可以访问】

    3、向类中填写信息——

    比如:学生信息包括学号、姓名、性别、年龄(_code、_name、_sex、_age 叫做 成员变量

    下划线是为了一会进行封装,此时访问修饰符用的是public,主函数中是可以进行调用和赋值修改的

    4、进行封装(固定格式)——

    封装方法一:(1)在新建类中,将信息的访问修饰符修改为private,此时主函数中,类的方法无法调用

        

    (2)在新建类中写方法调用函数,写一个public,允许主函数访问调用,类型同上,命名时去掉下划线(封装函数叫 属性

    get 是读取(属性取值) set 是赋值(属性赋值)  此时主函数不能调用_code,而能调用code,但赋值是给_code进行赋值

       

    封装方法二: 点击方法名,右键鼠标 → 重构 → 封装字段 → 对话框无需修改,回车,回车

    封装方法三:在方法二中,可以看到 封装字段 后有快捷键 Ctrl+R,E,再按两次回车跳过对话框即完成封装

     

  • 相关阅读:
    mysql子查询
    hibernate lazy属性true false extra 抓取策略
    unittest下,生成的测试报告
    python创建excel文件,并进行读与存操作
    configparser模块简介
    PyCharm里面的c、m、F、f、v、p分别代表什么含义?
    Python之路(第十七篇)logging模块
    configparser模块简介
    python中os.sep的作用以及sys._getframe().f_back.f_code.co_xxx的含义
    os.getcwd()和os.path.realpath(__file__)的区别
  • 原文地址:https://www.cnblogs.com/zxdz/p/13324269.html
Copyright © 2011-2022 走看看