黑马程序员技术交流社区
标题:
静态代码块的相关问题
[打印本页]
作者:
18334705181
时间:
2014-8-7 16:58
标题:
静态代码块的相关问题
静态代码块是用来初始化类的,如果将它私有化后,结果会怎么么样呢?
作者:
陶圣虎
时间:
2014-8-7 17:25
静态代码块是对象的静态代码块。即使私有,也还是可以被自身对象初始化时调用啊。
作者:
dingpanbo
时间:
2014-8-7 19:08
静态代码块应该是给类进行初始化的吧,不管怎么样,类一运行就会给类初始化。
作者:
黑马黄武先
时间:
2014-8-7 19:17
不懂的屌丝路过:lol
作者:
江苏孙浩
时间:
2014-8-7 19:30
怎么进行静态代码块的私有化?
作者:
张涛的狂怒
时间:
2014-8-7 19:55
静态代码块随着类的加载就已经初始化了。也就是说在本类中可以任意调用。加入private的话,可以不让其他类访问。这大概就是作用吧
作者:
star5603
时间:
2014-8-7 20:17
这个私有有意义么。。。
作者:
—Jimmy—
时间:
2014-8-7 20:22
感觉是没什么意义,本来就是用来初始化用的,就算没有自己传值吧
作者:
李林_
时间:
2014-8-7 23:33
静态代码块用于初始化静态类属性(静态属性)
都存在于代码区
当类加载时首先执行 静态属性 再执行静态代码块 给静态属性赋值 (静态属性必须在静态代码块的前头)
而当内加载时 静态属性和静态代码块 只加载一次
而静态代码块本来就没有提供向外部的访问形式 所以加private 和 不加 private 没有实质区别
静态属性只能以类名去调用
这样静态属性就形成了数据的共享
作者:
justin1258
时间:
2014-8-8 09:57
不能私有化
作者:
18334705181
时间:
2014-8-10 09:44
如果私有化的话,类会成功加载么?求解答
作者:
18334705181
时间:
2014-8-10 10:14
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!");
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2