[英]What does void do in java?
返回類型 - 方法返回的值的數據類型,如果方法未返回值,則返回void。
http://download.oracle.com/javase/tutorial/java/javaOO/methods.html
好的,那么..這是我的問題:
public class EnumTest {
Day day;
public EnumTest(Day day) {
this.day = day;
}
public void tellItLikeItIs() {
switch (day) {
case MONDAY: System.out.println("Mondays are bad.");
break;
case FRIDAY: System.out.println("Fridays are better.");
break;
case SATURDAY:
case SUNDAY: System.out.println("Weekends are best.");
break;
default: System.out.println("Midweek days are so-so.");
break;
}
}
public static void main(String[] args) {
EnumTest firstDay = new EnumTest(Day.MONDAY);
firstDay.tellItLikeItIs();
EnumTest thirdDay = new EnumTest(Day.WEDNESDAY);
thirdDay.tellItLikeItIs();
EnumTest fifthDay = new EnumTest(Day.FRIDAY);
fifthDay.tellItLikeItIs();
EnumTest sixthDay = new EnumTest(Day.SATURDAY);
sixthDay.tellItLikeItIs();
EnumTest seventhDay = new EnumTest(Day.SUNDAY);
seventhDay.tellItLikeItIs();
}
}
http://download.oracle.com/javase/tutorial/java/javaOO/enum.html
如果沒有void,上面的代碼不起作用。
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The method tellItLikeItIs() is undefined for the type EnumTest
我錯過了什么? 為什么那里有空白? 它確實返回一個字符串?
你的意思是tellItLikeItIs
方法? 是的,您必須指定void
以指定該方法不返回任何內容。 所有方法都必須指定返回類型,即使它是void
。
它肯定不會返回一個字符串 - 看,在任何地方都沒有返回語句。 為什么你認為它返回一個字符串,它不是真的清楚。 它正在向控制台打印字符串,但這與從方法中返回一個字符串不同。
代碼在沒有void
情況下無法工作的原因是因為System.out.println(String string)
方法沒有返回任何內容,只是將提供的參數打印到標准輸出終端,在大多數情況下是計算機監視器。 當方法返回“nothing”時,您必須通過將void
關鍵字放在其簽名中來指定。
您可以在此處查看System.out.println的文檔:
http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29
為了進一步解決這個問題,println是一種將計算作為“副作用”執行的方法的典型示例。
Void:類型修飾符void表示main方法不返回任何值。 方法的所有參數都在括號之前的內部聲明。 這里String args []聲明一個名為args的參數,該參數包含類類型字符串的對象數組。
虛空不返回任何東西; 它告訴編譯器該方法沒有返回值。
void
意味着它什么也不返回。 它不返回一個字符串,你將一個字符串寫入System.out
但你沒有返回一個。
您必須指定方法返回的內容,即使您只是說它什么都不返回。
從技術上講,他們可以設計這樣的語言,如果你不寫一個返回類型,那么它假定什么都不返回,但是讓你明確寫出void
有助於確保缺少返回值是故意的而不是偶然的。
當返回類型為void時,您的方法不會返回任何內容。
再看一下你的代碼:那個方法沒有回報。 您打印到控制台並退出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.