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

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

面向过程”(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. Unity3d《Shader篇》法线贴图

    效果图 贴图 法线贴图 //代码 Shader "Custom/NormalMap" { Properties { _MainTex ("Texture", 2 ...

  2. the XMLHttpRequest Object

    Ajax的核心是XMLHttpRequest对象.XMLHttpRequest对象允许异步发送请求并且以文本的形式返回结果.发送什么样的请求(what),在服务器端怎样处理这个请求(how),返回什么 ...

  3. Python初识

    Python第一天   一.为什么学Python        作为一名linux运维工程师现在越来越感觉不好干了.没有地位,还待背黑锅,并且运维自动化发展的这么快,普通运维岗位的路也越来越窄(因为我 ...

  4. ASM:《X86汇编语言-从实模式到保护模式》第10章:32位x86处理器的编程架构

    ★PART1:32位的x86处理器执行方式和架构 1. 寄存器的拓展(IA-32) 从80386开始,处理器内的寄存器从16位拓展到32位,命名其实就是在前面加上e(Extend)就好了,8个通用寄存 ...

  5. div+css进度条

    效果图: 进度条代码: <style type="text/css"> 红色:background-color:f05153:border:1px solid #f05 ...

  6. C#集合及特殊字符

    集合里面 打印  出来时 要把 集合内的格式转化为其他格式! 壹. 集合 在.add之前 为空   数组  同样  添加元素之前 为  空(下一章超市购物例题具体体现) 1.System Collec ...

  7. mybatis参数错误 Parameter '×××' not found. Available parameters are [0, 1, param1, param2]

    报错的代码 @Update("update staff_info set ApplyState = #{applyState} where Id = #{userId}") int ...

  8. 【leetcode】 Palindrome Partitioniong (middle) (*^__^*)

    Given a string s, partition s such that every substring of the partition is a palindrome. Return all ...

  9. 【leetcode】Integer to Roman & Roman to Integer(easy)

    Roman to Integer Given a roman numeral, convert it to an integer. Input is guaranteed to be within t ...

  10. 【linux】配置SSH免密码登陆

    1.输入ssh-keygen -t dsa -P '' -f ~/.ssh/id_dsa 其中''里的是登陆的密码,因为要设置免密码,所以''里是什么都没有的,空格也不行 2.输入 cat ~/.ss ...