非静态方法可以调用静态方法与变量吗

java

Java中非静态方法可以调用静态方法与变量,如下:

package com.test;



public class TestA {

/**
 * 静态变量a
 */
private static int a=1;

public static void main(String[] args) {
//非静态方法在main函数里只能用对象调用,main方法也静态方法
TestA testA=new TestA();
//非静态方法里面有设置静态变量以及调用静态方法
testA.test();
System.out.println("静态变量a的值为:"+a);
}

/**
 * 静态方法
 * @param name
 */
public static void sayHello(String name){
System.out.println(name+" say hello!");
}

public void test(){
System.out.println("我是非静态方法test!");
//设置静态变量值
a=2;
//调用静态方法没报异常
sayHello("Test");
}
}

结果:
我是非静态方法test!
Test say hello!
静态变量a的值为:2

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-05-19

java中非静态方法可以调用静态方法与变量

静态方法不可以调用非静态方法与非静态变量

第2个回答  2018-03-31

非静态方法是否可以调整静态方法与变量:

Java中非静态方法是可以调用静态方法与变量。

静态方法和实例方法的区别是:

    在外部调用静态方法时,可以使用"类名.方法名"的方式,也可以使用"对象名.方法名"的方式。而实例方法只有后面这种方式。也就是说,调用静态方法可以无需创建对象。

    静态方法在访问本类的成员时,只允许访问静态成员(即静态成员变量和静态方法),而不允许访问实例成员变量和实例方法,实例方法则无此限制。

本回答被网友采纳
第3个回答  2017-06-12
可以,但是静态方法里面只能调用静态方法
第4个回答  2012-07-26
可以的,但是静态方法不能掉非静态的变量
相似回答