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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© Richard926 中级黑马   /  2015-4-13 22:25  /  970 人查看  /  15 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

下面这个程序是练习static关键字的,主要是体现了static关键字的“可以被所有对象共享”这一特性。
class StaticDeno
{
        public static void main(String[] args)
        {
                Static s1 = new Static("张三",45,"中国");
                Static s2 = new Static("李四",40);
                Static s3 = new Static("王五",50);
                s1.show();
                s2.show();
                s3.show();
        }
}

class Static
{
        private String name;
        private int age;
        private static String country;

        public Static(){}
        public Static(String name,int age)
        {
                this.name = name;
                this.age = age;
        }
        public Static(String name,int age,String country)
        {
                this.name = name;
                this.age = age;
                this.country = country;
        }
        public void show()
        {
                System.out.println(name+"***"+age+"***"+country);
        }
}
输出的结果为:



15 个回复

倒序浏览
顶!!!!!!!!!!!!!!!!!!
回复 使用道具 举报
这个编译就有问题啊,show()方法不是静态的,里面的name属性是静态的,这样会报“无法在非静态上下文中调用静态的变量”异常。

点评

兄弟,记反了  发表于 2015-4-14 00:17
回复 使用道具 举报
静心明德 发表于 2015-4-13 22:43
这个编译就有问题啊,show()方法不是静态的,里面的name属性是静态的,这样会报“无法在非静态上下文中调用 ...

没有问题啊D:\
回复 使用道具 举报

呵呵,回复了就记起来了,不好意思。
回复 使用道具 举报
加油加油
回复 使用道具 举报
yearn 中级黑马 2015-4-14 09:19:03
7#
不错,我也去试试!
回复 使用道具 举报
Zack 中级黑马 2015-4-14 10:47:50
8#
问一下 不是说static关键字必须在定义时赋值吗 这样定义country静态变量为什么可以编译通过
回复 使用道具 举报
顶!!!!
回复 使用道具 举报
又是一个初始化顺序的问题,为感觉这个问题问的就是构造方法先初始化还是静态代码先初始化的问题;
回复 使用道具 举报
静心明德 发表于 2015-4-13 22:43
这个编译就有问题啊,show()方法不是静态的,里面的name属性是静态的,这样会报“无法在非静态上下文中调用 ...

静态方法只能访问静态变量,非静态方法可以访问静态变量。是不是这样?
回复 使用道具 举报
你在staticDemo类中创建Static实例s1时传了“中国”,因为Country是静态的可以共享,s2、s3的country值还是中国,虽然可以运行,原则上不知道程序能不能这样写。如果清楚的话可以给我讲讲吗?不是很懂。。。(static可以这样传值吗?)
回复 使用道具 举报
静心明德 发表于 2015-4-14 00:31
呵呵,回复了就记起来了,不好意思。

没事没事的
回复 使用道具 举报
mono 中级黑马 2015-4-15 09:43:06
14#
赞一个、
回复 使用道具 举报
应该没有问题吧
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马