⑴ 静态方法只能被静态方法调用吗
不是啊,非静态方法里也可以调用静态方法的,反过来就不行了,静态方法不可以调用非静态的方法。
⑵ java中的静态方法可以直接调用吗
可以直接调用的。
在调用静态方法的时候,比如说这个静态方法是在一个类中,直接用类名点方法名,不需要在new出一个对象,然后用new处的对象来调用方法。因为静态方法可以直接用类名调用
⑶ java[新手]静态方法在哪里调用 多线程
yield和sleep可以在run中调用主要是因为类ThreadYield继承了thread,在子类方法里面调用父类方法很正常。run要重写是因为本身thread里面的run就是空的,就是设计出来让你重写的,另两个本身以及实现好了,调用就行了
⑷ 静态方法怎么调用不是静态的方法
静态方法内部,通过对象引用去调用非静态方法
⑸ 静态方法可以直接调用实例方法么
package com.text_3;
//静态方法不能直接调用实例方法和变量,但可以间接调用(即在静态方法中创建类的实例,然后调用)
class Demo_12 {
public static void main(String[] args) {
Circle c=new Circle();
Demo_12 d=new Demo_12();
method1();//此处报错,静态方法不能直接调用非静态方法
d.method1(); //间接调用,无错
c.setRadius(5.0); //间接调用,无错
}
public void method1(){
method2();
}
public static void method2(){
Circle c=new Circle();
System.out.println("what is radius " +c.getRadius());
}
}
class Circle{
private double radius;
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
}
⑹ 静态方法的方法使用
静态方法与静态变量一样,属于类本身,而不属于那个类的一个对象。调用一个被定义为static的方法,可以通过在它前面加上这个类的名称,也可以像调用非静态方法一样通过类对象调用。
实例方法必须通过类的实例来使用。实例方法可以使用类的非静态成员,也可以使用类的静态成员。
类的静态方法,静态变量是在类装载的时候装载的。但是要特别注意,类的静态变量是该类的对象所共有的,即是所有对象共享变量。所以建议尽量少用静态变量。尽量在静态方法中使用内部变量。 其中static关键字即表示静态的。声明静态方法的语法如下:
<访问修饰符>static返回类型 方法名(参数列表)
{//方法体} 静态方法与实例方法唯一不同的,就是静态方法在返回类型前加static关键字。静态方法的调用有两种途径:
(1)通过类的实例对象去调用
调用格式为: 对象名.方法名
(2) 通过类名直接调用
调用格式为: 类名::方法名 我们在使用时要注意:
静态方法只能访问类的静态成员,不能访问类的非静态成员;
非静态方法可以访问类的静态成员,也可以访问类的非静态成员;
静态方法既可以用实例来调用,也可以用类名来调用。 #include<iostream>using namespace std;
class CStaticTest{public:CStaticTest(int a){this->a = a;}~CStaticTest(){}
static int add(CStaticTest& c1, CStaticTest& c2){return c1.a + c2.a;}
private:int a;};
int main(){CStaticTest tmp1(1);CStaticTest tmp2(2);int sum1 = tmp1.add(tmp1, tmp2);int sum2 = CStaticTest::add(tmp1, tmp2);
cout << sum1 << endl;cout << sum2 << endl;return 0;} 1. 有静态属性的类,一般会定义静态方法。
2. 没有属性的类,一般会定义静态方法,这样在使用时,通过类名::方法名即可调用,
而不用先定义对象,再调用,这样可以省去一行代码。
⑺ 静态方法可以直接写方法名调用么
本类中可以在其它静态方法中调用,同包不同类的话,private不能调用,其它权限可以类名.静态方法;不同包可以导入包,然后继承类的话权限public protect 可以,非继承的话只能public。个人理解,有错误的地方欢迎指正,谢谢。
⑻ 能在静态方法调用么
兄弟,main 是程序的入口,是一个特殊的方法,他区别于其他的静态方法,不能用对待其他静态函数的思想去看待main。 我对jvm没有多少研究,不过,我认为,作为一个程序入口,静态是必须的,因为,静态就意味着首先分配内存。 如果作为普通的静态方法,自然是不能引用其他的非静态方法的,原因很简单,其他的非静态方法在内存中是没有的,那你怎么引用? 而静态方法能引用其他静态方法的原理同上也差不多了。
⑼ java中,静态方法能调用静态方法吗
必须可以,main 方法就是静态方法,里面直接调用 static 修饰的 方法,没任何问题。
静态方法在类装载的时候装载,所以可以直接通过类名.静态方法名() 来调用。