相信大家都知道这两个东西,可是大家是如何知道的呢?我们又该如何区分这个东西到底是面向过程还是面向对象的呢?

那,我们首先就要知道什么是面向过程,什么是面向对象:

面向过程”(Procedure Oriented):

是一种以过程为中心的编程思想。“面向过程”也可称之为“面向记录”编程思想,并且它们不允许混合持久化状态和域逻辑。就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。

面向对象(Object Oriented,简称OO)

是一种以事物为中心的编程思想。是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

这样说的太干燥了,来点实例:

就说一个混小子吧,结婚之前,他如果想吃点酒菜,首先要自己去买各种菜,然后炒个白菜肉,红烧鱼,红烧牛肉,葱爆羊肉,油闷大虾。用代码来说就是

结婚了之后吧,这小子媳妇儿挺贤惠,什么都会做,脾气又好,可爽了这小子了,在想吃酒菜的时候,给媳妇儿说“亲爱的,我要吃酒菜,吃白菜炒肉,红烧鱼,红烧牛肉,葱爆羊肉,油闷大虾”,是这样来实现的:

/**
*
* @author 李卫中
*/
public class EatJiuCai {
String name; public static void main(String[] args){
HunBoy boy=new HunBoy();
Wife wife=new Wife();
boy.name="混小子";
wife.name="好媳妇儿";
boy.DianCai("白菜炒肉");
boy.DianCai("红烧鱼");
boy.DianCai("红烧牛肉");
boy.DianCai("葱爆羊肉");
boy.DianCai("油闷大虾");
wife.cookBaicaiRou();
wife.cookHongshayu();
wife.cookHongshaocow();
wife.cookCongBaosheep();
wife.cookYoumendaxia();
}
} class HunBoy{
String name; public void DianCai(String caiName){
System.out.println(name+"说:我要吃"+caiName);
}
}
class Wife{
String name; public void cookBaicaiRou(){
System.out.println(name+"说:我做好了白菜炒肉");
} public void cookHongshayu(){
System.out.println(name+"说:我做好了红烧鱼");
} public void cookHongshaocow(){
System.out.println(name+"说:我做好了红烧牛肉");
} public void cookCongBaosheep(){
System.out.println(name+"说:我做好了葱爆羊肉");
} public void cookYoumendaxia(){
System.out.println(name+"说:我做好了油闷大虾");
}
}

运行结果呢:

通过这个,就很好理解了吧,还不行的话,只能上绝招了

面向过程:

面向对象:

这样明白了没?面对过程的时候,混小子光棍一根,没人帮他,所以有事得自己从头做到尾,也就是从梦想到实现都是自己一步步去经历。注重的是过程。

可是结了婚之后,这小子有了一个厨师,他在想吃什么东西,只需要点菜名,告诉他的好媳妇儿一声,他的好媳妇直接给他做然后端给他。而混小子呢,他不需要管怎么做菜,做菜要经历什么,他只需要点个菜,然后等着吃,也就是传一个菜名,然后等着媳妇给他最后端过来吃就好了。在这里注重的是,他给媳妇说,媳妇儿给他做

这就是面向对象的思想:是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

小结:

面向过程,是将一件事的实现从头到尾面面俱到的去实现,按顺序,一步步什么都不少

而面向对象,是我把这件事交给别人(可以做这件事的人),我只需要发布命令,然后坐等结果就好,过程,我不管,我只要最后的目的被实现就好(要考虑性能哦)

题外话:

媳妇儿是用来疼的,广大的那行同胞们,外面雄风不到,家里厨房乱跑才是好的,以后像这种混小子的活,还是不要做得好,得给媳妇儿做饭,做个气管炎,其实挺幸福的

【java基础】面向过程~面向对象的更多相关文章

  1. 四、java基础-面向过程_对象_类中可出现的因素

    1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...

  2. Java基础教程:面向对象编程[2]

    Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...

  3. Java基础教程:面向对象编程[1]

    Java基础教程:面向对象编程 内容大纲 Java语言概述 Java语言特点 1.Java为纯面向对象的语言,它能够直接反映现实生活中的对象.总之,Everything is object! 2.平台 ...

  4. Java基础教程:面向对象编程[3]

    Java基础教程:面向对象编程[3] 内容大纲 基础编程 获取用户输入 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入.我们可以查看Ja ...

  5. Java基础-面向接口(interface)编程

    Java基础-面向接口(interface)编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的“类 ...

  6. php连接数据库的两种方式- 面向过程 面向对象

    php连接数据库的两种方式- 面向过程 面向对象   一.面向对象1. 链接数据库$conn = @new mysqli("127.0.0.1","root", ...

  7. Java基础语法(9)-面向对象之类的成员

    title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...

  8. Java基础语法(11)-面向对象之关键字

    title: Java基础语法(11)-面向对象之关键字 blog: CSDN data: Java学习路线及视频 1.this this是什么 它在方法内部使用,即这个方法所属对象的引用: clas ...

  9. JAVA基础知识之面向对象编程知识汇总

    JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...

  10. Java基础语法(10)-面向对象之三大特征

    title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...

随机推荐

  1. ACM/ICPC 之 数据结构-线段树思想(POJ2182,含O(n^2)插入式解法)

    这道题在一定程度上体现了线段树的一种用法,解决的问题是:对于总计n个元素的第i个元素,已知其在[1,i]上部分序列的排名,求第i个元素在所有n个元素中的排名. 当然这道题数据比较水,所以用O(n^2) ...

  2. ACM/ICPC 之 DP-浅谈“排列计数” (POJ1037)

    这一题是最近在看Coursera的<算法与设计>的公开课时看到的一道较难的DP例题,之所以写下来,一方面是因为DP的状态我想了很久才想明白,所以借此记录,另一方面是看到这一题有运用到 排列 ...

  3. Python 之 【markdown 模块的学习】

    摘要: markdown工具,可以将txt转化成html格式.这一类工具的作用是将按一定格式写成的可读性强的文本文件转化为结构化的标准xhtml或html.Linux 下面也有markdown: zh ...

  4. Java for LintCode 颠倒整数

    将一个整数中的数字进行颠倒,当颠倒后的整数溢出时,返回 0 (标记为 32 位整数). 解题思路: JAVA实现如下: public int reverseInteger(int n) { Boole ...

  5. 13.SpringMVC和Spring集成(一) && 14.SpringMVC和Spring集成(二)

    1.概念 Spring是一个开源框架,Spring是于2003 年兴起的一个轻量级的Java 开发框架,Spring致力于J2EE应用的各层的解决方案,Spring是企业应用开发的“一站式”选择,并贯 ...

  6. (Win7 x64)NetBeans 8.0.2 使用Tomcat 8作为服务器

    1.下载Apache Tomcat,解压至本地硬盘的根目录. 2.运行CMD,输入: 解压盘符:\apache-tomcat-8.0.xx\bin\service.bat install 3.安装完成 ...

  7. Spring@Autowired注解与自动装配

    1   配置文件的方法 我们编写spring 框架的代码时候.一直遵循是这样一个规则:所有在spring中注入的bean 都建议定义成私有的域变量.并且要配套写上 get 和 set方法. Boss ...

  8. mybatis 的if else

    <update id="update" parameterType="XXX">         update XX set YY          ...

  9. 解压zip文件中文文件名乱码问题

    主要原因是,在windows下压缩文件时,是以系统的默认编码(gbk,gb18030)来压缩,zip文件并没有声明编码的格式,因此,linux下解压缩时,也会使用系统默认的格式(utf-8)解压缩,编 ...

  10. 【leetcode】Jump Game I & II (hard)

    Jump Game (middle) Given an array of non-negative integers, you are initially positioned at the firs ...