Во-первых:
public test(args) {
System.out.println(args);
}
Вам нужен тип, чтобы идти с параметром - Java является строго типизированным языком, и поэтому вам всегда нужно указывать тип. Что касается типа здесь, System.out.println()
может на самом деле принимать что угодно, поэтому вы можете установить тип на String, Object или что угодно (поскольку у Object есть метод toString()
, и он имеет много перегрузок для обработки всех примитивы.) Имейте в виду, что это необычно, но большинство методов, с которыми вы сталкиваетесь, просто примут что-то определенного типа!
Поскольку здесь вы вызываете test только из основного метода и передаете ему строку, вы можете также установить тип аргументов в String.
Вторая проблема заключается в том, что тип возвращаемого значения не указан. Вам всегда нужно указывать тип возвращаемого значения, в этом случае ничего не возвращается, поэтому тип равен void
. Если вы этого не сделаете, компилятор не сможет узнать, что вы написали - это метод или конструктор.
Третья проблема заключается в том, что test - это метод экземпляра, но вы вызываете его статически. test () также должен быть статическим, иначе он принадлежит экземплярам Main, а не классу Main. Почему это важно? Ну, потенциально могут быть тысячи экземпляров Main, так на каком экземпляре должен выполняться метод? Компилятор не может знать.
Далее:
public static void main(String[] args) {
test('Hello World');
}
Вы передаете здесь строку, которая должна быть в двойных кавычках. Java обрабатывает кавычки иначе, чем PHP, одинарные кавычки используются для односимвольных литералов, а двойные кавычки используются для строк. Таким образом, вы никогда не можете заключить строку в одинарные кавычки, как это, она должна быть двойной.
Собираем все вместе:
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
}
}