如何在一个java主类中引用另一个类的方法?代码如下:

import java.util.Scanner;
import java.*;
public class Max2{
public static void main(String arg[]){
Scanner scanner=new Scanner(System.in);
max m=new max();
int a=scanner.nextInt();
int b=scanner.nextInt();
m.max1();
}
}

这个是要引用到上面主类中的类:
package java;
public class max{
public static void max1(int a,int b){

if(a>b)
System.out.println(a);
}
}

运行结果是无法访问max
错误的类文件: .\max.java。
是代码出错了还是哪里的错,该怎么改正?

有两种可能,第一种是你把这两个类放在了不同的包中,
我直接赋值粘贴你的代码新建了一个包test2,创建了这两个类,记得把你的m.max1(a,b);参数加上,(并且输入的时候注意先输入大的数字,比如3,2就会输出3,因为你的代码如果输入2,3则没有任何显示)
以下是可行的:
package test2;
public class max{
public static void max1(int a,int b){
if(a>b)
System.out.println(a);

}
}

//注意在同一个包中创建
package test2;
import java.util.Scanner;
public class Max2 {
public static void main(String arg[]) {
Scanner scanner = new Scanner(System.in);
max m = new max();
int a = scanner.nextInt();
int b = scanner.nextInt();
m.max1(a,b);
}
}

如果你不想在同一个包中创建,那就加一个语句,比如你的max类写在Package test1中,那就加这句import test1.max;
代码如下:
package test2;
import test1.max;//在这里加入了引入包
import java.util.Scanner;
public class Max2 {
public static void main(String arg[]) {
Scanner scanner = new Scanner(System.in);
max m = new max();
int a = scanner.nextInt();
int b = scanner.nextInt();
m.max1(a,b);
}
}

第二种情况是:你的确是在同一个包中创建了还是不行,那估计是因为你的包里面还有别的很多class,相互影响了,试试新建一个工程,新建一个包,应该可以解决
温馨提示:答案为网友推荐,仅供参考
第1个回答  2012-05-04
方法为什么定义成static的呢,这样的话不用new直接用max调用就行啊 ,调用时没参数,不报错啊,还想编译追问

加入参数依然报错

第2个回答  2012-05-04
静态方法不用创建实例,直接max.max1(a,b);调用就可以了。追问

按您的方法试了一下,还是不行

第3个回答  2012-05-04
Max2中调用max的静态方法max1没传递参数,应该是编译都会报错的追问

加入参数后还是一样的错误提示

追答

什么错误?

追问

提示无法访问max类

追答

Max2中没有导入max的包吧
import 包名.java......max;

第4个回答  推荐于2017-10-06
正解:
import java.util.Scanner;
import java.*;
public class Max2{
public static void main(String arg[]){
Scanner scanner=new Scanner(System.in);
max m=new max();
int a=scanner.nextInt();
int b=scanner.nextInt();
m.max1(a,b);
}
}追问

不行,加入参数后依然是那个错误提示

追答

public class 后面的名字一定要和你java文件名字同名(去除后面的 .java 后缀)

追问

这是当然

追答

两个类不能写在同一页面上,我试了能够运行

追问

我的就是分开写在两个文件的,max已经编译出class文件了,只是Max2编译不通过,还是提示无法访问max类,加入参数后还是一样的。

本回答被网友采纳