
public class 静态常量
{
//静态变量!
private static int sum=88;
//静态常量!
private static final int con=99;
public static void main(string[] args)
{
systemoutprintln("变量变化前sum="+sum);
sum--;
systemoutprintln("变量变化后sum="+sum);
systemoutprintln("变化前con="+con);
//con++;这个注释一但取消就会报告错误:无法为最终变量con分配值
systemoutprintln("变化后con="+con);
}
}
静态变量只能写在类中而不能写在方法中,因为静态变量也称为类变量,是整个类的所有实例对象都能引用的,而且仅在第一次生成这个类的对象时为这个静态变量分配空间,故这个静态变量对于该类的所有实例对象是公用的。对象如果把变量(非静态变量)写在类的某个方法中,实例对象中的该变量就是私有的了,对象相互间不能引用及修改该变量。
退一步说,所有写在方法中的变量都是局部变量,都不能被方法外部调用。
public static List list;
这句都没有实例肯定调用listadd会报错,而且是空指针,还有,你声的变量为什么要是个公有的public为什么要是statis那?正常的变量声明,一般在类中都是private List list;
没看过像你这种的.你想非这样用,要么是在声明的时候就实例 ,就像你这种 public static List jklist = new ArrayList(); 要么是调用的时候实例
list=new ArrayList<String>();
listadd(e)
但是这么做也没啥意义.如何声明成静态的那么他的使用就属于这个类的,而不是类的任何一个对象的,所认非要这么用的的话最好在声明时就实例,不然一调用就是空指针.
class Main{
int i1;
int i2;
boolean flag=true;
public void set(int i1,int i2){
thisi1=i1;
thisi2=i2;
thisflag=false;
}
public int getI1(){
if(!flag)
return ;
return thisi1
}
public int getI2(){
if(!flag)
return ;
return thisi2
}
}
是不是这个意思?
因为第一个你是在静态方法中使用了非静态的属性!
记住:在java的静态方法中,不能使用非静态的属性和方法!
静态变量属于类,不依赖于对象的加载而是依赖于类的加载。
也就是说,静态的方法和属性在类被加载的时候就会被相对应的声明和初始化
!只要在程序中使用到了这个类,这个类的静态属性和方法就会被声明和初始化!和这个类的对象无关!
以上就是关于java 静态变量和静态常量全部的内容,包括:java 静态变量和静态常量、JAVA中静态变量的问题、java 静态变量list的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)