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