`
3213213333332132
  • 浏览: 80008 次
社区版块
存档分类
最新评论

面向对象面向过程

    博客分类:
  • java
阅读更多
面向对象:把要完成的一件事,通过对象间的协作实现。
面向过程:把要完成的一件事,通过循序依次调用各个模块实现。
我把大象装进冰箱这件事为例,用面向对象和面向过程实现,都是用java代码完成。

1、面向对象
package bigDemo.ObjectOriented;

/**
 * 大象类
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-1下午05:47:11
 */
public class Elephant {
 
	private String name;
   	
	public Elephant(String name){
		this.name = name;
	}
	
	public String getName() {
		return name;
	}

}


package bigDemo.ObjectOriented;

/**
 * 冰箱类
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-1下午05:39:05
 */
public class IceBox {

	private String name;

	public void open(People people){
		System.out.println(people.getName() + "把" + this.name + "打开");
	}
	
	public void close(People people){
		System.out.println(people.getName() + "把" + this.name + "关闭");
	}
	
	public IceBox(String name) {
		this.name = name;
	}

	public String getName() {
		return name;
	}

}


package bigDemo.ObjectOriented;

/**
 * 人类
 * 
 * @Description
 * @author FuJianyong
 * 2015-7-1下午05:39:15
 */
public class People {
     
	private String name;

	/**
	 * 描述人的动作
	 */
	private String action;
	
	public void openIceBox(IceBox iceBox){
		iceBox.open(this);//this表示调用此方法的对象(当前对象)
	}
	
	public void pushElephant(Elephant elephant, IceBox iceBox){
		System.out.println(this.getName() + "把" + elephant.getName() + this.action + iceBox.getName());
	}
	
	public void closeIceBox(IceBox iceBox){
		iceBox.close(this);
	}
	
	public People(String name, String action){
		this.name = name;
		this.action = action;
	}
	
	public String getName() {
		return name;
	}
	
}


package bigDemo.ObjectOriented;

/**
 * 面向对象实现装大象进冰箱
 * 
 * @Description
 * @author FuJianyong
 * 2015-6-30上午10:14:26
 */
public class ObjectOriented {

	public static void main(String[] args) {
		
		final IceBox iceBox = new IceBox("冰箱");
		final Elephant elephant = new Elephant("大象");
		final People people = new People("小明", "推进");
		
        people.openIceBox(iceBox);
        people.pushElephant(elephant, iceBox);
        people.closeIceBox(iceBox);
	}
}


运行结果:
小明把冰箱打开
小明把大象推进冰箱
小明把冰箱关闭

如果测试类中的引入新的对象,people类新增一个方法,即可变成完成另外一件事。
package bigDemo.ObjectOriented;

/**
 * 牛奶类
 *
 * @author FuJianyong
 * 2015-7-2下午10:05:10
 */
public class Milk {
	
	private String name;
   	
	public Milk(String name){
		this.name = name;
	}
	
	public String getName() {
		return name;
	}

}


people类中加入一个方法
	
public void pushMilk(Milk milk, IceBox iceBox){
		System.out.println(this.getName() + "把" + milk.getName() + this.action + iceBox.getName());
	}


package bigDemo.ObjectOriented;

/**
 * 面向对象实现装大象进冰箱
 * 
 * @Description
 * @author FuJianyong
 * 2015-6-30上午10:14:26
 */
public class ObjectOriented {

	public static void main(String[] args) {
		
		final IceBox iceBox = new IceBox("冰箱");
		final Milk milk = new Milk("牛奶");
		final People people = new People("小白", "放进");
		
        people.openIceBox(iceBox);
        people.pushMilk(milk, iceBox);
        people.closeIceBox(iceBox);
	}
}



运行结果:
小白把冰箱打开
小白把牛奶放进冰箱
小白把冰箱关闭

2、面向过程
package bigDemo.ProcessOriented;

/**
 * 面向过程实现装大象进冰箱
 * @Description
 * @author FuJianyong
 * 2015-7-1下午05:08:47
 */
public class ProccessOriented {
	
	public void openIceBox(String people, String elephant, String iceBox){
		System.out.println(people + "打开冰箱");
		pushElephant(elephant, iceBox);
	}
	
	public void pushElephant(String elephant, String iceBox){
		System.out.println("装" + elephant + "进" + iceBox);
		closeIceBox(iceBox);
	}
	
	public void closeIceBox(String iceBox){
		System.out.println("关闭" + iceBox);
	}
	
	public static void main(String[] args) {
		 new ProccessOriented().openIceBox("小明", "大象", "冰箱");
	}
}



运行结果:
小明打开冰箱
装大象进冰箱
关闭冰箱
5
3
分享到:
评论
3 楼 3213213333332132 2015-07-03  
谢谢
2 楼 3213213333332132 2015-07-03  
Function 写道
IceBox  和  Elephant   本身已经表示 原意思了

个人感觉 setType("非洲");  setType("西门子");

输出: 小明把非洲大象推进西门子冰箱

后面还可以给  People IceBox Elephant 扩展更多的属性,让这句话更加的丰富



是的,你说的很对,我通过这样的代码,能引发别人去思考我觉得高兴。
其实这里只是简单的诠释面向对象的思维,要真正利用java的多态去完成,那会更丰富的。
1 楼 Function 2015-07-03  
IceBox  和  Elephant   本身已经表示 原意思了

个人感觉 setType("非洲");  setType("西门子");

输出: 小明把非洲大象推进西门子冰箱

后面还可以给  People IceBox Elephant 扩展更多的属性,让这句话更加的丰富

相关推荐

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较

    面向过程、面向对象、面向组件、面向服务软件架构的分析与比较 软件开发历程与架构演进 软件开发从汇编语言、过程式语言、面向对象、面向组件发展到面向服务,这一进程不仅反映了编程技术的不断进步,更是软件工程...

    面向对象VS面向过程

    ### 面向对象与面向过程编程:对比与分析 #### 一、引言 在计算机科学领域,程序设计范式是定义如何构建和组织软件系统的基础。两种主要的编程范式包括面向对象编程(Object-Oriented Programming,简称OOP)与...

    面向对象和面向过程的区别

    面向对象编程(Object-Oriented Programming, OOP)和面向过程编程(Procedural Programming)是两种不同的编程范式,它们在解决问题的方式上有着本质的区别。 面向过程编程是一种自底向上的编程思想,它关注的是...

    面向过程与面向对象区别

    面向过程与面向对象区别 面向过程和面向对象是两种不同的软件设计方法,它们之间的区别是非常重要的。在设计软件时,选择合适的方法对于软件的质量和可维护性有着重要影响。 面向过程是一种-old school-的设计方法...

    面向对象软件开发过程

    面向对象软件开发过程是当前主要应用的一种技术,它和面向过程形成了鲜明的对比。面向对象的软件开发就是将面向对象的思想应用于软件开发过程中的各个阶段,其主要过程为:首先从实际问题触发,用面向对象的方法分析...

    从PHP看面向对象和面向过程的优缺点评比

    2. **执行效率相对较低**:由于类和对象的存在,面向对象编程在某些场景下的运行效率可能不如面向过程编程。 3. **设计复杂度增加**:为了充分利用面向对象的优势,需要更精心地设计类和对象之间的关系。 #### 四、...

    面向对象 面向对象 面向对象

    7. **面向对象与面向过程对比**:面向对象编程与传统的面向过程编程相比,更注重数据和操作数据的方式,而非步骤的执行顺序。面向对象强调模块化和组件化,更适合处理复杂系统的构建。 8. **案例分析**:在实际开发...

    面向对象的程序设计语言与面向过程的程序设计语言.docx

    面向对象的程序设计语言与面向过程的程序设计语言是两种主要的编程范式,它们各自具有独特的设计理念和方法。在编程领域,理解这两种语言的区别对于编写高效、可维护的代码至关重要。 面向过程的编程(Procedural ...

    第章面向对象程序设计ppt课件.ppt

    从面向过程到面向对象程序设计的转变是软件开发技术的一大飞跃。本课件将从面向对象技术的基本概念、面向对象程序设计的特点、优点等方面进行阐述。 2.1 从面向过程到面向对象 面向过程程序设计方法是将问题分解成...

    面向对象编程xmind思维导图,详细知识点

    面向过程与面向对象面向过程面向对象面向过程和面向对象的区别类对象面向对象的两个要素2.类属性成员变量局部变量属性赋值的先后顺序成员变量和局部变量的异同点方法方法声明权限修饰符:public protected 缺省 ...

    投票系统(面向过程与面向对象)PHP

    这个系统可以采用两种不同的编程范式:面向过程和面向对象。面向过程编程是通过步骤和函数来组织代码,而面向对象编程则是通过类和对象来构建程序。对于初学者来说,理解这两种方法的差异和应用场景是非常重要的。 ...

    C++代码从面向过程到面向对象一应俱全

    《C++代码从面向过程到面向对象一应俱全》 C++是一种强大的、通用的编程语言,它在计算机科学领域扮演着至关重要的角色。它不仅继承了C语言的高效和灵活性,还引入了面向对象编程(OOP)的概念,使得程序设计更加...

    面向过程与面向对象的区别

    面向过程和面向对象是两种不同的编程范式,它们在解决问题的方式和代码结构上有显著的差异。面向过程编程(Procedure-Oriented Programming)是一种基于步骤的编程思维,它侧重于将一个问题分解为一系列有序的函数或...

    什么是面向对象?什么是面向过程?

    这是对面向过程和面向对象的解释,个人参考一些文章后做的小总结。

    面向对象的思考过程(英文版).zip

    这个压缩包文件《面向对象的思考过程(英文版)》很可能提供了一个深入探讨面向对象设计原则、概念和技术的详细指南。 1. **对象与类**:对象是OOP中的核心单元,它包含属性(也称为成员变量或字段)和方法(成员函数...

    Labview面向对象编程

    Labview面向对象编程是NI(National Instruments)的图形化编程环境Labview中的一种高级编程技巧,它借鉴了传统编程语言中的面向对象概念,如封装、继承和多态性,为Labview开发带来了更高的代码复用性和可维护性。...

    面向对象与面向过程的程序设计方法比较.pdf

    根据给定文件的信息,本文将深入探讨面向对象与面向过程这两种程序设计方法,并对比分析两者的特点及适用场景。 ### 面向过程的程序设计 面向过程的程序设计方法是传统编程模式的基础,它强调按照一定的顺序来组织...

Global site tag (gtag.js) - Google Analytics