相信大家都知道这两个东西,可是大家是如何知道的呢?我们又该如何区分这个东西到底是面向过程还是面向对象的呢?
那,我们首先就要知道什么是面向过程,什么是面向对象:
面向过程”(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基础】面向过程~面向对象的更多相关文章
-
四、java基础-面向过程_对象_类中可出现的因素
1.面向过程和面向对象区别: 1)面向过程:开发一个应用程序.一个项目,必须先了解整个过程,了解各个步骤.模块间的因果关系,使的面向过程方式去开发程序时,代码和代码之间的关联程度是非常强.所以其中任何 ...
-
Java基础教程:面向对象编程[2]
Java基础教程:面向对象编程[2] 内容大纲 访问修饰符 四种访问修饰符 Java中,可以使用访问控制符来保护对类.变量.方法和构造方法的访问.Java 支持 4 种不同的访问权限. default ...
-
Java基础教程:面向对象编程[1]
Java基础教程:面向对象编程 内容大纲 Java语言概述 Java语言特点 1.Java为纯面向对象的语言,它能够直接反映现实生活中的对象.总之,Everything is object! 2.平台 ...
-
Java基础教程:面向对象编程[3]
Java基础教程:面向对象编程[3] 内容大纲 基础编程 获取用户输入 java.util.Scanner 是 Java5 的新特征,我们可以通过 Scanner 类来获取用户的输入.我们可以查看Ja ...
-
Java基础-面向接口(interface)编程
Java基础-面向接口(interface)编程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.接口的概念 接口是功能的集合,同样可看做是一种数据类型,是比抽象类更为抽象的“类 ...
-
php连接数据库的两种方式- 面向过程 面向对象
php连接数据库的两种方式- 面向过程 面向对象 一.面向对象1. 链接数据库$conn = @new mysqli("127.0.0.1","root", ...
-
Java基础语法(9)-面向对象之类的成员
title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...
-
Java基础语法(11)-面向对象之关键字
title: Java基础语法(11)-面向对象之关键字 blog: CSDN data: Java学习路线及视频 1.this this是什么 它在方法内部使用,即这个方法所属对象的引用: clas ...
-
JAVA基础知识之面向对象编程知识汇总
JAVA基础课程部分面向对象已经学习完成,知识结构如下: 总体知识框架: 类的结构: 面向对象编程三大特征: 关键字和抽象类接口等: 常见知识汇总: 成员变量和局部变量比较 有无返回值方法比较: 权限 ...
-
Java基础语法(10)-面向对象之三大特征
title: Java基础语法(9)-面向对象之类的成员 blog: CSDN data: Java学习路线及视频 1.面向对象特征--封装 为什么需要封装?封装的作用和含义? 我要用洗衣机,只需要按 ...
随机推荐
-
一起学微软Power BI系列-官方文档-入门指南(7)发布与共享-终结篇+完整PDF文档
接触Power BI的时间也只有几个月,虽然花的时间不多,但通过各种渠道了解收集,谈不上精通,但对一些重要概念和细节还是有所了解.在整理官方文档的过程中,也熟悉和了解了很多概念.所以从前到后把微软官方 ...
-
COGS130. [USACO Mar08] 游荡的奶牛[DP]
130. [USACO Mar08] 游荡的奶牛 ★☆ 输入文件:ctravel.in 输出文件:ctravel.out 简单对比时间限制:1 s 内存限制:128 MB 奶牛们在被划 ...
-
UMLl类图实例
下面是类图的实例(好像大话设计中有): UML中类图实例 接口:空心圆+直线(唐老鸭类实现了‘讲人话’):依赖:虚线+箭头(动物和空气的关系):关联:实线+箭头(企鹅需要知道气候才迁移):聚合:空心四 ...
-
Hibernate SQL方言 (hibernate.dialect) Spring配置文件applicationContext.xml
转自:http://www.cnblogs.com/wj-wangjun/archive/2009/10/21/1587624.html Hibernate SQL方言 (hibernate.dial ...
-
Git-图文教程
https://github.com/haveatry823/QSanguoshaAI/wiki/Git-%E5%9B%BE%E6%96%87%E6%95%99%E7%A8%8B http://www ...
-
计算几何--求凸包模板--Graham算法--poj 1113
Wall Time Limit: 1000MS Memory Limit: 10000K Total Submissions: 28157 Accepted: 9401 Description ...
-
BLE GATT规范中关于UUID与属性的详细解析
1. 角色 除了GAP定义了角色之外,BLE还定义了另外2种角色:GATT服务器和GATT客户端,它们完全独立于GAP的角色.提供数据的设备称为GATT服务器,访问GATT服务器而获得数据的设备称为G ...
-
svn使用相关问题:eclipse插件,加锁,解锁,偷锁,更新不了,记住密码
svn使用相关问题:eclipse插件,加锁,解锁,偷锁,更新不了,记住密码 获取锁的时候可以看下 是谁锁住了,让对方提交解锁,如果是给离职人员锁住需要使用偷锁的方式先解锁再提交偷锁处理办法:选中该文 ...
-
hao dongxi
asp.net页面间传值方式后台 asp.net页面间传值的几种方法 利用JQuery的$.ajax()可以很方便的调用asp.net的后台方法. json的使用 前后台统一以对象的方式编程 ASP. ...
-
浅入javascript正则表达式的规则.
今天在看jQuery源码的时候,到处都是正则的用法,一气之下就狠下心来.重新回顾了一下正则.下面是做的笔记.非常浅的入门. /* i:表示不区分大小写 g:表示可以全局配置 m:表示可以多行配置 */ ...