如何从主类中的Z3_2类调用该方法?

时间:2014-10-03 20:46:21

标签: java

public class Z3_2_Tester{

    public static void main(String[] args){

        char[] tablica = {'S','O','M','E','T','E','X','T'};
        Z3_2 z = new Z3_2();


        z.Z3_2(tablica);
    }
}

class Z3_2{
    static char toUpperCase(char t)
    {
        //tablica = t;
        System.out.println(t);
    }
}

2 个答案:

答案 0 :(得分:3)

目前你有三个错误 - 一个不是错误,这只是一个非常糟糕的主意。其他的就是你现在遇到的。

首先,您有一个静态方法,但是您将其称为实例方法。不要这样做 - 这意味着你的代码不会做它看起来像它正在做的事情。你应该只通过类名称来调用静态方法:

Z3_2.toUpperCase(...);

第二个问题是您的方法被称为toUpperCase,但您尝试将其称为Z3_2,就好像它被称为char ...这是类的名称,而不是方法。

第三个问题是您的方法的参数类型为char[],但您尝试传入char。您需要更改参数类型,或者一次调用一个for (char c : tablica) { Z3_2.toUpperCase(c); } ,例如

toUpperCase

此外:

  • 您需要让char方法返回一些内容,因为它的返回类型为toUpperCase
  • 您几乎肯定会在main
  • 中使用Z3_2的返回值
  • {{1}}的班级名称毫无意义。名字很重要 - 请仔细选择。

答案 1 :(得分:0)

您应该可以在main中执行此操作:

Z3_2.toUppeCase('s');

您可以这样做,因为该方法是静态的,并且不需要对象来调用它。

应打印

S

问题的第二部分是传递数组而不是单个char。 你可以做两件事。要么循环调用它。或者让方法接受数组。

方法1:

for(Character ch: tablica){
     Z3_2.toUppeCase(ch);
}

方法2:

static char toUpperCase(Character[] t)
{
    for(Character ch: t){ 
        System.out.println(ch);
    }
}