关于java主函数的问题

java中主函数前面都有个static修饰,如果说static修饰是为了不用实例化主类,那么主函数就是一个静态的方法,那么在主函数中调用的方法很多都是非静态的成员和方法,谁能跟我解释一下的啊

你说的对, 静态的方法确实只能调用其他的静态方法或成员变量.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");
}
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-07-09
你理解错了,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();
}
}本回答被网友采纳
第2个回答  2013-07-09
无论怎么一个程序,都要有一个入口才能运行。这个入口一定就是静态的了。至于入口有了,你要做啥事情,就看你的需求了,有的平台已经搞定,比如输入输出有些需要你去写 比如 函数 过程等

在Java程序的一个包中的一个类里用了主函数,那么在另一个类中可以再用...
可以。比如你的程序Test.java中有两个类,分别为class A{} class B{},这两个类中都可以有main()函数,当你编译完文件后,即javac Test.java后,如果想运行A类中的main()方法就用java A,如果想运行B类中的main()就用java B 如果还不明白就HI我吧 ...

Java的void问题
原则:void是表示该方法没有返回值,如果有返回值返回到哪去一定要弄清楚?方法返回值有个原则,谁调用该方法返回到谁那。弄清楚了以上原则再来看这段代码,主函数为什么只能有void,就先考虑主函数是谁调用的??答案很显然,调用主函数的是Java虚拟机(JVM)。这就很明白了,主函数只是一个程序的入口,J...

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

Java问题:在主函数中写一个循环 循环次数为20次,3的倍数时输出“3的倍...
for(int i = 0; i < max; i++) { \/\/代码 } 第一个表达式:声明一个变量i,初始值为0,表示当前的循环次数;循环刚开始时执行 第二个表达式:循环条件,如果i的值小于max则继续执行以下的代码,否则退出循环;每一次循环的开始执行 第三个表达式:代码执行完毕后i的值加一,每一次循环的最后...

5、+写一个带主方法(主函数)的类,该怎么编译及运行,请描述其过程?_百 ...
java复制代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello, World!");} } 要编译和运行这个类,你需要按照以下步骤进行:保存文件:首先,将上述代码保存到一个以".java"为后缀的文件中,例如"HelloWorld.java"。编译代码:在命令行(例如Windows...

Java主函数main里面的String[] args数组我真不知道是怎么个运作的?它的...
后边的ag1……ag4就是你命令行的arguments. 如此你的 args.length 就等于4,因为共4个arguments(每两个之间是用空格分开),其中args[0]=arg1,以此类推。平时你运行Java程序一般是 > java Test 故args.length 就等于0, args就变成了一个空的数组。还有什么问题可以继续追问,希望对你有帮助。

谁给我详细解释下java中的main函数山东
主函数的一般写法如下:public static void main(String[] args){…} 下面分别解释这些关键字的作用:(1)public关键字,这个好理解,声明主函数为public就是告诉其他的类可以访问这个函数。(2)static关键字,告知编译器main函数是一个静态函数。也就是说main函数中的代码是存储在静态存储区的,即当...

是不是每一个java的类中都必须有一个主函数呢?
不一定,这个要看你的需要。一般一个项目只需在一个类中定义一个main函数,其它类提供方法供main函数调用

一个java程序必须有main方法吗?
这样说吧,所有程序至少要有一个main方法。因为java虚拟机运行时,找的接口就是main方法,如果没有此方法,是不运行程序的你说的jsp servlet ,也是有main方法的,不过不是在你的程序中,而在应用服务器中,比如tomcat jboss 或者weblogic,然后它们会去读取你程序的入口web.xml ...

java程序中我有主函数,也没有错误,为什么运行不了?
,其他工程中的main函数类能运行正常!我的错误原因是,工程中引入了其他工程中的jar包,但是为了提高运行速度,将该jar包所在工程给删掉了!结果,jar文件找不到路径,从而产生了这个错误。不知道你的问题是什么,帮不上忙的话,就将你的错误提示贴出来,大家一起学习学习。

相似回答
大家正在搜