По соглашению классы начинаются с заглавных букв, а переменные - нет.Нет ничего, что мешало бы иметь класс с тем же именем, что и у переменной.Единственный раз, когда вы не можете это сделать, это зарезервированные слова.Например, вы не могли бы сделать
int int = 3; // not allowed
Integer Integer = 3; // allowed, but discouraged
Если бы ваш код был более условным, это было бы так:
class Cricket{
void bat(){
System.out.println("sachin");
}
public static void main(String ar[]){
Cricket cricket=new Cricket();
cricket.bat();
}
}
Наличие переменной, точно такой же, как у класса, может вызватьнекоторая путаница со статическими методами.Учтите это:
void foo(Runnable r) throws Exception {
Thread Thread = new Thread(r);
Thread.start();
Thread.sleep(100); // Okay, now WTF does this do?
}