Em termos de utilização de palavras-chave, já sabemos algo sobre o método estático. Para evitar erros desnecessários na sua utilização, todos devem compreender o seu âmbito de utilização. Este artigo divide os pontos a serem observados ao usar estática em dois aspectos, um é o escopo de acesso e o outro é a observação sobre a invocação de métodos. Vamos dar uma olhada nos pontos completos a serem observados ao usar estática.
1. Ao usar métodos estáticos, você só pode acessar propriedades e métodos declarados estaticamente, mas propriedades e métodos não declarados estaticamente não podem ser acessados.
pacote com.jk.ref; classe Pessoas{ Nome da sequência; private static String país = "China"; pessoas públicas(nome da string){ este.nome=nome; } público void diga(){ System.out.println("nome:"+nome+" "+"país:"+país); } /** * @retornar o país */ public static String getCountry() { país de retorno; } /** * @param country o país a ser definido */ public static void setCountry(String país) { Pessoas.país = país; } } classe pública StaticDemo01 { public static void main(String[] args) { // TODO stub de método gerado automaticamente People.setCountry("Xangai"); Pessoas ps1=new Pessoas("zhangsan"); //People.country="Xangai"; ps1.tell(); Pessoas ps2=new Pessoas("lisi"); // ps2.country="Xangai"; ps2.tell(); Pessoas ps3=novas Pessoas("wangwu"); // ps3.country="Xangai"; ps3.tell(); } }
2. A referência da classe pai só pode ajustar os métodos substituídos da classe pai e os métodos da classe filho com o mesmo nome do pai e do filho não serão substituídos, mas obscurecidos.
classe pública TestMain { public static void main(String[] args) { Super sup = new Sub(); //Encapsulamento (modelação ascendente) sup.m1(); //A referência da classe pai não pode ajustar o método não substituído da subclasse e gera mi em Super sup.m2();//Chame o método da subclasse m2, herde e construa o método da classe pai primeiro, substitua (reescreva) o método com o mesmo nome do método e produza m2 em Sub Sub sub = (Sub)sup; //Unboxing (formato para baixo) sub.m1(); //Chame o método estático da subclasse m1, primeiro construa o método da classe pai, o nome do método é o mesmo, o nome do método é o mesmo método de mascaramento, produza m2 em Sub sub.m2();//Chame o método da subclasse m2, herde e construa o método da classe pai primeiro, substitua (reescreva) o método com o mesmo nome do método e produza m2 em Sub } } class Super{ //Classe pai public static void m1() { //Método estático da classe pai System.out.println(“m1 in Super”); } public void m2() { //Método da classe pai System.out.println(“m2 in Super”); } } class Sub extends Super{ //Subclass public static void m1() { //Subclass static method System.out.println(“m1 in Sub”); } public void m2() { //Método de subclasse System.out.println(“m2 in Sub”); } }
Os pontos acima são os pontos a serem observados ao usar estática em Java. Durante operações específicas, certifique-se de não ignorar esses dois itens de uso. Este também é um ponto de erro comum que os novatos costumam encontrar ao praticar.