软件测试之this和static关键字

一、this

(1)代表当前对象的引用。使用的时候,谁调用方法,this就代表谁。

(2)什么时候使用this呢?

A:当局部变量和成员变量重名的时候,可以用this进行区分。

B:this调用成员方法

C:构造函数中使用this

**this() 必须放在第一行。

同下面的道理:

Person(String name){

this.name = name;

}

Person(String name,int age){

this(“张三”);

this.name = name;

this.age = age;

}

Person p = new Person(“lisi”,20);

二、static关键字

(1)静态的意思。可以修饰类的成员(成员变量和成员方法);

(2)静态成员的特点:

A:随着类的加载而加载,随着类的消失而消失,生命周期最长。

B:优先于对象存在。

C:被所有的对象所共享。

D:比非静态成员多了一种访问方式。可以通过类名直接调用。建议用类名.调用

(3)什么时候需要使用static修饰呢?

当类中的成员需要被所有对象共享时,用static修饰。不需要被共享时,就不用static修饰。

简单说:共性用static修饰,特性不用static修饰。

(4)注意事项

A:静态方法只能访问静态成员的。

B:静态方法中不能使用this,super关键字。

C:main是静态的。

**格式如下:

public static void main(String[] args){//new String[0]

}

***由于它被jvm调用,所以权限要足够大,所以用public权限修饰符。

***为了jvm可以不用创建对象直接调用它,所以用static修饰。

***void jvm不需要任何返回。但是方法体结尾默认有return;

***main jvm只认识这个名字。

***String[] 有可能需要传入参数。

***args 字符串数组的名字,只要符合标识符的命名规则可以随便起

面试题

public class Test{

private static int i=1;

public int getNext() {

return i++;

}

public static void main(String[]args) {

Test test = new Test();

Test testObject = new Test();

test.getNext();

testObject.getNext();

test.getNext();

System.out.println(testObject.getNext());

}

}

对于使用static关键字修饰的变量来说,该变量是属于类本身的,不属于特定的某个类对象。因此new出的两个对象test和testObject是对同一个变量i进行的操作。对于i++来说,是先引用再自加;对于++i来说是先自加,再引用。程序段中调用了4次getNext()方法,根据先引用再自加的原则,最后打印出4。

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2018年7月15日
下一篇 2018年7月15日

相关推荐