问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

关于java的static我很晕

发布网友 发布时间:2022-04-30 21:29

我来回答

5个回答

热心网友 时间:2023-10-14 10:44

首先你得理解什么是类属性和对象属性,加static修饰的属性是类属性的充分必要条件,因此不加static的属性就是对象属性。

那区别是什么呢?

静态变量分配空间是在程序开始运行的时候自动完成的,因此你可以使用类名直接访问,如:Math.PI。

非静态变量(对象变量)是在对象初始化以后才分配空间,以后才能使用。如:Test t = new T(); t.shuxing;  这个之后shuxing就有内存空间啦,你就可以访问了。

给你说说图片上的错误你就明白啦

1.22行错误时因为主方法里面访问的a是对象属性,此时a还没有分配空间,因此会有错误,只有new之后才能用对象访问它。但是23行就不会有错误啦,因为b是static的,此时已经有了内存空间

2.25行错误是因为在f_4()里面访问了非静态属相a,此时a还是没有分配空间,所以就出错啦,这也是楼主遇到的问题。

3.即使方法里面都是静态属性,也不可以直接调用,如:24行所示。这是Java的语法规定,可能是为了简化语法才这样做的。

热心网友 时间:2023-10-14 10:45

实例变量(instance variable):或叫实例域、实例字段(instance field),或叫成员变量(member variable)。实例的变量,每个实例的变量可能不同。

实例方法(instance method):或叫成员方法(member method)。供实例用的方法,必须要先有实例,才能通过此实例调用实例方法。

类变量(class variable):或叫静态域、静态字段(static field),或叫静态变量(static variable)。出现在这样的情况下:一个类的所有实例需要一个公有的属性,比如,一,统计实例个数;二,常量。类变量与类直接关联在一起。内存当中只有一个地方存放这个变量。任何实例都可以修改它的值(前提是它没有被final修饰符修饰,不然就是常量),但是,访问类变量并不需要实例,用类就可以操作了。

类方法(class method):跟类变量的基本特点一样。供类用的方法,可以没有实例,直接通过类来调用类方法。

从形式上看,类变量和类方法,比一般的变量和方法多了一个static修饰符。因为这个原因,类变量和类方法也被叫做静态变量和静态方法。

它们的使用方法:

实例方法可以直接访问实例变量,调用实例方法;
实例方法可以直接访问类变量,调用类方法。但不推荐这么做,原因是不清晰,容易把类变量误认为是实例变量,把类方法误认为是实例方法(借助IDE,它会给出警告信息。);
类方法可以直接调用类变量和类方法;
类方法不能直接调用实例变量和实例方法;
类方法里面不能使用“this”关键字,因为没有实例存在,“this”不知道引用哪个实例。
明白没,你的answer是实例方法,想不用staic也行,写个够造函数,来调用它。

热心网友 时间:2023-10-14 10:45

类的成员包括【成员属性】、【成员方法】,只有类的成员才可以用【static】标识,【static】标识后的成员可以使用【类名.成员名】的方式进行访问,即无需创建该类的对象,就可以访问,当然同样可以【对象名.成员名】的方式进行访问,但是这样是不建议的。
【静态的方法不能访问非静态的成员】,由于【静态方法】可以不通过创建对象而调用,而【非静态的成员属性】是在创建对象后为其分配空间的的,如果允许【静态方法】访问一个【非静态的成员属性】,那么就有这样的可能,【静态方法】去访问了一个【不存在的成员属性】,Java不允许这样的危险存在,所以【静态方法】不可以访问【非静态的成员属性】。同理,我们知道【非静态的成员方法】可以访问【非静态的成员属性】,如果【静态方法】可以访问【非静态的成员方法】的话,那么就可以间接访问【非静态的成员属性】,这样也是不允许的。
【静态的成员属性】是在类被加载时分配空间的,不需要【创建对象】,所以【静态的方法】只能访问【静态的成员属性】和【静态的成员方法】。

这就是你出错的原因,不知道你是否看懂了。

热心网友 时间:2023-10-14 10:46

跟switch和if没关系.

唔,静态方法的意思..
静态方法a如果要召唤方法b的话. b必须要是静态.
但如果a不是静态的话他就可以召唤b(不管b是不是静态的).

嗯,我只样说的话你可能觉得有一些方法就召唤不出来,因为main就必须是静态的...教你个方法...

// The "Test" class.
import java.awt.*;

public class Test
{

public static void main (String[] args)
{
testx x = new testx ();
// Place your program here. 'c' is the output console
} // main method
} // Test class

class testx
{
public testx ()
{
a ();
}

public static void b ()
{
System.out.println ("Test b");
}

public void a ()
{
System.out.println ("Test a");
b ();
}
}
你看,现在main就能召唤a出来了..而a就不是静态..
希望能帮助到你..

热心网友 时间:2023-10-14 10:46

我来告诉你吧。。哈哈

非静态的方法 比如 void test(int a)
有几个参数呢。。两个。。一个是int类型 一个就是调用这个方法的对象。。
在方法体内可以用this使用它。。这个对象是作为隐式参数传进这个方法的。。
所谓隐式参数就是可以不用写明的。。
比如你调用这个方法。。你需要一个对象去调用他。。调用的时候还需要传一个int类型的参数。。所以这个方法有两个参数。。

静态方法 比如static void test(int a)有几个参数呢。。只有一个int类型了。。因为静态方法不需要实例对象就能直接调用。。所以他的参数只有一个a。。所以你在里面不能使用this。因为他并没有将这个对象作为参数传进去。。
所以如果你在静态方法里调用了非静态方法的话。比如static void test(int a) {

test1(a);//test1是非静态方法
}
那么test1需要两个参数是吧。。现在有一个你给他了。。还有一个呢。。就是调用它的对象呢。。你并没有给他。。也没法给他。。因为静态方法里没有那个隐式参数。。

所以明白了吗。。静态变量也是一样了撒。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
月经不尽褐色的是怎么回事 月经前后有褐色分泌物是什么原因 二十四节气的重要意义24节气在生活中的作用 你来我往,猜一个数字? 姓谭女孩起什么名字最优雅 男孩姓谭的好名字 黄家驹在beyond的地位 黄家驹是Beyond的主唱吗? 老板对员工的新年微信 每次感冒和一些小毛病,我都是选择运动出身汗,让它自然好,请问这种方 ... java在下面的两种情况下使用静态方法,谁能给我解释一下吗? 写一种小动物,100字左右? 静态域中的域是什么意思? 如何理解JAVA中的静态域和景泰变量 静态域是什么?怎么理解它呢? 在java中,为什么类实例也能访问静态域? java中的静态域到底在类的定义中扮演了一个怎样的角色? JAVA 实例域和静态域分别是什么意思 大一新生填表时政治面貌怎样填 有关于道德的名言 急求中国古代的的关于。。。道德的名言。。。写明出处。。。最好不... 论语里有一个,子曰:“德不孤,必有邻。”意思就是有道德的人不会没朋友。有没有关于这方面的名言警句? 关于道德名言 有道德的人不会孤单,一定会有志同道合的人与之相伴出自哪儿 道德有关的名言名句 2018河南高考报名手续 河南高考报名结束后还能报名吗 河南省高考报志愿可以改几次 河南省高考考生填报志愿是什么时候 颜色减淡在PS的哪里啊??怎么打开啊! 具体点! 谢谢了! 请用有的有的有的来描写一只小动物 本人毕业了,家有点关系。建设局和水务局选那个好?工作情况,待遇,上升空间等多方面,谢谢 java静态方法(方法前冠以static)和实例方法(未冠以static)的区别 java static域会被clone吗 java主函数public static void main(String args[])中static的作用是什么 关于JAVA域的初始化 java中的静态代码块、代码块、构造器的执行顺序是怎样呢,这三者有什么作用呢 JAVA 静态类写法和调用 住建局好吗?待遇如何? C++和Java中Static的区别 请问java中的field是什么意思 山东省住房和城乡建设厅和水利厅哪个好 住房和城乡建设局公务员是干嘛的?待遇工资多少?这个部门好吗? 水利局一名普通科员的待遇怎么样 笔记本联想y520拯救者开不了机了怎么办 顺丰怎样查快递单号 家乡的 端午节作文110字 谁能写一篇有关家乡端午习俗的作文(江西的),800字左右,要求:感情真挚... 长城500W电源可以强拉华硕3060 12G V2吗? 游戏用电脑配置,这个组合额定500w的电源够用么?