Java中如何定义公共静态语句块
例如像static{//somedata},但是这样不能在其他类中使用到static中定义的变量,所以想问下是否可以使用静态语句块定义一些公共的变量,像publicsta...
例如像static{//some data},但是这样不能在其他类中使用到static中定义的变量,所以想问下是否可以使用静态语句块定义一些公共的变量,像public static String str1=“str1”;(但不是使用这样的方式,因为我要定义一大堆的公共静态变量一共另外一个类使用。
这里谢过各位大神了。。。 展开
这里谢过各位大神了。。。 展开
6个回答
展开全部
没有这种语法,你要公共变量就在类里面定义static类型的变量不就行了!static本来就是类加载的时候被加载的效果都一样没有区别的!别折腾自己!
追问
public static String ITEM_MOBILE = "移动";
public static String ITEM_WEB = "Web";
如果能够放在static中一起定义不是美哉?
static{
String ITEM_MOBILE = "移动";
String ITEM_WEB = "Web";
}
可是就是不能在其他类中使用。能否解决?
追答
静态方法怎么不能再其它类中使用?使用方式:类名.变量名 即可,如:假设你是一个Demo类
Demo.ITEM_MOBILE即可了啊,不用什么对象的!。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
static 块仅适合当前类的初始化工作,它本身相当于一个匿名构造方法,所以不是用来定义变量的,你只能在这里面初始静态变量而不是定义这些变量。
另外,static 按照概念来说是不是为了继承服务的。在 Java 中也有潜在的导致复杂性增加的出错机率。
比如:当父子两个类都有一个 static 方法中 name(),现在当我们使用
Parent a = new Parent();
Parent b = new Child();
Child c = new Child();
a.name();
b.name();
c.name();
我们观察a,b,c 的输出结果就能看出来, a, b 输出是一样的,而 c 的输出却不同。所以 Eclipse 在编译这样的代码时会给出警告信息提醒你使用 Parent.name() 或 Child.name() 而不是使用变量 a,b,c.
另外,static 按照概念来说是不是为了继承服务的。在 Java 中也有潜在的导致复杂性增加的出错机率。
比如:当父子两个类都有一个 static 方法中 name(),现在当我们使用
Parent a = new Parent();
Parent b = new Child();
Child c = new Child();
a.name();
b.name();
c.name();
我们观察a,b,c 的输出结果就能看出来, a, b 输出是一样的,而 c 的输出却不同。所以 Eclipse 在编译这样的代码时会给出警告信息提醒你使用 Parent.name() 或 Child.name() 而不是使用变量 a,b,c.
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的意思是定义了之后能在其他类中也可以使用呗!! 定义成protected的然后继承用就可以了,整那麻烦事儿干嘛呢!
追问
只是已经继承Java内部的类了,不支持多继承。
只是想减少代码的输入量,
如果没有的话,我就还是按照原来那样一个变量一个变量的定义吧。
追答
如果可以 你可以选择用定义常量的类继承你要用的类继承的类,然后在用要勇的这个来继承定义常量的类!!就是分成祖子孙来继承,不过还要看你的实际情况了!!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用枚举就可以搞掂你想要的,
public enum Color{
"移动","Web"
}
public enum Color{
"移动","Web"
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
就定义一大推
public static String str1=“str1”
你说的语法没有
public static String str1=“str1”
你说的语法没有
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询