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

© 18334705181 高级黑马   /  2014-8-7 16:58  /  1564 人查看  /  11 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

静态代码块是用来初始化类的,如果将它私有化后,结果会怎么么样呢?

11 个回复

倒序浏览
静态代码块是对象的静态代码块。即使私有,也还是可以被自身对象初始化时调用啊。
回复 使用道具 举报 1 0
静态代码块应该是给类进行初始化的吧,不管怎么样,类一运行就会给类初始化。
回复 使用道具 举报
不懂的屌丝路过:lol
回复 使用道具 举报
怎么进行静态代码块的私有化?
回复 使用道具 举报
静态代码块随着类的加载就已经初始化了。也就是说在本类中可以任意调用。加入private的话,可以不让其他类访问。这大概就是作用吧
回复 使用道具 举报
这个私有有意义么。。。
回复 使用道具 举报
感觉是没什么意义,本来就是用来初始化用的,就算没有自己传值吧
回复 使用道具 举报
静态代码块用于初始化静态类属性(静态属性)
都存在于代码区
当类加载时首先执行 静态属性 再执行静态代码块 给静态属性赋值 (静态属性必须在静态代码块的前头)
而当内加载时  静态属性和静态代码块 只加载一次
而静态代码块本来就没有提供向外部的访问形式  所以加private 和 不加  private 没有实质区别
静态属性只能以类名去调用
这样静态属性就形成了数据的共享
回复 使用道具 举报
不能私有化
回复 使用道具 举报
如果私有化的话,类会成功加载么?求解答
回复 使用道具 举报
class  Deno
{        private static
        {
                String a;
        }
        public static void main(String[] args)
        {
                System.out.println("Hello World!");
        }
}
这样写的话会出现一下错误
F:\java\java two phase>javac Demotwo.java
Demotwo.java:3: 错误: 非法的类型开始
        {
        ^
Demotwo.java:3: 错误: 需要';'
        {
         ^
Demotwo.java:4: 错误: 需要<标识符>
                String a;
                        ^
Demotwo.java:6: 错误: 需要class, interface或enum
        public static void main(String[] args)
                      ^
Demotwo.java:9: 错误: 需要class, interface或enum
        }
        ^
5 个错误
纠正的话就不会有这样的错误l了;如下:
class  Deno
{         static
        {
                String a;
        }
        public static void main(String[] args)
        {
                System.out.println("Hello World!");
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马