Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What does void do in java?

Tags:

java

void

The return type—the data type of the value returned by the method, or void if the method does not return a value.

http://download.oracle.com/javase/tutorial/java/javaOO/methods.html

Okay, then.. Here is my question:

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

The above code does not work without void.

Exception in thread "main" java.lang.Error: Unresolved compilation problems: 
    The method tellItLikeItIs() is undefined for the type EnumTest

What did I miss out? Why is there a void in there? And it does return a string?

like image 896
Alice Avatar asked Sep 09 '11 20:09

Alice


People also ask

What is the use of void in Java?

The void keyword specifies that a method should not have a return value.

What is void with example in Java?

void is a Java keyword. Used at method declaration and definition to specify that the method does not return any type, the method returns void . It is not a type and there is no void references/pointers as in C/C++.

What does a void return in Java?

Any method declared void doesn't return a value. It does not need to contain a return statement, but it may do so.

What does the void method do?

Void methods do some action (called a side-effect); they do not return any value; Type methods return some value; they do not do an action. Examples of void methods include output methods such as: outputInt, outputDouble, outputString, outputlnInt, etc.


3 Answers

You mean the tellItLikeItIs method? Yes, you have to specify void to specify that the method doesn't return anything. All methods have to have a return type specified, even if it's void.

It certainly doesn't return a string - look, there are no return statements anywhere. It's not really clear why you think it is returning a string. It's printing strings to the console, but that's not the same thing as returning one from the method.

like image 82
Jon Skeet Avatar answered Oct 17 '22 07:10

Jon Skeet


The reason the code will not work without void is because the System.out.println(String string) method returns nothing and just prints the supplied arguments to the standard out terminal, which is the computer monitor in most cases. When a method returns "nothing" you have to specify that by putting the void keyword in its signature.

You can see the documentation of the System.out.println here:

http://download.oracle.com/javase/6/docs/api/java/io/PrintStream.html#println%28java.lang.String%29

To press the issue further, println is a classic example of a method which is performing computation as a "side effect."

like image 37
Dhruv Avatar answered Oct 17 '22 09:10

Dhruv


When the return type is void, your method doesn't return anything.

Look again at your code: There's no return in that method. You print to the console and exit.

like image 1
duffymo Avatar answered Oct 17 '22 09:10

duffymo