将一组对象传递给java中的方法

时间:2014-12-17 20:15:17

标签: java arrays object methods arguments

大家好我有一个问题。我尝试将对象数组传递给方法时出错 我的班级

public class Object {
     private int x1;

    public Object(int a ,){
            this.x1=a;
     }

public class staticMethods{
    public static void findMaxPos(Object[] name){
             max = name[0]
             pos = 0
            for( int i=1; i<name.length ; i++){
                 if ( name[i] >max ){
                     max = name[i];
                     pos = i;
                     }
              }
      }
public class Example{

public static void main(String[] args) {
Object[] yp = new Object2[3];
    yp[0] = new Object(5);
    yp[1] = new Object(6);
    yp[2] = new Object(8); 
 findMaxPos(type)// i get an error of the  method findMaxPos is undefined for the type Example
   }

很抱歉这篇长篇文章...

2 个答案:

答案 0 :(得分:1)

findMaxPos是类staticMethod的静态方法。

如果你没有在定义它的类中调用静态函数,你需要在之前使用类的名称来调用它:

public static void main(String[] args) {
    Object[] type = new Object2[3];
    yp[0] = new Object(5);
    yp[1] = new Object(6);
    yp[2] = new Object(8); 
    staticMethods.findMaxPos(type);// This should be ok.
}

请注意,在java中,约定是为类提供一个以大写字母开头的名称(以小写字母开头的名称将赋予实例)。

答案 1 :(得分:0)

嗯,上述解决方案应该可行,但除此之外,还有一些其他事项需要考虑。

  1. public Object(int a,) 构造函数不完整。
  2. max = name[0], pos = 0 中缺少分号(;)
  3. 最重要的是 max 和 Pos 的返回类型是未定义的。 PO 可以是 int,但变量 max 应该是 Object 类型。
  4. 如果 max 的返回类型是对象,则不能使用 (name[i] >max ),因为它未针对对象类型定义。 纠正这些错误,希望您的代码能够正常运行。