当前位置:编程学习 > JAVA >>

什么是面向对象?(求资深人士)

什么是面向对象,而什么又是面向过程?
是在内部实现时的区别么????到现在还搞不清它们到底有什么区别....
请高手详细说明!!! --------------------编程问答-------------------- 对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位 --------------------编程问答--------------------
引用 1 楼  的回复:
对象是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位


请对将面向对象与面向过程作个比较,这样比较容易理解。。 --------------------编程问答-------------------- 我的一些理解。

面向过程,是对客观现象的描述,感觉是有一个上帝视角。
RedLightOn();
PeopleWalk();
CarStop();
GreenLightOn();
CarMove();

面向对象,顾名思义,更加强调了客观实体与其属性和动作的关联性,
突出了以各个客观实体为中心的世界观,
可能更便于人类大脑理解与记忆。
redlight.turnOn();
people.walk();
car.stop();
greenlight.turnOn();
car.move(); --------------------编程问答-------------------- 书上会有详细说明 --------------------编程问答-------------------- 这是一个循序渐进的过程:代码量、经验、逻辑思维能力,还可能包括哲学...... --------------------编程问答-------------------- I think:
面向对象的四大特点。
抽象,封装,多态,继承。
何为抽象,比如要你描述一个人,但是人有很多属性和方法你是都描述不完,但是我们可以抽象出我们要的属性。比如
class Person{
String identity;//身份证
String name;//姓名
int age;//年龄
String sex;//性别
void eat(){
}
void say(){
}
void sleep(){
}
void work(){
}
}

这是抽象,可能也是我们习惯的模式。进行对象建模。
封装
意思就是该类,是一个黑箱子,他给你提供什么接口,并返回给你一个结果,其他一些内部机制你可以不知道。假如你是上帝你想生产出一个人来。这个工厂可以帮你生产,你可以提供一些属性让工厂生产出你要的人,或者不提供属性,生产工厂默认的人。这个时候你就要加private,不要让外面的人看见这些属性,以免乱修改。比如年龄必须为正数,但是person.age = -100,这样就有悖常理。也不符合封装的特性。
import java.util.Random;

public class Person {
private static int identity = 0;// 身份证

private String name;// 姓名

private int age;// 年龄

private String sex;// 性别

public Person(){
identity++;
name = "无名";
age = 1;
sex = ((new Random().nextInt())%2 == 1) ? "male" : "female";
}
public Person(String name,int age,String sex){
identity++;
this.name = name;
this.age = age;
this.sex = sex;
}
public void setName(String name) {
this.name = name;
}

public String getName() {
return this.name;
}
public String toString(){
return "identity:"+identity +"\tname:"+name+"\tage:"+age+"\tsex:"+sex;

}
public static void main(String args[]){
System.out.println(new Person());
}
}

当然还有单例模式,那些就先不讨论了。加入我们是Person要生产一个Person那只能用new Person,等这个person出来后,可以命名了。而上帝可以。。。这个不讨论了,本人是无神论者,拿来举个例子。
继承就是你继承父类的所有非私有属性,比如你父类是男的,但子类可以是女的。但是父类的某些性格,长相你可以继承,哈。。
多态要了解他的好处,在前面是不大可能,要学到后面才知道。
以上是面向对象的部分思想。
面向过程就好理解一些了,你可以理解为顺序执行过程。考虑的主要是过程执行,代码怎么一步一步执行。


--------------------编程问答-------------------- 面向對象是對面向過程開發的深化,使得開發過程減少不必要的連續思維的出現,解決了開發過程的分模塊開發。 --------------------编程问答-------------------- 请与面向过程作个对比。 --------------------编程问答-------------------- 面向对象 必须在实践中理解 初学看得再多 也无法真正理解 封装继承 合成聚合 ……这些感念 --------------------编程问答-------------------- 万事万物皆对象 --------------------编程问答-------------------- 面向对象:你身边的任何东西就可以举例子:电脑,假如你普通的用户,你仅仅知道如何操作就可以了,知道它的功能,他的每个按键的用处,至于机箱里面的没有必要知道。你使用电脑就是面向一个实实在在的对象。面向过程:你必需考虑在按下这个按钮会引发那些程序的执行,并且要知道,合适使用,何时关闭,如何正确的按下每个按钮,这一切的前提,仿佛这个电脑就是自己造的一样,你的清楚他的每个功能实现细节。(希望有帮助)
--------------------编程问答-------------------- 如果用现有概念答复你,你肯定不乐意。

因为楼上各位已经说了。 --------------------编程问答-------------------- --------------------编程问答-------------------- 简单的说
面向过程就是把问题分解成一系列步骤(过程),一个一个步骤(过程)串联起来达到解决问题的目的
面向对象就是把问题分解成一系列对象的行为,一个一个对象行为互相协作来达到解决问题的目的 --------------------编程问答-------------------- 建议楼主看看设计模式,应该会对面向对象有更深刻的理解
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,