For calling (executing) Each and every function, we need object of their related class. the reason behind to make a main function static. it will free from object, means it will call automatically without object when program will run. for executing static function there is no need to object. it only accessed by its class name. so main function is defined static. because main function is the entry point of executing program.