对于"面向对象"不太理解!---求助!

Dog_1203 2008-01-07 03:37:06
不是很理解面向对象,谁能给我解释一下呢,
最好别象书里那么专业的讲,能用大白话给我讲讲么?
...全文
158 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhao_tk 2008-01-08
  • 打赏
  • 举报
回复
4 喽有才
约翰羊 2008-01-07
  • 打赏
  • 举报
回复
其实吧,这个可以先不用理解,
你就写程序,写一段时间以后,你自然就明白了.
现在怎么讲,你都不会理解的,
cangyue87 2008-01-07
  • 打赏
  • 举报
回复
随便写写,可能有很多错,表达这个意思而已.也希望楼主别介意~`


个人认为:
把具体的 "对象" 抽象为 "女孩" ..咳...我是说..抽象为"类",这是面向对象最基本的东西...

而对"对象"属性和方法的封装则是最常见的一个特性...
cangyue87 2008-01-07
  • 打赏
  • 举报
回复
对了

public class 相亲中的楼主


这个错了

class 相亲中的楼主

public类只能有一个...
cangyue87 2008-01-07
  • 打赏
  • 举报
回复
汗,这问题把我直接打蒙了....

假如楼主找对象,也就是说相亲,有两个候选人 女孩A 女孩B,那么面向过程的代码是这么写的:

相亲过程
{
外貌 女孩A的外貌;
外貌 女孩B的外貌;
言谈 女孩A的言谈;
言谈 女孩B的言谈;

void 相亲()
{
结论 = 相亲女孩A() + 相亲女孩B()
}

结论A 相亲女孩A()
{
印象1 = 浏览(女孩A的外貌);
印象2 = 聊天(女孩A的言谈);
结论A = 楼主的思考(印象1,印象2);
return 结论A;
}

结论B 相亲女孩B()
{
印象1 = 浏览(女孩B的外貌);
印象2 = 聊天(女孩B的言谈);
结论B = 楼主的思考(印象1,印象2);
return 结论B;
}

印象1 浏览(女孩的外貌)
{
... ...
}

印象2 询问(女孩的言谈)
{
... ...
}

结论 楼主的思考(印象1,印象2)
{
... ...
}

}


当相亲的对象很多的时候,就要过程就很长

更重要的是:楼主的情敌们也可以自由调用女孩子们的外貌和言谈.....而楼主的印象如何,结论是什么,大家都能看到。

然后楼主就怒了,灵机一动,把相亲的代码用 面向对象的方式编写


public class 女孩
{
private 外貌 女孩的外貌;
private 言谈 女孩的言谈;

public 外貌言谈的set和get方法(){}
}

public class 相亲中的楼主
{

private String 外貌印象;
private String 聊天印象;
private String 结论;
private static String 最后结论;

private String 相亲(女孩 相亲的对象)
{
外貌印象 = this.浏览( 相亲的对象.get外貌() );
聊天印象 = this.聊天( 相亲的对象.get言谈() );
结论 = this.楼主的思考( 外貌印象 , 聊天印象 );
}

private String 浏览(外貌)
{
... ...
}

private String 询问(言谈)
{
... ...
}

private String 楼主的思考(印象1,印象2)
{
... ...
}

public void 楼主相亲()
{
相亲中的楼主 过程A = new 相亲中的楼主();
女孩 女孩A = new 女孩();
过程A.结论 = 过程A.相亲(女孩A);

相亲中的楼主 过程B = new 相亲中的楼主();
女孩 女孩B = new 女孩();
过程B.结论 = 过程B.相亲(女孩B);

最后结论 = 过程A.结论 + 过程B.结论;
}
}


那么楼主的相亲,就是面向对象的,相亲了几个,长的怎么样,楼主怎么相亲的,结论如果,我们都不知道了。
也就是说,面向对象的第一个,也是最明显的特点:被封装了起来。

这里,女孩A 和 女孩A的共有属性被抽象成了 女孩 类,找对象的时候再被实例化为两个女孩;
而楼主相亲的内部过程也被封装.

女孩A和B如何,只有实例化它们的"相亲中的楼主"知道...
而楼主相亲如何,也只有实例化自己的"相亲中的楼主"知道...
约翰羊 2008-01-07
  • 打赏
  • 举报
回复
这个可不敢瞎说,帮顶.
richard627 2008-01-07
  • 打赏
  • 举报
回复
其实很好理解,首先你要知道什么是对象,
举个例子来说,比如说电视是个对象,电视有什么呢?
频道和图像等,我们能干什么呢可以选频道和调图像
我们可以把一个事物的属性和相关的方法组合到一起
就是一个对象,面向对象就编程是把我们所要解决的问题
分解成一个一个的对象,这些对象都有自己的属性和方法
彼此能够通信,问题的解决变成了这些个对象直接
相互合作来处理。模仿自然界中实在对象的处理方式,
这样做可以提到程序的复用性,便于维护和扩展

62,623

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧