Java基础篇——面向对象详解

写在前面:

Java是一门面向对象的编程语言。

面向对象,具体指什么,什么是对象,什么又是基于对象,面向过程又是什么。下文将作以简单的阐述。

基于对象:
通常指的是对数据的封装,以及提供一组方法对封装过的数据进行操作。

面向过程:
面向过程实际上是一种以过程为中心的编程思想。面向过程也可称之为“面向记录”的编程思想,他们不支持丰富的“面向对象”的特点(封装、继承、多态),并且不允许混合持久化状态和逻辑域。

面向对象:
这是一种新型的程序设计方法,也可以说是一种新的程序规范,基本思想在于使用对象,类,继承,封装,多态等基本概念来进行程序设计。从现实世界中存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的思维方式。

对象:
对象是系统中用来描述客观事物的一个实体,他是构成系统的一个基本单位。一个对象由一组属性和对这组属性进行操作的一组服务组成。类的实例化可产生对象,一个对象的生命周期包括三个方面:生成,使用,消除。当不存在对一个对象的引用时,该对象便就成了一个无用对象,Java的垃圾收集器会自动扫描对象的动态内存区,把没有引用的对象当垃圾进行收集释放。

上述讲清楚了吗?我感觉好像没有,因为以上都是我在网上查询的概念,个人感觉讲的比较笼统,所以下面写一些我自己的理解用自己的理解来为大家讲述面向对象和面向过程。

面向过程:
对于面向过程,我的理解其实就是去分析解决问题的各个步骤,然后用函数将这每个步骤一步一步的实现,等到使用的时候再一步一步的调用。面向过程,强调的就是这个过程。下面就用一个简单得做饭的例子来说明:

  1. 想要做饭,那么就必须要有原材料,没有原材料怎么做饭,所以第一步就是——买菜。
  2. 有了菜,肯定不能直接用来做,买来的菜要清洗一下才能烹饪,毕竟长这么大还没见过买来的菜直接就吃的,所以第二步——洗菜。
  3. 有了菜,也清洗过了,就可以进行烹饪做成好吃的饭菜,所以第三步——烹饪。

想要做一顿好吃可口的饭菜以上三步必须一步一步的完成,这是一个完整的过程。下面用一段代码来说明一下:

#include 
using namespace std;
void maicai(){ 
		cout<<"第一步,买菜!"<<endl;
}
void xicai(){
		cout<<"第二步,洗菜!"<<endl;
}
void pengren(){
		cout<<"第三步,烹饪!"<<endl;
}
//以上三个就是抽象出来的过程下面来写main函数:
void main(){
		maicai();
		xicai();
		pengren();
}

运行截图:
Java基础篇——面向对象详解_第1张图片
面向对象:
对于面向对象,也很简单,我的理解面向对象就是将相关的方法封装在一个实体里,这个实体的实例化就是一个对象。换个说法,你有一个箱子,箱子里面装着各种各样的东西,比如说衣服,可以用来让你寒冷的时候感到温暖,再比如说装满水的水瓶,可以让你干燥的口腔得到滋润。而这衣服和水瓶就是Java里面的方法,这个箱子就是对象,面向对象强调的就是对象,也就是这个箱子。

同样的例子,用代码来实现:

package test;

class chushi{
	void maicai() {
		System.out.println("厨师A出去买菜了");
	}
	void xicai() {
		System.out.println("厨师B去洗菜了");
	}
	void pengren() {
		System.out.println("厨师C去烹饪了");
	}
}
public class test {
public static void main(String args[]) {
	chushi A = new chushi();
	chushi B = new chushi();
	chushi C = new chushi();
	A.maicai();
	A.xicai();
	A.pengren();
	B.xicai();
	C.pengren();
}
}

运行截图:
Java基础篇——面向对象详解_第2张图片

由代码和截图可以看出,首先定义出了一个实体类:厨师。然后在main方法里对类进行了三次实例化产生了三个对象A,B,C。A调用实体类中的所有方法输出了前三行,然后B和C又分别调用了第二个方法和第三个方法,由运行结果可以看出B和C调用方法和A调用方法运行的结果相同。

总结一下:
面向过程:注重的是完成事件的每一个步骤(如上例中的三个步骤),强调的是完成事件的过程,也就是经常说的“执行者“。

面向对象:注重的是对象的不同(如上例中的A,B,C),强调的是具备功能的对象,也叫“管理者”。

到此,文章结束,上述内容有网上查询到的概念,若有侵权,麻烦联系作者进行删除,当然人无完人,对于作者自己理解的部分若有错误,敬请斧正。

你可能感兴趣的:(Java)