
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.