扯一扯面向对象

会写这篇文章,也是因为一个商院小伙子问我的,于是就写了此文,希望他能明白。(正经脸)
要想理解面向对象,首先得知道什么是对象。有句话你也许曾听过,那就是...

万物皆对象

先举个简单的例子,比如你早上出门到学校要做一系列的准备。用面向过程的语言编写的话就是...

void main(){
    getUp();//起床
    brushTeeth();//刷牙
    haveBreakfast();//吃早饭
}

而如果用面向对象的思想来写代码。

import Human;//从某个地方导入人类这个类
主函数{
    //从人类这个类中具体化一个人比如小李
    Human XiaoLi = new Human();
    XiaoLi.getUp();
    XiaoLi.brushTeeth();
    XiaoLi.haveBreakfast();
}

从上面的代码可能还看不出面向对象的优越性,所以下面从面向对象的三大特性来看。

1.继承

所谓继承,就是子类继承父类的属性和方法。就比如说我们要描述小李会写论文,但不是所有的人类都会写论文,那我们怎么生成小李这个对象呢?我们可以再创一个新的类。
但再重新写一个类实在太麻烦了,所有就有了继承。我们让大学生这个类,继承人类的所有特性,然后在其基础上再增加写论文这个方法就ok了。

public class Students extends Human{
     增加一个写论文的方法;
}
主函数{
    Students XiaoLi = new Students();
    XiaoLi.写论文();
}

2.封装

所谓封装,是为了保护对象私有属性不被乱改。举个例子,现在我们模拟银行ATM机。你有一张卡,卡上的money就是私有属性。私有属性就是这个属性只能被类内部的方法所修改,而不能在外面直接被调用。就像一个装好的黑匣子一样,你不能对里面的一些东西进行操作,只能玩玩盒子外面的开关。而在面向对象语言里,private 关键字定义的变量或方法就是盒子里的方法,public关键字定义的就是盒子外面的开关。

public class CreditCard{
  private money = 1;
  public storeMoney(){
    存钱;
  }

}
主函数{
  CreditCard XiaoLiCard = new CreditCard();
  XiaoLiCard.money = 1000;//这个操作是错误的!!
  XiaoLiCard.storeMoney();//这个操作可以
}

3.多态

所谓多态,就是一个对象具有多种特征,在特定的情况选择你要表达的特征就好。人类分为男人和女人,男人和女人有着不同的特征。
这就用到了多态的特性。

public class man extends Human{
  ........
}
public class woman extends Human{
  .....
}
主函数{
  Human XiaoLi = new man();
  Human XiaoMei = new woman();
}

猜你喜欢

转载自www.cnblogs.com/iskindar/p/9863136.html