Java基础-面向对象(08)

面向过程

完成一个需求的步骤:首先是搞清楚我们要做什么,然后在分析怎么做,最后我们再代码体现。一步一步去实现,而具体的每一步都需要我们去实现和操作。这些步骤相互调用和协作,完成我们的需求。面向过程开发,其实就是面向着具体的每一个步骤和过程,把每一个步骤和过程完成,然后由这些功能方法相互调用,完成需求。

面向对象

当需求单一,或者简单时,我们一步一步去操作没问题,并且效率也挺高。可随着需求的更改,功能的增多,发现需要面对每一个步骤很麻烦了,这时就开始思索,能不能把这些步骤和功能在进行封装,封装时根据不同的功能,进行不同的封装,功能类似的封装在一起。这样结构就清晰了很多。用的时候,找到对应的类就可以了。这就是面向对象的思想。

面向对象是基于面向过程思想。

思想特点

是一种更符合我们思考习惯的思想
可以将复杂的事情简单化
将我们从执行者变成了指挥者

面向过程和面向对象关系和区别

面向对象是基于面向过程思想。

面向过程:强调的是每一个功能的步骤。
面向对象:强调的是对象,由对象去调用功能。

类与对象的关系

我们学习编程语言,就是为了模拟现实世界的事物,实现信息化。

现实世界事物信息化:

属性: 就是该事物的描述信息
行为: 就是该事物能够做什么

Java中描述事物也是如此

成员变量:  就是事物的属性
成员方法:  就是事物的行为

类和对象关系:

类:是一组相关的属性和行为的集合
对象:是该类事物的具体体现

类实例化对象:

类名 对象名 = new 类名();
对象名.成员变量
对象名.成员方法

JAVA的JVM的内存可分为3个区:堆(heap)、栈(stack)和方法区(method)

堆区:
1.存储的全部是对象,每个对象都包含一个与之对应的class的信息。(class的目的是得到操作指令)
2.jvm只有一个堆区(heap)被所有线程共享,堆中不存放基本类型和对象引用,只存放对象本身

栈区:
1.每个线程包含一个栈区,栈中只保存基础数据类型的对象和自定义对象的引用(不是对象),对象都存放在堆区中
2.每个栈中的数据(原始类型和对象引用)都是私有的,其他栈不能访问。
3.栈分为3个部分:基本类型变量区、执行环境上下文、操作指令区(存放操作指令)。

方法区:
1.又叫静态区,跟堆一样,被所有的线程共享。方法区包含所有的class和static变量。
2.方法区中包含的都是在整个程序中永远唯一的元素,如class,static变量。 

成员变量和局部变量的区别

在类中的位置不同

成员变量 类中方法外
局部变量 方法内或者方法声明上

在内存中的位置不同

成员变量 堆内存(实例化时在堆中,并且赋初值)
局部变量 栈内存(方法执行时方法从方法区中调到栈中执行,这时候局部变量才开始存在)

生命周期不同

成员变量 随着对象的存在而存在,随着对象的消失而消失
局部变量 随着方法的调用而存在,随着方法的调用完毕而消失

初始化值不同

成员变量 有默认的初始化值
局部变量 没有默认的初始化值,必须先定义,赋值,才能使用。

原文地址:https://www.cnblogs.com/aeolian/p/7753989.html