接触过
编程语言的人都应该听过面向对象和面向过程这两个术语,那么面向对象和面向过程到底有什么区别呢?今天就让我带领大家初步认识一下java这门编程语言。
众所周知,java是一种典型的面向对象的语言,而且深受编程爱好者的喜爱。面向过程就是将要实现的功能写成一个个函数,在需要时调用,进而达到程序设计要求,c语言就是如此;面向对象就是将问题按照一定的规则划分为一个个独立对象,每个对象实现一定的功能,通过对象之间的相互配合达到程序设计的要求。相对于面向过程而言,面向对象的实现更容易,而且代码重复利用率高,当程序功能需要改变时,只需改动几个类即可;当然也有缺点,就是程序的执行效率较低,大概只有c语言的1/3。
面向对象编程有三个特点:封装性,继承性,多态性。
封装性:将对象的属性和行为封装在类里面,类对用户实现细节隐藏,用户只需要知道它的功能,不需要知道它的具体实现。提高程序的可维护性。
比如一个汉诺塔问题,用户只需要输入盘子的数目,便可得到移动的次数,而不需要知道程序是怎么实现那个的。
继承性:有些类与类之间有一种关系,那就是继承。继承就是利用对象之间特定的公共属性和方法来实现代码的重复利用。充分减少了代码冗余。比如:
public void Animal{
private String fur;
private int age;
}
public void dog extends Animal{
}
//子类dog就继承了父类Animal中的属性 fur和age,不需要再在子类中写
多态性:同一个属性或方法在基类和子类中具有不同的语义。同一个方法名可以根据参数个数或类型的不同来选择调用哪一个,从而扩大了对象的适应性。
public void Animal{
private String fur;
private int age;
public void voic(Class Animal ){
System.out.println("动物叫声");
)
}
public void dog extends Animal{
public void voic(Class Animal ){
System.out.println("狗叫声");
)
}
java编译器会根据参数类型是dog还是animal来调用相应的voice();即同一个voice()方法有不同的语义