java主方法如何调用非静态方法?

如题所述

java主方法调用非静态方法的步骤:

    1、新建一个类,本例类名“NoStaticMethod”,声明一些成员变量,创建一个主方法main(),一个非静态方法Method_1()。

    2、类的全部代码。

** * Created by Administrator on 2016/7/25.

*/

public class NOstaticMethod {

//satement new variable name: studentName

public static String studentName = "xxx";

//satetment new variable nmae: country

public static String country;

//satement new variable name: nation

private static String nation;

//satement new variable name: subject

public String subject = "物理";

//satement new variable name: school

private String school;

//create main method

public static void main(String[] args) {

//NOstaticMethod.Method_1(); 在静态方法main中是不能直接调用非静态方法Method_1的

//只能通过创建类的对象,再由对象去调用成员方法以及成员变量。

NOstaticMethod wangyan = new NOstaticMethod();

//call methol

wangyan.Method_1();

// String physics= subject;在静态方法中也是不能访问非静态成员变量的

//call not static  variable

String physics = wangyan.subject;

System.out.println("在主方法main()中只能通过对象来调用非静态成员变量subject:" + physics);

}  

//create  new method name: Method_1()

public void Method_1() {

System.out.println("Method_1是一个公共的、非静态的方法");

System.out.println("在非静态方法Method_1中访问静态成员变量“学生姓名”(studentName):" + studentName);

System.out.println("在method_1中直接调用非静态成员变量subject:" + subject);

}

    3、运行结果

Method_1是一个公共的、非静态的方法

在非静态方法Method_1中访问静态成员变量“学生姓名”(studentName)

在method_1中直接调用非静态成员变量subject(科目)

在主方法main()中只能通过对象来调用非静态成员变量subject

    4、分析代码

public static void main(String[] args) {

//NOstaticMethod.Method_1(); 在静态方法main中是不能直接调用非静态方法Method_1的

//只能通过创建类的对象,再由对象去调用成员方法以及成员变量。

NOstaticMethod wangyan = new NOstaticMethod();

//call methol

wangyan.Method_1();

// String physics= subject; 在静态方法中也是不能访问非静态成员变量的

//call not static  variable

String physics = wangyan.subject;

System.out.println("在主方法main()中只能通过对象来调用非静态成员变量subject:" + physics);

}

静态方法与非静态方法的区别:

静态方法是在类中使用staitc修饰的方法,在类定义的时候已经被装载和分配。而非静态方法是不加static关键字的方法,在类定义时没有占用内存,只有在类被实例化成对象时,对象调用该方法才被分配内存。

其次,静态方法中只能调用静态成员或者方法,不能调用非静态方法或者非静态成员,而非静态方法既可以调用静态成员或者方法又可以调用其他的非静态成员或者方法。

温馨提示:内容为网友见解,仅供参考
无其他回答

java主方法如何调用非静态方法?
在method_1中直接调用非静态成员变量subject(科目)在主方法main()中只能通过对象来调用非静态成员变量subject 4、分析代码 public static void main(String[] args) { \/\/NOstaticMethod.Method_1(); 在静态方法main中是不能直接调用非静态方法Method_1的 \/\/只能通过创建类的对象,再由对象去调用成员...

java中main方法里面调用非静态方法。
2、静态方法:可以使用类名和对象调用,只能直接访问静态成员,无法访问非静态成员 3、静态属性:可以使用类名和对象名调用,多个对象共享

java中main函数怎么调用外部非static方法
在main函数里调用非static方法(实例方法),那么可以通过创建实例对象,然后来调用实例方法 具体代码和注释如下 public class FunDemo {\/\/静态方法public static void sayHello(String name){System.out.println("Hello "+name);}\/\/实例方法public void sayBye(String name){System.out.println("Bye Bye "...

java无法从静态上下文引用非静态方法
静态方法可以在没有创建实例的情况下使用,这是因为它们与特定类相关联,而不是特定的实例。与此相反,非静态方法和非静态变量是与特定对象实例相关联的,只有在对象实例创建后才能访问。具体来说,当我们在静态方法中尝试引用非静态成员变量时,编译器会抛出错误,原因是静态方法没有对象实例可供引用非静...

java类名调用非是static方法
静态方法又称类方法,非静态方法称对象方法。这句话表示静态方法可以直接用类调用,而非静态方法就必须要用对象才能调用。所以你需要new 一个对象出来才能调用非静态方法。这是因为类是一个抽象的概念,对象是一个实体。静态方法只能在内存中分配一个空间给它,不管你引用多少次都是指向的那个空间。而非...

关于java中的main方法
首先,main方法不能直接调用非静态方法,要调用非静态方法只能通过new实现,new后会调用类的构造器,所以main调用非静态方法那么就一定会调用其构造器;其次,构造器不属于静态的块,类的加载顺序中静态的会先加载,同样静态的会按顺序加载,你可以试试你就会发现静态的在构造器前或后都会比构造器先加载 最后...

java 在主函数中调用函数的方法
调用方法:先生成一个对象,用“对象.方法()”的方式调用。调用说明:java中的main方法是静态的,用于程序的入口,在静态方法中无法调用非静态方法,只能调用静态方法。想调用静态方法的话就要先生成该类的一个对象,通过对象调用非静态方法。调用举例:public class A{ public static void main(String[]...

java Main函数怎么调用其他函数。 其他类。
主函数main修改为 public static void main(String[] args){ getInt(); \/\/这里调用了上面的方法 System.out.println("总共有括号对数:");} 返回值:有些方法是带有返回值的,取决于你的用途。能不能带返回值取决于void修饰符 普通方法,无返回值void修饰 。如 public void fangfa()这是无返回...

JAVA中 在static方法内部能否调用非静态方法?
static方法内部不能直接调用非静态方法,可以在调用之前实例化非静态方法所在的类,再用类点方法来调用。例:非静态方法是className类里面的method();className cn=new className();cn.method();这样就可以了。希望能帮助你。

java中无法从静态上下文中引用非静态
computer 类,如果被像代码中放在Demo1类的{}括号中,就属于动态实例子类,不能放在static静态的main函数中。需要改成静态类的 static class computer{} computer 类,如果不放在Demo1类的{}括号中,放在Demo1外面,属于同源码文件的非公开类,也可以在main中使用,则需要在main(){}函数后再加一个}...

相似回答