首页 > 代码库 > java(2)之前往对象村
java(2)之前往对象村
这次说一说面向对象与面向过程的区别以及面向对象的优点。
听一听用面向过程思想编程的程序员写程序时的心声:What are the things this program has to do? What procedures do we need?
啊哈,作为一名合格的准java程序员的我的想法是:What are the things in this program......who are the key players?
从中,可以形象的体现出面向对象与面向过程的区别。面向过程写程序时,关心的是程序按什么顺序做哪些事情,而面向对象的程序是关注程序中有哪些事物(正规叫法是类)。
比如,项目经理要给你个需求,要求写个图形(三角形,正方向,圆形)旋转同时播放音乐(mp3格式)的程序(你在播放器中常看到的,播放音乐时,歌手的头像在转动)。
作为一个资深的C语言玩家的小码同学,稍加思索就找到啦这个程序的两个重要过程:图形旋转,播放音乐。so his program is:
rotate(shapeNum) {
// make the shape rotate 360º
}
playSound(shapeNum) {
// use shapeNum to lookup which
// AIF sound to play, and play it
}
我思考很久,也找到了其中的类:图形。(哈哈)
继续按着面向对象的思想思索,这个类有什么属性呢?需求里没提吧。类的行为呢?有旋转,和放音乐的行为。嗯,分析完就写程序啦。
class cirlce {
ratate() {
//code to ratate a circle
}
playSound() {
//code to ratate a circle
}
}
class Square {
ratate() {
//code to ratate a circle
}
playSound() {
//code to ratate a circle
}
现在项目经理说需求有变
面向对象三大特性中的:继承,多态,让代码的复用率提高了老多。
面向对象优点非常非常的多,自己可以去深深体验一下,编程学习中自己尝试是非常非常重要的。
一个小建议:
If you’re stuck on an exercise, try talking about it out loud. Speaking (and hearing) activates a different part of your brain. Although it works best if you have another person to discuss it with, pets work too. That’s how our dog learned polymorphism.
java(2)之前往对象村