类:
package com.gouzao; public class Person3 { int id; static int sid; public static void main(String[] args) { Person3 ps1 = new Person3(); ps1.id = 10; ps1.sid = 10; Person3 ps2 = new Person3(); ps2.id = 20; ps2.sid = 20; Person3 ps3 = new Person3(); ps3.id = 30; ps3.sid = 30; System.out.println(ps1.id); System.out.println(ps2.id); System.out.println(ps3.id); System.out.println(ps1.sid); System.out.println(ps2.sid); System.out.println(ps3.sid); System.out.println(Person3.sid); } }
运行:
内存分析:
一般官方的推荐访问方式:可以通过类名.属性名的方式去访问:
Person3.sid = 100;
System.out.println(Person3.sid);
static 修饰属性总结:
(1) 在类加载的时候一起加载入方法区中的静态域中
(2) 先于对象存在
(3)访问方式:对象名.属性名 类名.属性名(推荐)
static修饰属性的应用场景:某些特定的数据想要在内存中共享,只有一块--》这个情况下就可以用static修饰
如:
package com.gouzao; public class School { String name; int age; static String school; public static void main(String[] args) { school = "java学习"; //school 利用static修饰相当于公用 School sc = new School(); sc.name = "小明"; sc.age = 19; School sc1 = new School(); sc1.name = "小红"; sc1.age = 20; System.out.println(sc.name+","+sc.age+","+sc.school); } }
运行:
属性:
静态属性(类变量)
非静态属性(实例变量)
原文:https://www.cnblogs.com/159357zzx/p/14452815.html