
问题:求一个长方形的周长和面积
请问这个程序除了思想上的不同之外,具体都有哪些不同,通过程序能够体现出面向对象的哪些优点,请高手指点,多谢了!
面向过程的程序设计代码:
classRectangle{//定义了一个类,包含了求长方形周长和面积的方法
staticintperimeter(intlength,intwidth)//静态方法,可以直接调用
{ return2*(length+width);}
staticintarea(intlength,intwidth)
{ returnlength*width;}
publicstaticvoidmain(Stringargs[]){
System.out.println(“perimeter=”+Rectangle.perimeter(5,4));
System.out.println(“area=”+Rectangle.area(5,4));
}
 面向对象的程序设计代码
classRectangle{
intl,w;//定义两个成员变量,分别表示长方形的长和宽

intperimeter(){return2*(l+w);}
intarea(){returnl*w;}
publicstaticvoidmain(Stringargs[]){
Rectanglerect1=newRectangle();
rect1.l=10;rect1.w=5;
System.out.println(“perimeterofrect1=”+rect1.perimeter());
System.out.println(“areaofrect1=”+rect1.area());
}
}
面向对象的好处就在于封装、继承、多态、抽象等特性。
就看楼主的两个程序,面向过程在求一个Rectangle的周长和面积时,每次都要传递参数;而length、width本来就是一个rectangle的两个要素,显然封装在一个类中是一个很自然的想法,你也不用每次求周长和面积时都要传参了。
当你用到虚函数时他有更大好处,等等。
你应该多接触多领悟。面向对象与面向过程区别
谢谢前面这位兄台的帮助,可是能否在说的详细一些,我想知道通过这个程序能对比较面向对象编程和面向过程编程起到什么样的作用?
另外,Java中有虚函数么?他是用来做什么的呢?

多谢!
Java中有抽象类和接口这些的,应该是用来实现多态性的
面向对象与面向过程最重要的是编程思想不同,在Java中,万事万物皆对象。
我的意见就是说,oo的思想是从过程思想中演化过来的
没有过程化的编程就没有oo今天的成就,本来oo中就蕴含了过程化的思想
每一个所谓的封装体里面,都是一个小的过程
oo的出现,无非是更强调程序间的无关性能,并没有从本质上给予程序设计的革命
就像是语言的出现这样划时代的标志。
所以,没有必要将他们分的过于清楚,他们本来就是一体的,就是向着更高,更优的方向
不断的发展着的,是前进的,不是互不相容的。
只要你能够掌握精髓,他们都是你的一部分。面向对象与面向过程区别
最后,祝你成功
多态就是变形金刚,可以变爷爷,变父亲,或学一套武术,你就可以变师傅。
你不用知道它是什么,只要它能变就行了。
上面这位兄弟说的有道理,可是现在小弟急用,您能解释一下吗,等待中.....
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-83730-1.html
这样躲避战乱的的女青年便有了和中国光棍们相知相恋组成家庭的机会