public - метод доступен для вызова вне методов, свойств и событий класса.
static - метод доступен для вызова без необходимости инициализации экземпляра класса.
Почитайте про модификаторы доступа и статические классы/методы/конструкторы/члены.
anuar1810, ну Main - это точка входа в ваше приложение, поэтому он обязан быть статическим просто потому, что среда, в которой будет выполняться приложение, не должна создавать экземпляр объекта. В документации, кстати, написано, что Main не обязательно должен быть публичным.