?java中 类属性和对象属性的不同使用方法

2019年2月14日22:03:48 发表评论 1,022 views

类 变量 就是 static 修饰 的 变量, 它们 被 类 的 实例 所 共享, 就是说 一个 实例 改变 了 这个 值, 其他 的 实例 也会 受到影响; 成员 变量 则是 实例 所 私有 的, 只有 实例 本身 可以 改变 它的 值。

 




/**
 * Created by xabcd on 2019/2/14.
 */
public class Test
{
    static String a = "string-a";
    static String b;
    String c = "string-c";
    String d;
    static {//此处不能改成public xxx()也不能用static xxx()
        printStatic("before static");
        b = "string-b";
        printStatic("after static");
    }
    public  static void printStatic(String title){
        System.out.println("--------"+title+"--------");
        System.out.println("a = \""+a+"\"");
        System.out.println("b=  \""+b+"\"");
    }
    public Test(){//此处不能改成static
        print("before constructor");
        d = "string-d";
        print("after contructor");
    }
    public void print(String title){
        System.out.println("--------"+title+"--------");
        System.out.println("a=\""+a+"\"");
        System.out.println("b=\""+b+"\"");
        System.out.println("c=\""+c+"\"");
        System.out.println("d=\""+d+"\"");
    }
    public static void main(String[] args){
        new Test();//一定要用new Test???
    }
}





结果:
--------before static--------
a = "string-a"
b= "null"
--------after static--------
a = "string-a"
b= "string-b"
--------before constructor--------
a="string-a"
b="string-b"
c="string-c"
d="null"
--------after contructor--------
a="string-a"
b="string-b"
c="string-c"
d="string-d"

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: