发表日期: 2022-03-30 09:10:27 浏览次数:97
偃师网站优化

类变量赋值方法
public class StaticTest { private static int staticInt = 2; private int random = 2; public StaticTest() { staticInt++; random++; } public static void main(String[] args) { System.out.println("类变量与对象变量的值变化"); StaticTest test = new StaticTest(); System.out.println(" 实例1:staticInt:" + test.staticInt + "----random:" + test.random); StaticTest test2 = new StaticTest(); System.out.println(" 实例2:staticInt:" + test.staticInt + "----random:" + test.random); System.out.println("静态变量赋值"); System.out.println(" 静态语句块起作用:" + A.staticA); A a = new A(); System.out.println(" 构造器起作用:" + a.staticA); a.toChange(); System.out.println(" 静态方法1起作用:" + A.staticA); a.toChange2(); System.out.println(" 静态方法2起作用:" + A.staticA); System.out.println("常量赋值"); System.out.println(" 静态语句赋值:" + B.staticB); } } class A { public static String staticA ="A" ; //静态语句块修改值 static{ staticA ="A1"; } //构造器修改值 public A (){ staticA ="A2"; } //静态方法起作用 public static void toChange(){ staticA ="A3"; } public static void toChange2(){ staticA ="A4"; } } class B { public static final String staticB ; // 声明与赋值分离 static{ staticB ="B"; } }九仞
九仞
528***187@qq.com
5年前 (2017-06-14)无final修饰,声明时赋值,构造器中赋值,静态语句块或静态方法赋值
有final修饰,声明时赋值,声明与赋值分开可在静态语句块中赋值
Smiley
448***628@qq.com
29
类变量与实例变量的区别
类变量可在类中直接使用,实例变量需实例化后才能使用。
public class StaticTest { private static int staticInt = 2; private int random = 2; public static void main(String[] args) { System.out.println(staticInt); StaticTest test = new StaticTest(); System.out.println(test.random); } }Smiley
Smiley
448***628@qq.com
5年前 (2017-07-25)GGBOND
110***5829@qq.com
106
成员变量、局部变量、静态变量的区别
成员变量 | 局部变量 | 静态变量 | |
定义位置 | 在类中,方法外 | 方法中,或者方法的形式参数 | 在类中,方法外 |
初始化值 | 有默认初始化值 | 无,先定义,赋值后才能使用 | 有默认初始化值 |
调用方式 | 对象调用 | --- | 对象调用,类名调用 |
存储位置 | 堆中 | 栈中 | 方法区 |
生命周期 | 与对象共存亡 | 与方法共存亡 | 与类共存亡 |
别名 | 实例变量 |