java温习*(4):static关键字的应用---静态方法

应用二:static + 成员方法 vs 成员方法

概念:

静态方法:用static修饰的成员方法,通常也称为静态方法、类方法、全局方法等。

非静态方法:没有被static修饰的成员方法,也称为叫做非静态方法、实例方法,对象方法等。

特征:

与静态成员相似,静态方法属于整个类的,由类所进行维护,优先于对象而存在,因此可以通过类名和对象名两种方式访问,也因此在静态方法中无法直接访问同类中的非静态成员。

示例:

定义国产车类CarDemo,分别包含静态属性firm,对象属性color、price ,静态方法display。
定义测试类CarTest,针对CarDemo进行测试
备注:此处由于展示篇幅有限,暂不考虑属性的访问权限

- 当display方法中分别访问类内静态及非静态成员时:

错误提示:不能在静态方法中应出现this关键字

- 当修改方法内部,去掉this

 

- 修订display方法体,成功访问类内静态及非静态方法

 

总结:

1、静态方法中可以通过“类名.成员”或“成员”的方式访问类内静态成员/静态方法

2、不允许直接访问本类中的非静态成员/非静态方法

3、可以通过实例化产生本类对象,通过“对象.成员”的方式访问类内非静态成员/非静态方法。

此时输出结果为:

总结:
1、类外可应用“类名.成员方法”或“对象名.成员方法”的方式访问非私有静态方法

2、应用“对象名.成员方法”时会出现警告,但不影响程序运行。

- 类中添加非静态方法run,并在其中访问类内静态成员

 

总结:

1、非静态方法可以通过“类名.成员法”或“成员”或“this.成员”的方式访问类内静态成员/静态方法

2、应用“this.静态成员/静态方法”时会出现警告,但不影响程序运行。

- 分别在run和display方法中添加静态局部变量test

错误提示:test前的static修饰符无效,即不允许在方法内定义静态变量。

 

当去掉局部变量前面的static,正常显示

总结:
不允许在方法内部定义静态局部变量。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章