美文网首页
面向对象基础(核心)

面向对象基础(核心)

作者: 想吃热干面了 | 来源:发表于2019-02-28 10:42 被阅读0次

    面向过程:面向过程解决问题的思路:通常是分析出解决问题所需要的步骤,然后用方法把这些步骤一步一步实现,最后一个一个依次调用方法来解决。

    面向对象:

    • 在系统构造中尽可能运用人类的自然思维方式
    • 以问题域中的事物为中心思考问题,认识问题
    • 根据事物的特点,抽象的表示为系统中的对象,作为系统的基本构成单位

    思路:通常是把构成问题域的事务分解成各个对象,给对象赋予相应的属性和行为,通过多个对象的相互协调来解决问题。建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为 。

    面向对象编程思想实际上就是一种运用对象、类、继承、封装、聚合、关联、消息、多态性等概念来构造系统的软件开发方法。

    image.png

    面对对象的基本概念

    抽象:
    • 舍弃个别特征,抽取共同的本质特征
    • 只考虑问题域相关的信息,忽略无关的部分
    对象:描述客观事物的一个实体
    • 可以是有形的,也可以是无形的(如一个客户,一张银行卡,窗体中的一个按钮等等)
    • 对象是构成世界的一个独立单位
    • 具有自己的静态结构(属性)和动态行为(方法)
    • 每个对象有自己的唯一标识
    类:是一组具有相同属性和行为的对象的抽象,用来创建对象,对象是类的实例
    类与对象的关系
    • 抽象和具体
    • 类是生成对象的模版
    • 一个类定义了使用哪些数据来描述属性,每一个对象都有相应的属性值数据,一个类通过一系列方法来定义行为,这些方法能在每个对象中被激活。

    面向对象的主要特征

    封装

    • 所谓封装是把对象的属性和行为结合在一个独立的系统单位内部
    • 尽可能隐蔽对象的内部细节,只向外部提供接口
    • 降低对象间的耦合度
    • 封装的重要意义:
    – 使对象能够集中而完整地描述并对应一个具体事物
    – 体现了事物的相对独立性,使对象外部不能随意存取
    对象的内部数据

    继承

    • 也称泛化,继承性是子类自动共享父类属性和方法的机制,在定义和实现一个类的时候,可以在一个已经存在的类的基础之上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入自己若干新的内容
    • 继承简化了人们对事物的认识和描述,有益于软件复用,是OO技术提高软件开发效率的重要原因之一
    • 是类之间的一种关系,一般类与特殊类之间的关系
    • 继承关系的语义:“is a kind of”

    多态:不同对象对同一行为作出的不同反应

    • 指同一个命名可具有不同的语义
    • OO方法中,常指在一般类中定义的属性或方法被特殊类继承之后,可以具有不同的数据类型或表现出不同的行为,对于子类,可用不同的方法替代实现父类的服务的方法

    把相似的对象划归成一个类。
    在软件设计中,类,就是一个模板,它定义了通用于一个特定种类的所有对象的属性(变量)和行为(方法)。
    类的组成:属性(成员变量)和行为(方法),嵌套类

    对象的创建和使用

    对象:是类的实例,客观存在的某类事物的个体

    • 类名 对象名 = new 构造器

    构造器:分为有参构造和无参构造

    • 具有与类相同的名称
    • 不含返回值类型 无return
      用来创建对象,如未定义,系统默认一个无参构造
      在编译时编译器会发现该类没有构造器,这时编译器会自动的给这个类增加一个构造器

    内存的类别

    • 栈stack:栈的存取速度比堆快,效率高。在栈内保存基本数据类型的局部变量和对象的引用值。
    • 堆heap :堆可以保存那些对空间要求较大的变量。如对象的属性和数组的元素。在堆内存中开辟空间,只能通过内存分配操作符号new,凡是出现关键字new的地方必定分配了一个堆内存。
    • 我们在实例化一个对象时,同时操作了栈内存和堆内存。在栈内保存对象的首地址,即 引用;在堆内存中保存了对象的属性。对对象的所有操作只能通过引用完成,一旦引用出栈释放没有任何引用指向该对象,对象就变成垃圾失效。

    匿名对象:只能用一次 new Person().sayHello()

    Java主要的三种变量

    • 局部变量:定义在方法体中的变量;或是方法的形参。 局部变量只在方法调用的过程中有效,方法调用结束后失效
    • 实例变量:即类的属性,也是全局变量,类体中声明的成员变量,即非static的属性。
    • 静态变量(类变量):用static修饰的成员变量,它们在类被载入时创建,只要类存在,static变量就存在

    垃圾回收机制(GC):

    • Java的垃圾回收机制是自动的,它保证程序健壮的主要手段,避免了由于程序员忘记回收内存而引起的内存泄漏,同时也避免了回收内存带来的代码繁琐。
    • 垃圾回收机制实际上是JVM内部运行的一个优先级比较低的后台线程,这种多线程的模式使得java 具有更好的性能,完全不用程序员参与。
    • 垃圾回收机制仅仅作用于堆内存,于栈内存无关。
    • 对于程序员来说,对象何时变成垃圾呢?
      1.对象的引用被赋值为null
      2.一次性使的匿名对象
      3.超出生命周期的

    this关键字

    image.png

    相关文章

      网友评论

          本文标题:面向对象基础(核心)

          本文链接:https://www.haomeiwen.com/subject/zjgcuqtx.html