Тип возврата - это то, что вы получаете от него. Когда вы это называете, что вы надеетесь вернуться? Например, если метод получает среднее значение из двух чисел, то вы ожидаете номер обратно, поэтому тип возвращаемого значения будет иметь тип номера, например «int» (integer). Вы можете видеть, что он должен использовать эту логику или, глядя в методе слова return - то, что приходит после возврата, - это то, что возвращается, и его тип должен быть объявлен в методе (например, если он говорит «return 4;» он возвращает int, и должен быть, например, public int getFour()
Вы также спросили, например, о тестировании() и тестировании (слово) Помню, что у меня такая же сложность.Различие между ними также относится к линии декларации метода. Я проиллюстрирую.
public String testing(){
return "a word";
}
Вызов этого метода осуществляется «System.out.println (testing());» должен печатать «слово». Вызов этого метода осуществляется с помощью «System.out.println (тестирование (« слово »)); даст вам проблему - это потому, что когда вы вызываете тестирование, он смотрит на соответствующий метод: один в правильном классе, с правильным типом возврата и с правильными аргументами/параметрами. Если вы вызываете тестирование («слово»), это означает, что вы используете String в качестве аргумента (потому что «слово» является строкой), и поэтому он пытается использовать метод тестирования (String aString), который не существует. Итак, вы используете пустые скобки, когда метод не принимает ввода, и вы кладете вещи в скобки, когда метод ожидает чего-то. Это должно быть менее запутанным, чем кажется, потому что обычно логично - если вы хотите вызвать метод, который возвращает среднее значение, вам нужно задать себе «Среднее значение , что?» Вероятно, вам нужно будет предоставить ему значения, которые вы хотите усреднить.
Двигаясь на: (а) тестирование() по сравнению с (б) AClass.testing() по сравнению с (с) aclass.testing() -
В (а), нет класса указано. Поэтому, если вы вызываете его из этого класса, Java может угадать, какой класс: этот, и он будет работать. Из любого другого класса он не будет знать, о чем вы говорите, и может даже оскорбить вас. В (b) вы указываете класс в целом - поэтому он будет знать, какой класс его найти, и он будет работать, если это «статический метод». * [см. внизу] В (c) вы указываете экземпляр из AClass, который вы хотите запустить «тестирование()» на *.
Например, представьте, что вы создали класс под названием «Бизнес». Вы создаете сто бизнес-объектов, указав для каждого имя, номер, адрес. , например.
Business b = new Business(name, number, address);
Тогда в бизнес-классе у вас есть метод «getName()». Этот метод не принимает аргументов - вы можете видеть, что скобки пусты - так, если из другого класса вы вызываете «Business.getName()», как он может узнать, какое имя вы хотите? Вы только что создали сотню предприятий! Это просто не может. Поэтому для такого метода вы должны называть «b.getName()» (b - это бизнес, который мы создали выше), и он получил бы имя для этого экземпляра бизнеса - а именно, b. Я рад помочь, поэтому, если вы запутались в каких-либо частях того, что я только что написал, дайте мне знать, и я попытаюсь уточнить!
Редактировать: Немного о статических методах: Статические методы не относятся к экземпляру класса. getName(), например, получит имя this Бизнес - то есть этот экземпляр бизнес-класса. Но предположим, что в бизнес-классе вы создали метод, который взял первую букву каждого слова в String и преобразовал ее в верхний регистр - например, если вы хотите, чтобы названия компаний выглядели более профессиональными при их распечатке.
public static String stringToUpperCase(String aString){
aString = aString.substring(0, 1).toUpperCase() + aString.substring(1);
return aString;
}
И использовать это, вы измените метод GetName() от:
public String getName(){
return name;
}
к
public String getName(){
return stringToUpperCase(name);
}
Новый метод используется здесь, чтобы сделать имя есть верхний регистр первый письмо - но это степень его участия в бизнес-классе.Вы заметили, что он не запрашивает информацию об имени, адресе или номере для определенного бизнеса. Он просто берет строку, которую вы ей даете, что-то делает, и возвращает ее обратно. Неважно, у вас нет Бизнеса или сотни. Для вызова этого метода, вы будете использовать:
System.out.println(Business.stringToUpperCase("hello"));
Это будет печатать Привет. Если бы это было не статический метод, вы должны сделать новый бизнес первый:
Business b = new Business("aName", "aNumber", "anAddress");
System.out.println(b.stringToUpperCase("hello"));
И если метод сделал необходим доступ к дополнительной информации Бизнес-экземпляра (как номер имя бизнес-или адрес), он не сможет быть переменной экземпляра.
Если у вас есть два вопроса, вы должны задать два вопроса. Вопроса о «пустоте» достаточно для одного вопроса. Вы должны сделать часть «вызывающих методов» отдельным вопросом. –