51Testing软件测试论坛

标题: [连载] 精通RFT-03: Java中的面向对象: 类与实例 [打印本页]

作者: dennyqiang    时间: 2010-3-13 23:56
标题: [连载] 精通RFT-03: Java中的面向对象: 类与实例
关于面向对象的概念与实现,类似的教材数不胜数,笔者原计划在面向对象这一块就把面向对象一些基本概念讲解一下也就可以了,但是后来仔细一想,其实做测试的朋友可能有一些对程序设计特别是面向对象方面可能不一定理解得很好或者经验很丰富。再加上作为一个连载教程,也应该保持一个教程的完整性,所以我也不得不再罗索一下了,把面向对象在Java中的应用再介绍一下,希望能从不同的角度用一些简单的语言来介绍面向对象。
本连载教程将只介绍Java中的面向对象的基础,主要包括RFT-02教程中的一些概念和实现手段,将不再介绍Java基本语法等,如有需要的朋友可在网上翻翻,另外Think in Java这本书也很经典,虽说经典,但是其面向的读者并非初学者,而是对面向对象已经理解,想深入理解的读者群。
说心里话,要学好一门自动化测试工具,对该工具的语言特性要理解得非常透彻才行,否则难有提高。如果学习RFT,我们对Java的理解不够,那么很多地方将很难理解是为什么,特别是在构建自动化测试框架时,更是一个短板。废话少说,先从最基本的类与实例,方法与属性开始Java的面向对象之旅。
先看看这个类的现实模型:类的本质就是一类事物,我们使用"门"来作为我们的类,门有哪些方法呢?"开"和"关",门有哪些属性呢?"高"和"宽",好,那么我们现在就来定义这样的一个类:
public class Door {

private int height; // 定义属性height为私有变量类型, 仅在Door类中可调用
public int width; // 定义属性width为公用变量类型, 可在Door的实例中调用

// 定义方法openDoor
public void openDoor() {
    System.out.println("Door is open now ...");
}

// 定义方法closeDoor
public void closeDoor() {
    System.out.println("Door is open now ...");
}

// 经典的setter和getter方法
public void setHeight(int height) {
    // 本处的this.height为类的私有变量height, 等号后的height为参数height的值
    this.height = height;
}

// getter方法, 用于返回值
public int getHeight() {
    return this.height;
}
}
光有门这个类还不行,类只是一类事物的统称,"门"这类事物并不能真正实现"开"和"关"的动作,只有具体的"门"才能实现"开"和"关"的动作,才有真实的"高"和"宽"的属性,所以我们需要将这个类实例化,"实例"就是一个看得见摸得着的"门",比如我家的"门"。现在我们就用我家的"门"来实例化刚才定义的"门"这个类:
public class MyDoor {

   public static void main(String[] args) {
    Door myDoor = new Door();
    myDoor.openDoor();
    myDoor.closeDoor();
    myDoor.setHeight(1000);
    System.out.println("Height is: " + myDoor.getHeight());

    // 由于在类Door中将width定义为公用变量,所以可在此直接调用该变量
    // 下面两句代码其实实现了跟setHeight()和getHeight()相同的功能
    myDoor.width = 500;
    System.out.println("Width is: " + myDoor.width);
    }
}

(声明:本文版权归作者个人所有,如需转载,请注明出处,如有需要,请联系QQ: 15903523 (强子))

[ 本帖最后由 dennyqiang 于 2010-3-23 23:48 编辑 ]
作者: anyfrecom    时间: 2010-3-15 10:08
强哥加油、小弟顶你!!!!!!!!!!!!!!!!1
作者: dreadlands    时间: 2010-3-18 20:53
期待下一连载
作者: helen56    时间: 2010-3-24 11:29
很好 终于明白 set,get的用法了
作者: mr_tank    时间: 2010-4-17 16:51
呵呵,面向对象被您说的那么容易理解了!顶
作者: yuba111    时间: 2010-4-19 09:54
呵呵 JAVA 编程培训哇?
作者: hwm831002    时间: 2010-11-25 15:35
回复 1# dennyqiang


    简练易懂,再顶
作者: lcclovezhp    时间: 2011-3-17 15:51
期待下一连载
作者: pritise2004    时间: 2011-5-8 20:18
不断温习哦
作者: Rockets    时间: 2011-5-26 18:16
God job!
作者: pensen19    时间: 2011-6-5 08:26
好东西,通俗易懂,很久没有碰开发的东西了,正好温习一下!
作者: zwj51    时间: 2011-12-7 15:59
开发零基础的路过,表示就喜欢这样生动的讲代码,受用
作者: mr_tank    时间: 2012-1-5 14:22
有没有继续连载下去啊?兄弟!
作者: 8346996    时间: 2012-10-19 15:46
讲的很好啊




欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/) Powered by Discuz! X3.2