zoukankan      html  css  js  c++  java
  • 面向对象基础知识一、类和对象

    一、类和对象

    1.1 类和对象的基本概念

    1.1.1 类 Class

    • 抽象
    • 抽象模型

    1.1.2 对象 Object

    • 类的实例化

    1.1.3 类和对象之间的关系

    image

    1.2 对象和对象变量

    1.2.1 对象和对象变量之间的关系

    image

    • 引用类型和值类型的区别
    • 引用类型 Reference Type:“类”类型的变量属于引用类型,其引用的对象占用的内存位于托管堆(managed heap)中。
    • 值类型 Value Type:值类型的变量张勇的内存位于线程堆栈(thread stack)中

    1.2.2 对象赋值 =

    1.2.3 对象判等(==&Equals)

    image

    1.2.4 this关键字

    • this代表对象自身。
    • 位于同一类内部的成员彼此访问,本质上是通过this这一特殊引用来完成的。只不过这个关键字通常被省略了。
      提示:通过对象变量来访问对象的实例成员是面向对象编程的一个基本准则。

    1.2.5 装箱和拆箱

    • 装箱:将值对象赋值给引用类型变量
      image
    • 拆箱:将对象赋值给值类型变量
      image
      提示:在实际开发过程中,装箱与拆箱会带来较大的性能损失,一定要尽量避免这种情况发生。除非在需要用到多态特性的场景,否则我们应该始终为变量定义明确的类型,并且只把对应类型的数据赋值给它。

    1.3 继承 Inheritance

    1.3.1 继承概念

    • 形成继承关系的两个类之间是IS_A关系。
    • 继承的目的:通过继承复用代码。
      提示:滥用继承会导致代码间强耦合,拥有极深的继承树,牵一发而动全身。

    1.3.2 重载 Overload

    方法名相同,参数类型和个数不同
    image

    1.3.3 重写 Override

    方法名相同,参数相同
    image

    1.3.4 字段同名

    image
    字段同名时子类会隐藏父类字段。
    提示:不要在子类中定义与父类同名的字段。

    1.4 接口 Interface

    • 接口目的:易扩展

    1.5 多态

    1.5.1 概念

    同一操作用于不同的类的实例,不同的类将进行不同的解释执行,最后产生不同的结果。

    1.5.2实现方式

    • 继承多态
      基于抽象类和抽象方法实现:
      抽象类 变量名 = new 继承抽象类的子类名();
      image
      提示:包含抽象方法的类一定是抽象类,但抽象类中的方法不一定是抽象类。
    • 接口多态
      提示:使代码具有更强的适用性,当需求变化时,多态特性可以帮助我们将改动减少到最低限度。
  • 相关阅读:
    matplotlib 进阶之origin and extent in imshow
    Momentum and NAG
    matplotlib 进阶之Tight Layout guide
    matplotlib 进阶之Constrained Layout Guide
    matplotlib 进阶之Customizing Figure Layouts Using GridSpec and Other Functions
    matplotlb 进阶之Styling with cycler
    matplotlib 进阶之Legend guide
    Django Admin Cookbook-10如何启用对计算字段的过滤
    Django Admin Cookbook-9如何启用对计算字段的排序
    Django Admin Cookbook-8如何在Django admin中优化查询
  • 原文地址:https://www.cnblogs.com/tjubuntu/p/15413362.html
Copyright © 2011-2022 走看看