Question: I can't answer completely "why should we call "**void**" is '**return type**'?"

*How do I prove that "**void**" is a type?*

Answer: 
Yes, void is definitely type, meaning 'nothing'.
By the way, do you mean C (C++, Objective-C, ...).
Couldn't say for any language, but in C (C++, Objective-C, ...) void is a type.  

But it is special data type. You couldn't declare variable of type void. That's differ void from any other types.
But you could declare pointer to void. Function which return value is void means function has no return value, or returns nothing. That's afraid all cases where void type could be used.  

void \* v; /\*\* declares variable v as pointer to void \*/  

\*v used as left value in expression could be assigned value of any type without type cast. That's why void type was introduced into language.  

You updated your question, underlining you were asking about Java. Java has no pointers and no functions. void type is used in declarations of methods returning nothing.
Void is a type in most languages, and given the typical type system, it makes the most sense to think about it as a type that specifies "nothing". You didn't state your language, but for example, in C#, the `void` keyword corresponds to the [.NET framework void type](http://msdn.microsoft.com/en-us/library/system.void.aspx).