Что касается использования ключевых слов, мы уже кое-что знаем о статическом методе. Чтобы избежать ненужных ошибок при его использовании, каждый должен понимать сферу его использования. В этой статье моменты, на которые следует обратить внимание при использовании статики, разделены на два аспекта: один — это область доступа, а другой — примечание о вызове метода. Давайте рассмотрим все моменты, на которые следует обратить внимание при использовании статики.
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. Во время определенных операций не игнорируйте эти два элемента использования. Это также распространенная ошибка, с которой новички часто сталкиваются при практике.