java初学者“Hello World”

时间:2011-02-18 00:41:12

标签: java methods static static-methods

我正在努力学习Java。

我不明白为什么这段代码不起作用。

它不会从Hello World函数输出“test()”。

我做错了什么?

public class Main {

    public test(args) {
        System.out.println(args);
    }

    public static void main(String[] args) {
        test('Hello World');
    }
}

13 个答案:

答案 0 :(得分:15)

首先:

public test(args) {
    System.out.println(args);
}

你需要一个带参数的类型 - Java是一种强类型语言,因此你总是需要指定一个类型。至于这里的类型是什么,System.out.println()实际上可以采取任何东西,所以你可以将类型设置为String,Object或任何你喜欢的东西(因为Object有一个toString()方法,它有很多重载处理所有的原语。)请记住,这是不寻常的,但你遇到的大多数方法只会采取特定类型的东西!

由于你只是在这里调用main方法中的test,而你正在向它传递一个字符串,所以你也可以将args的类型设置为String。

第二个问题是没有指定返回类型。您始终需要指定返回类型,在这种情况下不会返回任何内容,因此类型为void。如果你不这样做,那么编译器无法知道你所写的内容是方法还是构造函数。

第三个问题是test是一个实例方法,但你是静态调用它。 test()也需要是静态的,否则它属于Main的实例,而不属于Main类。为什么这很重要?好吧,可能有数千个Main实例,那么该方法应该运行什么实例?编译器无法知道。

下一步:

public static void main(String[] args) {
    test('Hello World');
}

你在这里传递一个字符串,需要用双引号。 Java以不同的方式处理引号,单引号用于单字符文字,双引号用于字符串。所以你永远不能把这个字符串用这样的单引号括起来,它必须加倍。

全部放在一起:

public class Main {

    public static void test(String args) { //Add return type and parameter type, make test static
        System.out.println(args);
    }

    public static void main(String[] args) {
        test("Hello World"); //Change single quotes to double quotes
    }
}

答案 1 :(得分:2)

在Java中,字符串总是使用双引号,而不是单引号。这是为char类型保留的。

test("Hello World");

此外,您的测试函数没有返回类型(甚至不是void),而且它是一个方法,而main是静态的,因此您需要实例化Main或make {{ 1}}静态。您还需要为每个参数指定类型。

试试这个:

test

答案 2 :(得分:2)

test()方法有语法错误

test()方法缺少返回类型和参数的类型。将其更改为例如。

public void test(String args) {
    System.out.println(args);
}

“Hello World”

的语法无效

字符串需要用双引号括起来,所以将“Hello World”更改为“Hello World”

您无法从类方法中调用实例方法。

您的test()方法是Main类的实例成员,而main()是类方法。你需要一个Main类的实例来调用test()。 e.g。

public static void main(String[] args) {
        new Main().test("Hello World");
}

另外,将test()更改为类方法

你也可以让test()成为一个类方法,这样你就可以从main()

中调用它
public static void test(String args) {
    System.out.println(args);
}

答案 3 :(得分:2)

为类创建object并在main方法中访问,或将方法声明设为static

答案 4 :(得分:1)

比较:

public class Main {

    public static void test(String args) {
        System.out.println(args);
    }

    public static void main(String[] args) {
        test("Hello World");
    }
}

答案 5 :(得分:1)

public class HelloWorld {
public void test(String str) {
    System.out.println(str);
}
public static void main(String[] args) {
    HelloWorld helloWorld = new HelloWorld();
    helloWorld.test("Hello World");
}
}
  • Java中的方法在其名称之前具有返回类型或void。例如:上面代码中的void。
  • 方法参数的名称前应包含数据类型。例如:上面代码中的字符串。
  • 您必须创建类的实例并使用instance.methodName调用该方法或将该方法声明为static并使用Classname.methodName调用它。
  • 作为一种好习惯,您的班级名称以大写字母开头,方法名称以小写字母开头。

答案 6 :(得分:0)

测试应该是静态方法。 从静态方法你只能调用静态方法或 创建Main的实例并像

一样调用

Main m = new Main() m.test(“你好世界”);

进一步的hello world应该是双引号。

答案 7 :(得分:0)

从java开始的简单步骤

  1. 在c:
  2. 中创建一个临时文件夹testjava
  3. 使用记事本或任何其他编辑器在testjava中创建一个名为Hello.java的小文件,文本为

    class Hello {
        public static void main(String[] args) {
            System.out.println("Hello, world");
        }
    }
    
  4. 转到cmd的路径 c:\ Program Files(x86)\ Java \ jdk1.6.0_14 \ bin>
  5. 编译您编写的代码 javac c:\ testjava \ Hello.java 应在testjava
  6. 中创建一个名为Hello.class的类文件
  7. 转到路径 C:\ testjava>
  8. 运行命令为 java Hello
  9. 它应该打印为 你好,世界

答案 8 :(得分:0)

您可以将它全部放在main方法中,而不是创建和使用测试方法,所以它看起来像这样:

public class HelloWorld {
    public static void main(String[] args){
        System.out.println("Hello World!");
    }
}

请注意,双引号用于字符串,因为单引号通常用于字符:​​)

答案 9 :(得分:0)

public class Main {

 // You always have to have a return type for a function, at least void
 //Also, the datatype of every variable inside the parantheses () of a function must be defined

    public void test(String args) {
        System.out.println(args);
    }

    public static void main(String[] args) {
        test("Hello World"); //Strings are always passed between " and ", not ' and '
    }
}

现在你的代码应该可以工作了。

答案 10 :(得分:0)

您可以将该代码写入一个方法。

例如:

LinkedList<MyClass> list = new LinkedList<MyClass>();
list.add(instance1);
list.add(instance2);

这就是我在课堂上学到的东西!希望这有帮助!

答案 11 :(得分:0)

您必须为测试方法指定返回类型。 您还必须对字符串使用双引号(")。单引号(')可用于字符。

public void test(String args){
  System.out.println(args);
}

public static void main(String[] args){
  test("Hello World");
}

答案 12 :(得分:-1)

我修复了你的代码:

public class Main {

    private void test(String args) {
        System.out.println(args);
    }

    public static void main(String[] args) {
        Main TestObject = new Main();
        obj.test("Hello World");
    }
}

好的,让我们看看为什么你的代码无效:

  1. 您的test()方法有args作为参数。很好,但你没有说明这个args变量的类型是什么。 IntStringChar?你需要定义它。

  2. 对于字符串,您应该使用双引号:

    String name = "Adam";
    

    对于char,您可以使用单引号:

    char key = 'A';
    
  3. Java是一种面向对象的语言,意味着存在具有状态(变量)的对象,以及它们可以做的事情(方法)。调用test()方法时,您没有将其从对象中调出。

  4. 调用test()方法后会返回什么?即使它什么都不返回,你也必须写一个返回类型void

  5. 最后一个提示,当你遇到麻烦时,只需使用一个调试器,然后完成程序中的每一步,看看问题是什么。