面向过程的编程思想就是在面对问题的时候使用计算机能够理解的逻辑来描述和表达待解决的问题以及具体的求解过程。例如写一个1+1等于2的程序,你会自然的想到输入两个变量,每个变量的值为1,然后对这两个变量求和,这就是面向过程的编程思想。
public static void main(String[] args) {
int a=1;
int b=1;
int result=a+b;
System.out.println(result);
}
好的代码要达到可维护,可复用,可扩展以及灵活性好的四个特点。可维护就是需要修改的时候,只需要修改变动的那一部分,使得修改达到最小;可复用指代码不仅在写的地方使用,在别处依然可以调用这段代码;可扩展指当后来者想要扩展功能的时候不需要在之前代码修改的基础上进行修改。灵活性好,例如在代码实现功能方面,不仅实现了需求实现代码,还能够随时满足其它功能的扩展。
那么如何实现上述四个特点呢,面向对象编程则能很好的实现。为什么面向对象编程能够实现上述四个特点呢,因为面向对象编程本身具有的三个特点:封装,继承,多态。
封装:就是把对象的属性和行为(数据)结合为一个独立的整体,并尽可能隐藏对象的内部实现细节,就是把不想告诉或者不该告诉别人的东西隐藏起来,把可以告诉别人的公开,别人只能用我提供的功能实现需求,而不知道是如何实现的。增加安全性
继承:是面向对象最显著的一个特性,继承是从已有的类中派生出新的类称为子类,子类继承父类的数据属性和行为,并能根据自己的需求扩展出新的行为,提高了代码的复用性。
多态:指允许不同的对象对同一消息做出相应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式(发送消息就是函数调用)。封装和继承几乎都是为多态而准备的,在执行期间判断引用对象的实际类型,根据其实际的类型调用其相应的方法。
如何使用上述思想编程呢,还是上面那个例子,1+1等于2还可以这么写:把加法当作一种对象,那么很自然的可以想到减法,除法,和乘法,他们都具有两个操作数以及进行操作的共同点,因此可以写一个共同的类,这个类里包含了这些操作的共同的部分,再写一个加法就继承这个共同的类,然后实现加法部分就可以完成我们需要的。
public abstract class Operation {
public abstract int operation(int a,int b);
}
public class Add extends Operation {
@Override
public int operation(int a, int b) {
return add(a, b);
}
private int add(int a, int b) {
return a + b;
}
}
public static void main(String[] args) {
Operation add = new Add;
System.out.println(add.operation(1, 1));
}
这篇文章主要展示了面向编程的思想方法,比较简单明了,如果想要了解更好的编程经验请看下一篇博客。
参考书籍:大话设计模式