почему можно (!) создать функцию с именем таким же как у имени класса в java?
Ну то есть класс:
class MyClass {
int MyClass() {
return 0;
}
}
это же создаёт путаницу, что это как бы конструктор. Или у этого есть тайный смысл? По идее, если бы компилятор ругался, что бы было меньше ошибок.