class Person { public String name;//定义实例Feild public static int eyeNum;//定义类Feild } public class PersonTest { public static void main(String[] args) { System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); } }
运行:
[root@server254 java]# java PersonTest
Person的eyeNum的类Feild值是:0
类 Feild是和类共生存的,类在类Feild就在,实例Feild是和实例共生存的。
class Person { public String name;//定义实例Feild public static int eyeNum;//定义类Feild } public class PersonTest { public static void main(String[] args) { System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); Person p = new Person();//创建Person对象,赋给引用变量p p.name = "MAH"; //使用引用变量改变实例Feild p.eyeNum = 2;//使用引用变量改变类Feild System.out.println("p变量的name Feild是:" + p.name); System.out.println("p对象的eyeNum Feild是:" + p.eyeNum); System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); } }
执行:
[root@server254 java]# java PersonTest
Person的eyeNum的类Feild值是:0
p变量的name Feild是:MAH
p对象的eyeNum Feild是:2
Person的eyeNum的类Feild值是:2
可见我们通过p引用变量(实例),修改了类Feild
class Person { public String name;//定义实例Feild public static int eyeNum;//定义类Feild } public class PersonTest { public static void main(String[] args) { System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); Person p = new Person();//创建Person对象,赋给引用变量p p.name = "MAH"; //使用引用变量改变实例Feild p.eyeNum = 2;//使用引用变量改变类Feild System.out.println("p变量的name Feild是:" + p.name); System.out.println("p对象的eyeNum Feild是:" + p.eyeNum); System.out.println("Person的eyeNum的类Feild值是:" + Person.eyeNum); Person p2 = new Person(); System.out.println("p2对象的eyeNum类Feild值:" + p2.eyeNum); } }
[root@server254 java]# java PersonTest
^[[APerson的eyeNum的类Feild值是:0
p变量的name Feild是:MAH
p对象的eyeNum Feild是:2
Person的eyeNum的类Feild值是:2
p2对象的eyeNum类Feild值:2
java的变量包括:成员变量和局部变量
成员变量:类Feild(static修饰)和实例Feild(非static修饰)
局部变量:形参,方法局部变量和代码块局部变量
本文出自 “8176010” 博客,谢绝转载!
java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild),布布扣,bubuko.com
java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild)
原文地址:http://8186010.blog.51cto.com/8176010/1405548