2016-02-07 2 views
0

Почему я должен делать метод с типом как classname, а не примитивным типом типа void, int ...?Методы с именами классов как их тип

BufferedImage imagetest(String file) throws IOException{ 
    return null; 
} 

Почему тип BufferedImage не является ничтожным или что-то в этом роде? Я знаю, что это глупый вопрос, но я надеюсь, что кто-то может помочь.

+1

Дело не в том, что это глупый вопрос. Это не вопрос. См. [Ask]. Подробнее читайте https://docs.oracle.com/javase/tutorial/. – Tunaki

+0

Вы можете использовать void, если нет возвратного и примитивного типов. – cliff2310

ответ

0

Здесь BufferedImage является возвращенным типом данных. Это может быть любой другой тип класса, такой как String, или примитивный тип, такой как int.

// This method returns a String 
String method() { 
    return ""; 
} 

// This method returns an int 
int method() { 
    return 0; 
} 

Вы бы использовать void, если вам не нужно возвращать значение, и просто хотите сделать что-то.

// This method doesn't return anything 
void method() { 
    ... 
} 
+0

Более точно, методы void на основе экземпляров часто являются мутаторами для экземпляра, в котором они определены. –

+0

@WilliamMorrison Они иногда бывают, но это все еще ** делает ** что-то, а не ** возвращает ** что-то. – SamTebbs33

+0

Чаще всего они есть. На самом деле у меня возникают проблемы с примером для метода экземпляра void, который * не * мутирует экземпляр, поэтому я сказал «более точно». –

0

Он называется возвращаемым типом, и он позволяет методу вернуть что-то вызывающему. В этом случае BufferedImage (который всегда null). Но вы можете вернуть действительный BufferedImage, тем самым устраняя логику предоставления буферизованного изображения от вызывающего.

Смежные вопросы