美文网首页
面向对象基础

面向对象基础

作者: 李哲_1da9 | 来源:发表于2019-07-16 12:56 被阅读0次

1. 面向过程和面向对象

面向过程:面向过程适合简单、不需要协作的事务。会需要列出步骤一步一步去执行。

面向对象:面向对象可以帮助我们从宏观上把握、从整体上分析整个系统。

这两者并不对立,相辅相成。

面向对象和面向过程的总结

1、都是解决问题的思维方式,都是代码组织的方式。 

2、解决简单问题可以使用面向过程

3、解决复杂问题:宏观上使用面向对象把握,微观处理上仍然是面向过程。

 2. 对象的进化史

3.对象和类的概念

对象:将相关数据和相关方法封装到一个独立的实体,它会包含关于这个实体的一切的数据,属性以及方法。

类:我们叫做class。 对象:我们叫做Object,instance(实例)。以后我们说某个类的对象,某个类的实例。是一样的意思。

总结

  1.对象是具体的事物;类是对对象的抽象;

  2.类可以看成一类对象的模板,对象可以看成该类的一个具体实例。

  3.类是用于描述同一类型的对象的一个抽象概念,类中定义了这一类对象所应具有的共同的属性、方法。

4.第一个类的定义

类的组成:

属性field、方法method、构造器constructor

实际操作:

5.属性

成员变量的默认值

注意:引用类型默认值为null

6.方法

方法用于定义该类或该类实例的行为特征和功能实现。

方法是类和对象行为特征的抽象。

方法很类似于面向过程中的函数。面向过程中,函数是最基本单位,整个程序由一个个函数调用组成。

面向对象中,整个程序的基本单位是类,方法是从属于类和对象的。

这里的display和watchdoor是属于方法,而后面的属性和方法一起描述了这个类的特征。

7.一个典型类的定义和UML图

实际操作:

                                           UML图  

8.面向对象的内存分析

Java虚拟机的内存可以分为三个区域:栈stack、堆heap、方法区method area。

栈的特点如下:

  1. 栈描述的是方法执行的内存模型。每个方法被调用都会创建一个栈帧(存储局部变量、操作数、方法出口等)

  2. JVM为每个线程创建一个栈,用于存放该线程执行方法的信息(实际参数、局部变量等)

  3. 栈属于线程私有,不能实现线程间的共享!

  4. 栈的存储特性是“先进后出,后进先出”

  5. 栈是由系统自动分配,速度快!栈是一个连续的内存空间!

堆的特点如下:

  1. 堆用于存储创建好的对象和数组(数组也是对象)

  2. JVM只有一个堆,被所有线程共享

  3. 堆是一个不连续的内存空间,分配灵活,速度慢!

方法区(又叫静态区)特点如下:

  1. JVM只有一个方法区,被所有线程共享!

  2. 方法区实际也是堆,只是用于存储类、常量相关的信息!

  3. 用来存放程序中永远是不变或唯一的内容。(类信息【Class对象】、静态变量、字符串常量等)

实际操作:

           

9.构造方法

     构造器也叫构造方法(constructor),用于对象的初始化。构造器是一个创建对象时被自动调用的特殊方法,目的是对象的初始化。

声明格式:

要点:

  1. 通过new关键字调用

  2. 构造器虽然有返回值,但是不能定义返回值类型(返回值的类型肯定是本类),不能在构造器里使用return返回某个值。

  3. 如果我们没有定义构造器,则编译器会自动定义一个无参的构造函数。如果已定义则编译器不会自动添加!

  4. 构造器的方法名必须和类名一致


10.this关键字

创建一个对象分为如下四步:

1. 分配对象空间,并将对象成员变量初始化为0或空

2. 执行属性值的显示初始化

3. 执行构造方法

4. 返回对象的地址给相关的变量

this的本质就是“创建好的对象的地址”! 由于在构造方法调用前,对象已经创建。因此,在构造方法中也可以使用this代表“当前对象” 。

this最常的用法:

  1.  在程序中产生二义性之处,应使用this来指明当前对象;普通方法中,this总是指向调用该方法的对象。构造方法中,this总是指向正要初始化的对象。

  2. 使用this关键字调用重载的构造方法,避免相同的初始化代码。但只能在构造方法中用,并且必须位于构造方法的第一句。

  3. this不能用于static方法中。

实际操作:

注意:这里的this主要被用来区分局部变量和成员变量。

创建一个对象分为如下四步

相关文章

  • java SE目录

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

  • Java基础03面向对象

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

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

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

  • java基础回顾(2)

    面向对象:是基于面向过程的一种思想。 面向过程:以函数为基础,关注实现过程。 面向对象:以对象为基础,关注实现结果...

  • 面向对象

    title:面向对象tags: 基础,Java 面向对象 面向对象程序设计简介 面向对象的基本思想是使用类、对象、...

  • "类"的讲稿

    -----------------------面向对象基础----------------------------...

  • Java 工程师成神之路 | 2019正式版

    摘要:什么是面向对象 基础篇 01面向对象 → 什么是面向对象 面向对象、面向过程 面向对象的三大基本特征和五大基...

  • 2、面向对象

    一、面向对象 定义:面向对象是基于面向过程的。 面向对象与面向过程比较:面向过程:面向过程是以函数为基础,完成各种...

  • 基础6-面向对象

    基础6-面向对象 ###06.01_面向对象(面向对象思想概述)(了解) * A:面向过程思想概述 *第一步 ...

  • 面向对象

    面向对象基础 目标 理解面向对象 类和对象 添加和获取对象属性 魔法方法 一. 理解面向对象 面向对象是一种抽象化...

网友评论

      本文标题:面向对象基础

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