A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© bulala 中级黑马   /  2015-12-14 19:52  /  877 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

要从两方面下手:因为静态修饰的内容有成员变量和成员函数。

什么时候定义静态变量(类变量)呢?
当对象中出现共享数据时,该数据被静态所修饰。对象中特有的数据要定义成非静态存在于堆内存中。

什么时候定义静态函数呢?
当功能内部没有访问到非静态数据(对象的特有数据),那么该功能可以定义成静态的。

class Person
{
        String name;//成员变量,实例变量

        static String country = "CN";//静态的成员变量,类变量

        public void show(){
                System.out.println("name="+name+",country="+country);
        }
}

class StaticDemo
{
        public static void main(String[] args)
        {
                Person p1 = new Person();
                /*
                p1.name = "zhangsan";

                p1.show();

                Person p2 = new Person();
       
                p2.name = "lisi";

                p2.show();
                */

                System.out.println(p1.country);

                System.out.println(Person.country);
        }
}


3 个回复

倒序浏览
{:2_32:}{:2_33:}{:2_32:}{:2_32:}!!!!!!
回复 使用道具 举报
Person类中的name是每个对象都有的属性,而且每个对象都不一样,因此不能定义为静态变量
回复 使用道具 举报
可以  顶一下
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马