static单词意思是静止的,在Java语言中表示静态的。
可以去修饰成员变量,成员方法,被static修饰的成员,称为类的成员(我们也可称为静态成员)。静态成员会随着类的加载而进入方法区内存(早于对象的创建),静态成员使用时可以直接用类名调用。而没有被static修饰的成员,称为实例成员,实例成员的使用必须要依赖对象取调用。
在成员变量前加上static修饰 即可
public class StaticTest {
public static String city = "合肥";
}
静态变量有2种访问方式
分别如下
public class Abc {
public static void main(String[] args) {
// 用类名去调用
System.out.println(StaticTest.city); // 合肥
// 用对象取调用
StaticTest st = new StaticTest();
System.out.println(st.city); // // 合肥
}
}
静态变量可以用来实现一些静态常量工具类,比如
// 静态常量工具类
public class QuestionType {
public static final String CHOICE = "选择题";
public static final String JUDGE = "判断题";
public static final String FILL = "填空题";
public static final String SHORT = "简答题";
}
之后,再给比如试题选择类型的时候,就可以直接使用类名.变量名的方式来给试题定义类型,而不用手动书写,导致有可能的书写错误。
使用static关键字修饰的方法就是静态方法,如下
public class Calc {
public static int max(int a, int b){
return a > b ? a : b;
}
}
静态方法在类加载到方法区后无需定义对象,直接用类名就可以调用。当然也可以使用对象调用,
public class Abc {
public static void main(String[] args) {
// 类名调用
System.out.println(Calc.max(5, 10)); // 10
// 对象调用
Calc math = new Calc();
System.out.println(math.max(100, 200)); // 200
}
}
为什么会是这样,因为从存在的时机来看静态成员先于非静态成员存在,因此后存在的可以访问先存在的成员(静态成员随着类加载而存在,非静态成员只有对象创建了才会存在)
对一个字符串进行加密(简单使用)
// StringUtils.java
public class StringUtils {
// 密码加密
public static String encryption(String pwd){
// 获取字符串中的每一个字符 String => char[]
char[] chars = pwd.toCharArray();
for (int i = 0; i < chars.length; i++) {
// 每个字符 +2
chars[i] = (char)(chars[i] + 2);
}
return new String(chars); // 返回新密码
}
}
// Abc.java
public class Abc {
public static void main(String[] args) {
String pwd = "xlj123abc";
// 使用静态方法工具类,对密码进行加密
String newPwd = StringUtils .encryption(pwd);
System.out.println(newPwd); // znl345cde
}
}
原文:https://www.cnblogs.com/xulinjun/p/14764302.html