首页 > 代码库 > java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类Feild)

java中可以让实例改变了类Feild(java这么干就是一个错误,你看到了就当做是类在该修改或这个类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);
        }
}

运行:

[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” 博客,谢绝转载!