关于java主函数的问题
发布网友
发布时间:2022-05-05 20:59
我来回答
共3个回答
热心网友
时间:2022-06-28 02:25
你说的对, 静态的方法确实只能调用其他的静态方法或成员变量.main函数也是静态函数, 这也没错. 不过main函数中调用的其他函数确实都是静态方法. 而非静态的方法则需要实例化之后再能使用实例化之后的对象进行调用, 举个例子:package org.hotleave.test;public class Test {
/**
* 非静态方法
*/
public void normalFunction() {
System.out.println("this is a normal function, should be call by a instance");
}
/**
* 静态方法
*/
public static void staticFunction() {
System.out.println("this is a static function, can be called by the class");
}
/**
* @param args
*/
public static void main(String[] args) {
// 调用 自身的静态方法
staticFunction();
// 通过类名调用自身的静态方法
Test.staticFunction();
// 调用其他类的静态方法
A.staticFunction();
// 调用自身的非静态方法
Test test = new Test();
test.normalFunction();
// Test.normalFunction(); // 报错: 静态方法不能访问非静态方法或成员变量
// 调用其他类的非静态方法
A a = new A();
a.normalFunction();
// A.normalFunction(); // 报错: 静态方法不能访问非静态方法或成员变量
}}
class A {
public void normalFunction() {
System.out.println("this is a normal function, should be call by a instance");
}
public static void staticFunction() {
System.out.println("this is a static function, can be called by the class");
}
}
热心网友
时间:2022-06-28 02:25
你理解错了,main是不能调用非静态方法的,并需实例化过才行,我写了一个例子,你看一下,在非静态方法t2中,可以直接调用非静态方法t1,但main函数就不行,必须实例化后才行。public class Test{
public void t1(){
System.out.println("aaa");
}
public void t2(){
t1();
}
public static void main(String[] MoZhe){
Test a=new Test();
a.t2();
}
}
热心网友
时间:2022-06-28 02:26
无论怎么一个程序,都要有一个入口才能运行。这个入口一定就是静态的了。至于入口有了,你要做啥事情,就看你的需求了,有的平台已经搞定,比如输入输出有些需要你去写 比如 函数 过程等