+ 首页>>技能>>快速科普>>内容

技能[测试人也Code]OOP核心思想和概念(二)492次围观

接着上一篇[测试人也Code]OOP核心思想和概念(一),上一篇讲到了接口,我们可以看一下java中接口是如何定义的。

//表示所有能拍照的工具类型
public interface Photographable{
  //拍照
  public void takePhoto();//默认为abstract(抽象)类型
  public abstract void test();
}

接口对其成员变量和方法做了很多限制,接口的特征归纳如下:

  • 接口中的成员变量默认都是public、static、final类型的,必须被显式初始化
  • 接口中的方法默认都是public、abstract类型的
  • 接口中只能包含public、static、final类型的成员变量和public、abstract类型的成员方法
  • 接口没有构造方法,不能被实例化
  • 一个接口不能实现另一个接口
  • 接口必须通过类来实现它的抽象方法,类实现接口的关键字为implements
  • 与子类继承抽象父类相似,当类实现了某个接口时,它必须实现接口中所有的抽象方法,否则这个类必须被定义为抽象类
  • 不允许创建接口的实例,但允许定义接口类型的引用变量,该变量引用实现了这个接口的类的实例
  • 一个类只能继承一个直接父类,但能实现多个接口

5、封装、透明

封装是指隐藏对象的属性和实现细节,仅仅对外公开接口。封装具有以下原则:

  • 把尽可能多的东西藏起来,对外提供简捷的接口
  • 把所有的属性藏起来

以下代码解释:

//半自动洗衣机洗衣服的过程
HalfAutoWasher washer = new HalfAutoWasher();
//开始洗衣服
washer.on();
//洗涤
washer.inputWater();//放水
washer.setTimer(5);//定时5分钟
washer.wash();//洗涤
washer.dischargeWater();//排水


//全自动洗衣机洗衣服的过程
AutoWasher w = new AutoWasher();
//开始洗衣服
w.on();
w.setMode("标准模式");//设置洗衣模式
w.start();

6、抽象

抽象是指从特定角度出发的,从已经存在的一些事物中抽取我们所关注的特性,形成一个新的事物的思维过程。抽象体现在一下方面:

  • 从问题领域的事物到软件模型中对象的抽象
  • 从对象到类的抽象
  • 从子类到父类的抽象

7、继承、扩展、覆盖

在父类和子类之间同时存在着继承和扩展的关系。子类继承了父类的属性和方法,同时子类中还可以扩展出新的属性和方法,并且还可以覆盖父类中方法的实现方式。覆盖也是术语,是指在子类中重新实现父类中的方法。

8、组合

组合是一种用多个简单子系统来组装出复杂系统的有效手段。面向对象范畴中的组合有一下优点:

  • 在软件分析和设计阶段,简化为复杂系统建立对象模型的过程
  • 在软件编程阶段,简化创建复杂系统的过程
  • 向使用者隐藏系统的复杂性
  • 提高程序代码的可重用性

9、多态、动态绑定

多态是指当系统A访问系统B的服务时,系统B可以通过多种实现方式来提供服务,而这一切对系统A是透明的。
请看程序清单:

public class Shaver{
  private Power power;
  public Shaver(){}
  
  public Shaver (Power power){
    this.power = power;
  }

  public void setPower(Power power){
    this.power = power;
  }

  public void shave(){
    power.provifrPower();
  }
}

OOP核心思想和概念文章全部介绍完毕。

+ 猜你喜欢...

===== 关于 DiggerPlus =====
DiggerPlus是国内新锐测试人垂直内容博客,专注于挖掘测试工具,普及测试技术,专注于测试人能力提升,博客上线后就受到广大测试人的热烈追捧;此外,DiggerPlus深度整合评测资源,揭秘科技数据和真相,让读者更懂科技,更好地把玩科技。 我们始终保持"独立,客观,严谨,优秀"的优良作风,努力为读者带来源源不断的优质内容。想访问更多酷毙的测试人网站?赶紧来DiggerPlus测试人网址导航看看吧!

===== DiggerPlus Team =====
DiggerPlus Team是DiggerPlus官方发起的团队,这是一群热爱科技,热爱测试,喜欢深度挖掘的热血测试人,他们是评测师,测试专家。 我们欢迎优秀的测试人加入DiggerPlus Team。 加入DiggerPlus,可以成为我们的认证Dper,认证Dper拥有DiggerPlus独一无二的专栏并得到个人展示。

===== DiggerPlus 官方读者群 =====
DiggerPlus官方读者群(一)

+ 关于本文作者

我也很想让世界变得更美好,可是上帝却不开放源代码。

的专栏 | 专栏作者 | 访问Kiven的主页

+ 发表评论

开源中国精彩推送

基于开源中国OpenAPI开发
  • Copyright © 2014 DiggerPlus. 86 queries in 1.377 seconds.
    使用合作网站账号快速登录,更多精彩等着您: 开源中国