前言
记住三点:
一、Java 中被 static 修饰的成员称为静态成员或类成员
二、它属于整个类所有,而不是某个对象所有,即被类的所有对象共享。
三、静态成员可以使用类名直接访问,也可以使用对象名进行访问
1.贴一个统计字符串的小程序,举例说明如何使用
public class CalcStr {
private static int num = 0;
public static void getStatics(String str) {
if (!str.equals("calc") && !str.equals("reset")) { //统计输入字符串数量
if (str.length() > 0) {
num += 1;
}
}
if (str.equals("calc")) { //打印已统计的字符串数量
System.out.println("排除无效输入,总共输入字符串数量:"+num);
}
if (str.equals("reset")) { //复位,重新统计
num = 0;
}
}
}
2.写一个从键盘循环输入的测试代码
import java.util.Scanner;
public class InFromBoard {
public static void main(String[] o) {
Scanner sc = new Scanner(System.in);
String str = sc.next();
while (!str.equals("end")) {
System.out.println("输入字符串为:"+str);
CalcStr.getStatics(str);
str = sc.next();
}
}
}
3.测试结果(控制台打印输出)
a
输入字符串为:a
b
输入字符串为:b
c
输入字符串为:c
calc
输入字符串为:calc
排除无效输入,总共输入字符串数量:3
reset
输入字符串为:reset
calc
输入字符串为:calc
排除无效输入,总共输入字符串数量:0
d
输入字符串为:d
e
输入字符串为:e
calc
输入字符串为:calc
排除无效输入,总共输入字符串数量:2
4.静态变量归属于整个类举例
public class MovieCenter {
private static int personNum;
public void setPersonNum(int personNum) {
MovieCenter.personNum = personNum;
}
public int getPersonNum() {
return personNum;
}
}
// 下面是测试 personNum 静态变量如何归属于整个类的
public class Main {
public static void main(String[] args) {
MovieCenter movieCenter_1 = new MovieCenter();
movieCenter_1.setPersonNum(18);
MovieCenter movieCenter_2 = new MovieCenter();
System.out.println(movieCenter_2.getPersonNum());
}
}
输出:
18
movieCenter_1 对象的 personNum 被赋值过,但是 movieCenter_2 对象并没有赋值;但是获取movieCenter_2 对象的personNum值时发现跟movieCenter_1共用。
5.结语
静态变量在生产的时候慎用,一旦出错不好排查原因;静态方法可在工具类包中使用提高调用效率。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/16630.html