为什么static修饰的方法能不能调用非static方法和属性,请讲详细点

如题所述

1、首先当一个方法或者变量需要初始化加载,或者是经常被调用的时候,可以加上static。

2、类中被static修饰的变量在类的方法中可以使用类名调用、self调用、static调用。

4、类中被static修饰的方法,同样可以使用类名调用、self调用、static调用。

3、类中被static修饰的方法,在外部可以直接使用类名进行调用。

5、类中被static修饰的方法,同样可以使用类名调用、static调用。

温馨提示:内容为网友见解,仅供参考
第1个回答  推荐于2017-11-24
因为static得方法在装载class得时候首先完成,比 构造方法早,此时非static得属性和方法还没有完成初始化。。。所以不能调用。本回答被提问者采纳
第2个回答  2011-11-24
static是属于类的,非Static是属于对象,你一个Static的引用非Static的变量,你怎么知道是哪个对象的?每个对象的值可能都不一样。。所以不能在static的方法里使用
第3个回答  2011-11-25
定义为static 的变量或方法只属于包含这个方法的类,并不属于该类的某个实例。
第4个回答  2011-11-24
staic是静态的意思,用它修饰的有静态方法或者静态变量,定义变量时必须是静态成员变量才能在静态方法中用,这个是一个语法规则,sun公司就是这么定义的,没有办法,只能这么用,不过你也可以先创建对象,再通过对象名.方法名来调用,这个是针对方法的,变量就不行了。

为什么static修饰的方法能不能调用非static方法和属性,请讲详细点
1、首先当一个方法或者变量需要初始化加载,或者是经常被调用的时候,可以加上static。2、类中被static修饰的变量在类的方法中可以使用类名调用、self调用、static调用。4、类中被static修饰的方法,同样可以使用类名调用、self调用、static调用。3、类中被static修饰的方法,在外部可以直接使用类名进行调用...

请问java中static的作用
静态方法可以直接通过类名调用,任何的实例也都可以调用,因此静态方法中不能用this和super关键字,不能直接访问所属类的实例变量和实例方法(就是不带static的成员变量和成员成员方法),只能访问所属类的静态成员变量和成员方法。因为实例成员与特定的对象关联!这个需要去理解,想明白其中的道理,不是记忆!!! 因为static方...

static修饰的方法为什么不能被重写
静态的方法可以被继承,但是不能重写。如果父类中有一个静态的方法,子类也有一个与其方法名,参数类型,参数个数都一样的方法,并且也有static关键字修饰,那么该子类的方法会把原来继承过来的父类的方法隐藏,而不是重写。通俗的讲就是父类的方法和子类的方法是两个没有关系的方法,具体调用哪一个方...

java中static和non static到底区别在哪儿呢?
静态的方法,不需要建立对象就可以访问 如Math.abs()这个方法,我们没有建立Math的对象,就可以通过类名直接使用abs这个方法。而非静态的方法,必须先建立对象,然后通过对象名,调用这个方法。如JButton jb = new JButton();jb.addActionListener(l);ps:在静态方法的定义中,不能直接引用本类的其他...

JAVA 中的关键字static
用关键字static修饰的成员变量称作静态变量或类变量 静态变量是与类相关联的数据变量,类变量不仅可以通过某个对象访问也可以直接通过类名访问。方法声明中用关键字static修饰的称作类方法或静态方法类方法只能调用该类的类方法,不能调用实例方法;且类方法只能操作类变量。实例方法可以调用该类中实例方法或类方法; 已赞...

c# 程序里 什么时候应该用静态方法 什么时候用非静态方法
你就自己知道在什么时候用了。静态的方法就在在程序启动的时候,系统自己建立一个该方法的实例在内存里面,不需要我们在手动去实例该方法,可以直接调用,还有就是该实例会在内存中占一定的内存空间,这个内存空间只要程序不退出就会一直占用,所以在内存比较小的时候尽量少用静态方法,...

c# main函数修饰符
公共的方法可以在类的外部访问 static 声明一个静态的方法,静态的方法可以直接调用,必须是在main函数的类中,如果声明的静态的类你就可以不用new关键字来重定义了。void 声明一个没有返回值的方法,即,不用在方法末写 return 。。。C#的修饰符有很多,你最好把类 和 方法 属性好好看看 ...

JAVA 中static,final的用法最好有个例子 说明一下?急
首先要告诉你的是,static定义的变量会优先于任何其它非static变量,不论其出现的顺序如何。正如在程序中所表现的,虽然v出现在v1和v2的前面,但是结果却是v1和v2的初始化在v的前面。在static{后面跟着一段代码,这是用来进行显式的静态变量初始化,这段代码只会初始化一次,且在类被第一次装载时。如果你能读懂并...

请教大家关于JAVA中的静态变量和静态方法
一种是被static关键字修饰的变量,叫类变量或者静态变量 另一种没有static修饰,为实例变量 类的静态变量在内存中只有一个,java虚拟机在加载类的过程中为静态变量分配内存,静态变量位于方法区,被类的所有实例共享。静态变量可以直接通过类名进行访问,其生命周期取决于类的生命周期。而实例变量取决于类...

C++中结构体和类的内存分配以及成员的调用?
方法,就像在 main 函数中所示。请注意,static 变量必须在类的外部定义并初始化。在上面的例子中,static 变量 s_value 被定义为 int 类型并初始化为 0。还要注意,static 方法不能访问类的非 static 成员。例如,如果 MyClass 类有一个非 static 变量 m_value,则在 static 方法中无法访问它。

相似回答