Java gramática básica: day06 [Herança e método de construção]

Primeiro, o que é o pacote

1, o pacote Overview

linguagem de programação orientada a objeto é uma simulação do mundo objetivo, o mundo objetivo, variáveis de membro estão escondidos dentro do objeto, o mundo exterior não pode manipular diretamente e modificar. O pacote pode ser considerada como uma barreira protectora contra os códigos de classe e outros tipos de dados são acedidos aleatoriamente.
Para aceder a este tipo de dados, você deve especificar o caminho. encapsulamento apropriado torna o código mais fácil de entender e manter, e melhorar o código de segurança

2, o princípio

3, o passo de acondicionamento

1. Use palavras-chave para modificar variáveis ​​de membro privadas.

2. A necessidade de acesso a variáveis ​​de membro, proporcionando um par correspondente de getXxx método, método setXXX

Em segundo lugar, o -Privada operação de chave pacote

1. Descrição do problema: Ao definir a idade da pessoa, não pode impedir valor razoável é definido para entrar.

Solução: A chave privada terá de ser protegida variáveis ​​de membro pode ser modificado.

Uma vez que o uso privado de modificado, então esta classe que ainda pode ser livremente acessível. Mas! Fora deste intervalo além da categoria não directamente acessíveis.

acesso indirecto variáveis ​​de membro privadas, é a definição de um par de crianças getter / métodos setter

  1. Ele deve ser chamado setXXX ou getXxx regras de nomenclatura.
  2. Para Getter, os parâmetros não têm, tipo de retorno e a variável membro correspondente;
  3. Para Setter, você não pode retornar um valor, tipos de parâmetro e a variável de membro correspondente.

2, o código de exemplo

classe Person
a classe Person {public 
    String nome; // Nome 
    idade int privado; // Idade 

    vazio Mostrar pública () { 
        System.out.println ( "Meu nome:" + Nome + "Age:" + Age); 
    } 

    // este o método de membros dedicados à idade configuração de dados 
    public void o setAge (int NUM) { 
        IF (NUM <100 && NUM> = 9.) {// Se este for o caso razoável 
            idade NUM =; 
        } else { 
            System.out.println ( " dados razoável ") ;! 
        } 
    } 

    // este método membros, especificamente sussurro obter dados de idade 
    int público getAge () { 
        idade de retorno; 
    } 
}

categoria de teste

day06.demo03 Package; 

Demo03Person classe pública { 
    public static void main (String [] args) { 
        a Pessoa Pessoa = new new Pessoa (); 
        person.show (); 

        PERSON.NAME = "Zhao Liying"; 
// person.age = -20 ; // acesso direto ao conteúdo privado, frase errada! 
        person.setAge (20 é); 
        person.show (); 
    } 
}

resultados operacionais

"D: Files \ Java \ Program \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: D: \ Program Files \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 62064: D: \ Program Files \ JetBrains IntelliJ IDEA \ 2.019,2 \ bin "-Dfile.encoding = UTF-8 -classpath C: \ onedrive \ java \ src \ a \ produção \ onedrive day06.demo03.Demo03Person 
meu nome: null, Idade: 
meu nome: Zhao Liying idade: 20 

Processo Terminou com código de saída 0

3, praticar usando as definições de chave privada

A definição de classe

day06.demo03 Package; 

/ * 
para o valor booleano entre o tipo básico, o método deve ser escrito na forma Getter isXxx e setXXX regras inalteradas. 
 * / 

Class Student Public { 
    Privado String nome; // nome 
    idade int privado; // Idade 
    private boolean masculino; // homem criança não é 

    pública setMale void (booleana B) { 
        MASCULINO = B; 
    } 

    public boolean IsMale () { 
        return do sexo masculino; 
    } 

    public void o setName (string STR) { 
        name = STR; 
    } 

    Cordas getName () {public 
        nome retorno; 
    } 

    public void o setAge (int NUM) { 
        Age = NUM; 
    } 
 
    public int getAge () {
        return Idade; 
    }
}

Define a classe de teste

empacotar day06.demo03; 

Demo04Student classe pública { 
    public static void main (String [] args) { 
        stu Student = new Student (); 

        stu.setName ( "鹿晗"); 
        stu.setAge (20); 
        stu.setMale (true); 

        System.out.println ( "姓名:" + stu.getName ()); 
        System.out.println ( "年龄:" + stu.getAge ()); 
        System.out.println ( "是不是爷们儿:" + stu.isMale ()); 
    } 
}

resultados operacionais

"D: Files \ Java \ \ Program jdk-13.0.2 \ bin \ java.exe" "-javaagent: D: \ Program Files \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 62152: D: \ Program Files \ \ JetBrains IntelliJ IDEA 2019,2 \ bin" -Dfile.encoding = UTF-8 -classpath C: \ onedrive \ Java \ src \ a \ produção \ onedrive day06.demo03.Demo04Student 
姓名:晗鹿
年龄: 20 
是不是爷们儿: verdadeiro 

processo terminou com código de saída 0

Em terceiro lugar, o nome da variável parâmetro com o mesmo nome como um nome de variável de membro Bem como fazer?

1. Descrição do problema

Descobrimos que o nome parâmetro formal setXXX método não respeitar as disposições pretende ver para saber o nome, por isso, se você modificar consistente com o nome da variável membro, se você ver o nome de saber o significado disso? Código é a seguinte:

Estudante classe pública { 
  private String nome; 
  idade int privado; 
  setName public void (String nome) { 
    name = nome; 
  } 
  SetAge public void (idade int) { 
    age = idade; 
  } 
}

Após a modificação e testes, encontramos um novo problema, os membros da atribuição de variável falhou. Ou seja, depois de modificar setXXX () o nome da variável parâmetro, o método não dar atribuição de variável membro! Isso ocorre porque o nome da variável parâmetro com o mesmo nome como um nome de variável de membro, resultando no nome da variável membro está escondido,
o método nome da variável não pode ter acesso à variável, de modo que a atribuição falhar. Então, só podemos usar essa palavra-chave, para resolver este problema o mesmo nome

2, este significado

Faz referência ao objeto atual desta classe representa a localização (valor de endereço) que suas referências de objeto.

Lembre-se: qual o método de objeto é chamado, este método representa esse objeto. Isso é para quem ligar, que isso representa.

2, este formato usado

. Este nome da variável membro;

3, usando estas variáveis ​​método modificado, variáveis ​​de membro para resolver o problema de código oculto é a seguinte

classe Person
day06.demo04 Package; 

/ * 
membro quando as variáveis de processo e variáveis locais com o mesmo nome do tempo de aula, de acordo com o "princípio da proximidade" preferencialmente utilizar variáveis locais. 
Se você precisar acessar as variáveis de membro desta classe que é necessário para usar o formato: 
. O nome da variável deste membro 

"Pelo método que chamam, que é o presente" * 
 / 

Classe pública da Pessoa { 
    String nome; // meu próprio nome 

    // nome do parâmetro é o nome da pessoa 
    // nome de variável membro é o seu nome 
    vazio sayHello (string name) pública { 
        System.out.println (nome + "Olá eu sou." + this.name); 
        System.out.println (o presente ); 
    } 
}

categoria de teste

day06.demo04 Package Multa para; 

Demo01Person classe pública { 
    public static void main (String [] args) { 
        a Pessoa a Pessoa = new new Pessoa (); 
        // definir meu próprio nome 
        person.name = "Wang Jianlin"; 
        person.sayHello ( "Sicong" ); 

        System.out.println (Pessoa); // valor de endereço 
    } 

} 

resultados operacionais

"D: Files \ Java \ \ Program jdk-13.0.2 \ bin \ java.exe" "-javaagent: D: \ Program Files \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 62613: D: \ Program Files \ \ JetBrains IntelliJ IDEA 2019,2 \ bin" -Dfile.encoding = UTF-8 -classpath C: \ onedrive \ Java \ src \ a \ produção \ onedrive day06.demo04.Demo01Person 
王思聪,你好我是王健林. 
day06.demo04. pessoa @ 9807454 
day06.demo04.Person@9807454 

Processo terminou com código de saída 0

Em quarto lugar, o método de otimização pacote de construção 2--

Definition Format 1, o construtor

Modificador nome construtor (lista de parâmetros) { 
// membro do Método     
}

2, o código de exemplo

 categoria estudante

day06.demo04 Package Multa para; 
/ * 
método construtor é projetado para criar um objeto, quando criamos um objeto por palavra-chave novo, na verdade, chamar o método construtor. 
Formato: 
nome da classe pública (tipo de parâmetro nome do parâmetro) { 
    método do corpo 
} 

Nota: 
1. O nome ea localização do construtor deve ser exatamente o mesmo que o nome da classe, e até mesmo ter o mesmo valor de 
2. Não escreva tipo de construtor de retorno, nem mesmo escrever vazio 
3. o construtor não pode retornar um valor de retorno específico 
4. Se você não escrever nenhum construtor, o compilador padrão será apresentado um construtor, sem parâmetros, o corpo do método não faz nada em tudo. 
pública Student () {} 
5. O que uma vez programada pelo menos um construtor, o compilador não será apresentado. 
6. O método de construção também pode ser sobrecarregado. 
Sobrecarregado: O mesmo nome de método, mas lista de parâmetros diferente. 
 * / 

Student Classe pública { 
    // variável de membro 
    private string name; 
    Privada int Age; 

    // nenhum construtor argumento 
    público Student () { 
        System.out.println ( "construtor sem argumentos executá-lo!"); 
    }

    // construtor parâmetro completo 
    Student pública (String nome, int Age) { 
        System.out.println ( "método construtor full-argumento para realizá-lo!"); 
        This.name = nome; 
        this.age = Idade; 
    } 

    // Getter setter 
    public void o setName (string nome) { 
        this.name = nome; 
    } 

    Cordas getName pública () { 
        nome de retorno; 
    } 

    public void o setAge (int Age) { 
        this.age = Idade; 
    } 

    public int getAge () { 
        return Idade; 
    } 
}

  categoria de teste

day06.demo04 Package; 

Demo02Student classe pública { 
    public static void main (String [] args) { 
        STU1 Estudante novo novo Student = (); // construtor sem argumentos 
        System.out.println ( "========== == "); 

        Student STU2 = new new Student (" Zhao Liying "20); inteiro // construtor argumento 
        System.out.println (" name: "+ stu2.getName () +" , Age: "+ stu2.getAge ( )); 
        // Se você precisar alterar o conteúdo de dados variável de membro entre os objetos, ainda precisa usar setXXX método 
        stu2.setAge (21); // alterar a idade 
        System.out.println ( "name:" + stu2.getName () + "Age:" + stu2.getAge ()); 

    } 
}

O resultado:

"D: Files \ Java \ Program \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: D: \ Program Files \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 62708: D: \ Program Files \ JetBrains IntelliJ IDEA \ 2.019,2 \ bin "-Dfile.encoding = UTF-8 -classpath C: \ onedrive \ java \ src \ a \ produção \ onedrive day06.demo04.Demo02Student 
construtor sem argumentos executá-lo! 
============ 
método construtor argumento inteiro para realizá-lo! 
Nome: Zhao Liying, Idade: 20 
Nome: Zhao Liying, Idade: 21 

Processo Terminou com código de saída 0

3 Notas

1. Se você não fornecer um construtor, o sistema dará há parâmetros do construtor. 
2. Se você fornecer um construtor, o sistema deixará de fornecer sem argumentos construtor. 
3. O método de construção está sobrecarregado, os parâmetros podem ser definidos, ou pode não definir parâmetros

Em quinto lugar, o código padrão para -JavaBean

JavaBean é uma especificação padrão Java escrito em uma aula de língua. JavaBean atender aos requisitos de classe e classe específica deve ser público, e construtor sem argumentos, para fornecer um método para operar um conjunto e obter variável de membro.

class ClassName {public 
  // variáveis membro 
  // Construtor 
  // construtor sem argumentos [deve] 
  // construtor tem parâmetros [proposta] 
  // membros Método    
  // getXxx () 
  // setXXX () 
}

 Preparou-se em conformidade com a classe JavaBean norma, classe estudante, por exemplo, o código do padrão é como se segue:

A classe padrão geralmente têm as seguintes quatro componentes:

1. Todas as variáveis de membro deve ser modificada usando a chave privada
2 para a preparação de cada variável membro de um par de crianças método Getter / Setter
3. Preparação de um construtor sem argumento
4. escrever uma parâmetros do construtor completos

Tal classe standard, também conhecido como Java Bean

empacotar day06.demo05; 

Estudante classe pública { 
    private String nome; 
    idade int privado; 

    // Construtor什么都不选择
    Student pública () { 

    } 
    // Code-Construtor全选
    Student pública (String nome, idade int) { 
        this.name = nome; 
        this.age = idade; 
    } 

    // Code-Gerar-Getter e Setter 
    public String getName () { 
        nome de retorno; 
    } 

    SetName public void (String nome) { 
        this.name = nome; 
    } 

    Int público getAge () { 
        idade de retorno; 
    } 

    SetAge public void (idade int) { 
        this.age = idade;
    } 
}

As classes de teste, como segue:

Demo01Student classe pública { 

    public static void main (String [] args) { 
        stu1 Student = new Student (); 
        stu1.setName ( "迪丽热巴"); 
        stu1.setAge (20); 
        System.out.printlnl ( "姓名:" + stu1.getName (+) "年龄:" + stu1.getAge ()); 
        System.out.println ( "================="); 

        Stu2 Student = new Student ( "古力娜扎", 21); 
        System.out.printlnl ( "姓名:" + stu2.getName (+) "年龄:" + stu2.getAge ()); 
        stu2.setAge (22); 
        System.out.printlnl ( "姓名:" + stu2.getName (+) "年龄:" + stu2.getAge ()); 
    } 

}

resultados operacionais

"D: Files \ Java \ Program \ jdk-13.0.2 \ bin \ java.exe" "-javaagent: D: \ Program Files \ JetBrains \ IntelliJ IDEA 2.019,2 \ lib \ idea_rt.jar = 63198: D: \ Program Files \ \ JetBrains IntelliJ IDEA 2019,2 \ bin "-Dfile.encoding = UTF-8 -classpath C: \ onedrive \ Java \ src \ a \ day06.demo05.Demo01Student produção \ onedrive 
nome: Dilly Reba, Idade: 20 
== =============== 
nome: Coulee Nazha, Idade: 21 
nome: Coulee Nazha, Idade: 22 

Processo Terminou com código de saída 0

Acho que você gosta

Origin www.cnblogs.com/luoahong/p/12605103.html
Recomendado
Clasificación