
正文
java中非静态代码块,java静态代码块和非静态代码块
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
java中“无法从静态上下文中引用非静态变量”为什么?理由是什么?_百度...
1、就会因为该变量的空指针而抛异常(可能还不只这点问题,只是举个例)。JAVA类的加载机制就决定了无法从静态上下文中引用非静态变量。
2、this 是指向当前对象的引用,需要对象实例化以后才能赋值。而静态成员都是类所属的,不需要对实例化就可以使用,所以在静态上下文中引用this时可能其还未赋值,所以应不能这样使用。
3、input();因为你这里Yuan直接 . 的意思就是直接引用类Yuan里面的静态方法或者成员变量。而你类Yuan里面是没有静态方法,所以提示这个错误。我估计你是的意思是生成类的对象。
相关问答
Q1: Java的静态块和初始化块分别何时执行?有什么区别?
1、区别如下:static{ //静态代码块,优先于普通代码块执行,静态代码块中使用的变量必须是静态变量。//一般是为了加载properties文件信息,只会被执行一次。
2、两者的区别就是:静态代码块是自动执行的;静态方法是被调用的时候才执行的.静态方法 (1)在Java里,可以定义一个不需要创建对象的方法,这种方法就是静态方法。要实现这样的效果,只需要在类中定义的方法前加上static关键字。
3、构造器的执行顺序是:静态代码块→代码块→构造器。再说作用:静态代码块是用于初始化类的(在加载类时执行,只执行一次),代码块是用于初始化对象的(在创建对象时执行,每次创建对象时都执行),构造器是用于创建对象的。
4、java中类的显示初始化会在首次被“主动使用”时执行初始化,为类(静态)变量赋予正确的初始值。在Java代码中,一个正确的初始值是通过类变量初始化语句或者静态初始化块给出的。
5、object.method方式执行,即后者需要创建一个对象。
6、什么时候用的话,这个根据上面那段话就很容易理解了。因为他是再程序刚启动的时候就加载进内存里了,那么就是说不管你程序执行到哪,或有没有实例化这个static对象所在类,你都可以调用到这个对象。
Q2: java中的代码块是什么意思,怎么用?
1、//构造块:直接在类中定义且没有加static关键字的代码块称为{}构造代码块。构造代码块在创建对象时被调用,每次创建对象都会被调用,并且构造代码块的执行次序优先于类构造函数。
2、java逻辑代码块是指使用{}大括号内的代码片段,为了实现某种逻辑和主类区分开来的一段代码。
3、静态块在一个程序里面只执行一次;而构造块是,只要建立一个对象,构造代码块都会执行一次。
关于java中非静态代码块和java静态代码块和非静态代码块的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。







