基础Java - 请用一种方法帮助一个强调菜鸟?

时间:2011-10-26 23:00:52

标签: java

我的名字是阿里,我刚开始在开放大学学习两个单元,所以我对Java完全不满意。我正在尝试使用以下代码进行编译,但是我从导师那里得到的支持不足是可怕的,我在房间里张开的几本书并没有帮助我开始。

我有一种方法可以回答一些问题:

public char[] methodA()
{
    char[] alphas = {'s', 't', 'e', 'a', 'm'};
    char temp = alphas[0];
    int i = 0;

    while (i < alphas.length - 1)//1
    {
        alphas[i] = alphas[i+1]; //2
        i++;
    }

    alphas[alphas.length-1]=temp;

    return alphas;
}

如何使用我的IDE成功编译?我试过把它放在我的'main'方法的语法中,但它不接受它。

这就是我现在所拥有的:

package openuniversity;

public class Main
{
    public static void main(String[] args)
    {
        public static char[] methodA()
        {   
            char[] alphas = {'s', 't', 'e', 'a', 'm'};
            char temp = alphas[0];
            int i = 0;

            while (i < alphas.length - 1)//1
            {
                alphas[i] = alphas[i+1]; //2
                i++;
            }

            alphas[alphas.length-1]=temp;

            return alphas;
        }
    }
}

感谢任何可以提供帮助的人。 阿里

4 个答案:

答案 0 :(得分:2)

所有方法都必须包含在一个类中。如果你的IDE已经为你生成了这个,那么你应该能够使它成为你的main方法的兄弟,如下所示:

public class Foo {
    public static void main(String[] args) {
        // Your main method code goes here
    }

    public char[] methodA() {
        char[] alphas = {'s', 't', 'e', 'a', 'm'};
        char temp = alphas[0];
        int i = 0;

        while (i < alphas.length - 1)//1
        {
            alphas[i] = alphas[i+1]; //2
            i++;
        }

        alphas[alphas.length-1]=temp;
        return alphas;
    }
}

如果您希望通过主要方法拨打methodA,则需要:

  • 创建Foo类型的新对象(通过说Foo x = new Foo()) 然后在你创建的对象上调用方法(通过说 x.methodA()
  • 通过将其签名更改为methodA,将public static char[] methodA()更改为静态,然后静态调用该方法(通过说Foo.methodA()

答案 1 :(得分:1)

为了能够在public static void main(String [] args)内调用它,如果它位于main所在的同一个类中,则应将方法声明为static

public class Main{
    public static void main(String[] args){
       methodA();
    }

    public static char[] methodA(){
        // Your code here
    }
}

答案 2 :(得分:0)

首先要做的事情:在Java上,方法总是在一个类中,包括main

class SomeClass {
    public static void main(String[] args) {
        // This is the main method, this is invoked when
        //you execute the compiled class on your IDE
        methodA();
    }

    public static char[] methodA() {
        // Insert your logic here
    } 
}

了解我如何将methodA更改为static?那是因为静态方法只能访问其他静态方法,变量或常量。如果您不希望它是静态的,您可以这样做:

class SomeClass {
    public static void main(String[] args) {
        // This is the main method, this is invoked when
        //you execute the compiled class on your IDE
        SomeClass someClass = new SomeClass();
        someClass.methodA();
    }

    public char[] methodA() {
        // Insert your logic here
    } 
}

答案 3 :(得分:0)

你无法在Java中将方法定义为另一个方法,所有方法都在同一级别的类中,但是(我重复一遍)你不能将方法放在另一个方法中。 一般例子:

public class MyClass{
      public static void main (String[]args){//main method
      }
      public static void method1(){
        //method corpse
      }
      public static int method2(int x){
        //method corpse
      }
      public static char[] methodA(){
        //method corpse
      }
}