java 静态变量和静态常量

java 静态变量和静态常量,第1张

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的问题等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9303571.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存