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

面向对象基础(核心)

作者: 想吃热干面了 | 来源:发表于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

相关文章

  • 面向对象基础(核心)

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

  • 从Kylin入门到大数据老司机

    一、UML基础 为什么要使用UML 对象是面向对象世界的核心。面向对象软件分析和设计,最基本的需求是高效的识别对象...

  • 面向对象编程概念

    前言: 这一章,面向对象编程概念会教会你面向对象编程背后的核心概念:对象,消息,类和基础。这章最后会代码形式展示给...

  • Java后端知识体系

    基础重点(必须扎实) Java语言 语言基础 《Java核心技术》基础语法面向对象常用API异常处理集合IO多线程...

  • C++面向对象

    C++类和对象 C++ 在 C 语言的基础上增加了面向对象编程,C++ 支持面向对象程序设计。类是 C++ 的核心...

  • java SE目录

    java SE目录 java基础(一)java基础(二)关键字面向对象(一)面向对象(二)面向对象(三)集合(一)...

  • Java基础03面向对象

    Java 基础02Java编程基础 面向对象上 面向对象的概述 面向对象的概述:面向对象是一种符号人类思维习惯的编...

  • python面向对象学习笔记-01

    学习笔记 # 0,OOP-Python面向对象 - Python的面向对象 - 面向对象编程 - 基础 -...

  • Java养成指南

    1.基础阶段 核心是掌握java语法基础、熟练使用JDK提供的各种类、对象以及提供的方法.明白什么的面向对象的变成...

  • C++学习笔记之C++基础

    1、C++学习计划 (1)基础语法(复习)——初步了解,基础编程(2)核心编程——面向对象(3)提高编程——泛型编...

网友评论

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

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