
Что касается использования ключевых слов, мы уже кое-что знаем о статическом методе. Чтобы избежать ненужных ошибок при его использовании, каждый должен понимать сферу его использования. В этой статье моменты, на которые следует обратить внимание при использовании статики, разделены на два аспекта: один — это область доступа, а другой — примечание о вызове метода. Давайте рассмотрим все моменты, на которые следует обратить внимание при использовании статики.
1. При использовании статических методов вы можете получить доступ только к статически объявленным свойствам и методам, но доступ к нестатически объявленным свойствам и методам недоступен.
пакет com.jk.ref;
класс Люди {
Строковое имя;
частная статическая строка Country="Китай";
общественные люди (строковое имя) {
это.имя=имя;
}
публичное недействительное сообщение () {
System.out.println("name:"+name+" "+"country:"+country);
}
/**
* @return страну
*/
общественная статическая строка getCountry() {
страна возврата;
}
/**
* @param страна страна, которую нужно установить
*/
public static void setCountry(String Country) {
Люди.страна = страна;
}
}
общественный класс StaticDemo01 {
public static void main(String[] args) {
// TODO Автоматически сгенерированная заглушка метода
People.setCountry("Шанхай");
Люди ps1=новые Люди("чжансан");
//People.country="Шанхай";
пс1.скажите();
Люди ps2=новые Люди("lisi");
// ps2.country="Шанхай";
пс2.скажите();
Люди ps3=новые люди("ванву");
// ps3.country="Шанхай";
пс3.сказать();
}
} 2. Ссылка на родительский класс может корректировать только переопределенные методы родительского и дочернего классов. Методы с одинаковыми именами родительского и дочернего классов не будут перезаписаны, а скрыты.
общественный класс TestMain {
public static void main(String[] args) {
Super sup = new Sub(); //Инкапсуляция (формирование вверх)
sup.m1(); //Ссылка на родительский класс не может изменить непереопределенный метод подкласса и выводит mi в Super
sup.m2();//Вызов метода подкласса m2, наследование и построение сначала метода родительского класса, перезапись (перезапись) метода с тем же именем метода и вывод m2 в Sub
Sub sub = (Sub)sup; //Распаковка (форма вниз)
sub.m1(); //Вызов статического метода подкласса m1, сначала создайте метод родительского класса, имя метода такое же, имя метода — тот же метод маскировки, выведите m2 в Sub
sub.m2();//Вызов метода подкласса m2, наследование и построение сначала метода родительского класса, перезапись (перезапись) метода с тем же именем метода и вывод m2 в Sub
}
}
class Super{ //Родительский класс public static void m1() { //Статический метод родительского класса System.out.println(“m1 в Super”);
}
public void m2() { //Метод родительского класса System.out.println("m2 в Super");
}
}
class Sub расширяет Super{ //Подкласс public static void m1() { //Статический метод подкласса System.out.println("m1 in Sub");
}
public void m2() { //Метод подкласса System.out.println("m2 in Sub");
}
}Выше приведены моменты, на которые следует обратить внимание при использовании static в Java. Во время определенных операций не игнорируйте эти два элемента использования. Это также распространенная ошибка, с которой новички часто сталкиваются при практике.