java主函数为什么可以访问非静态,java中main方法里面调用非静态方法。
大家好,如果您还对java主函数为什么可以访问非静态不太了解,没有关系,今天就由本站为大家分享java主函数为什么可以访问非静态的知识,包括java中main方法里面调用非静态方法。的问题都会给大家分析到,还望可以解决大家的问题,下面我们就开始吧!
Java中main函数只能调用同类中的静态方法
这么给你说把静态方法、变量都是属于类的,当你调用类时那些静态方法和属性就已经存在了,也就是说直接调用类名.属性/方法名就可以,而非静态属性和方法必须得实例化对象才能调用,你可以这么理解,当程序跑到静态方法里时,非静态方法这时还是未存在的,
不过静态调用非静态也是可以的,不过不能直接调用罢了,你得先实例化对象后再调用才行
java中的main函数为什么是静态的
非
静态
成员函数
在执行前必须先构造并
实例化
该函数所在的类。
如果允许非静态的main,那么
main函数
所在的类必须先进行实例化,
那么就需要再写个函数去实例化main所在的类,再调用main,这个实例化
代码
又写在哪呢?如果它也是非静态的,岂不是又要写个函数去实例化它所在的类嘛?
因此,JAVA语言就规定了main必须是静态的。
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);
}
java中main方法里面调用非静态方法。
静态方法只能直接访问静态成员,无法访问非静态成员,如果想要访问非静态方法,则实例化该类对象,使用对象名.非静态方法()的方式来访问!
static是一种访问修饰符,在java中可以修饰代码块、方法和属性
1、静态块:用于在类加载之前完成一些初始化操作,仅会执行一次
2、静态方法:可以使用类名和对象调用,只能直接访问静态成员,无法访问非静态成员
3、静态属性:可以使用类名和对象名调用,多个对象共享
关于java主函数为什么可以访问非静态和java中main方法里面调用非静态方法。的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。