Pergunta

Ok, então eu tenho uma tarefa em que eu tenho que criar uma classe com um conjunto de propriedades privadas, o que tenho feito.Fica complicado, porque eu sou bastante novo para programação em java (ou programação em geral) e não sou muito praticada no encapsulamento.Eu não usei getters/setters ou construtores antes.Eu entendo o getter/setter, mas ainda têm de compreender qualquer das informações on-line para os construtores, ou até mesmo entender sua finalidade.

Eu tenho que criar getters/setters e construtores para cada uma das propriedades assim parece que eu deveria aprender a usar estes métodos.Se alguém poderia me dar um exemplo de uma classe com construtor e explicar o que o construtor está fazendo, e por que eu iria usar isso seria bom.

Obrigado à frente do tempo.

Foi útil?

Solução

Primeiro, bem -vindo ao mundo da programação :)

Vamos olhar para um exemplo simples.

Digamos que você deseja programar uma classe para representar um quadrado. Quando você cria um objeto quadrado, você deve fornecer ao quadrado certas propriedades, como o comprimento de cada lado. É aqui que os construtores entram em jogo.

O layout da classe se parece com isso, observe que a variável length_of_each_side não recebe um valor.

public class Square {
     int length_of_each_side;

     public Square() {
     ...
     }

     public Square(int length) {
     ...
     }
}

Você pode ter um construtor padrão que fornecerá um quadrado predefinido se você não especificar o tamanho do quadrado.

public Square() {
     length_of_each_side = 1;
}

ou você pode permitir que alguém especifique o tamanho do quadrado

public Square(int length) {
     length_of_each_side = length;
}

Se eu quiser criar um quadrado predefinido (comprimento 1), ficaria assim

Square mySquare = new Square();

Se eu quiser criar um quadrado e especificar o comprimento de 55, ficaria assim

Square mySquare = new Square(55);

Outras dicas

Eu não tenho certeza o quão você está vendo isso na escola ou o que o seu professor está dizendo a você, mas é só uma sugestão-não usar getters e setters como uma questão de hábito.Há uma razão que eles não são "automáticas" em Java, é porque eles realmente não deveria estar lá.

Quando você tem um objeto, a ideia é pedir que o objeto de fazer algo por você-em outras palavras, você deve fornecer métodos que atuam sobre as variáveis em vez de você ficar a variável e de agir sobre ele e colocá-lo de volta.

Há um monte de vezes você não pode evitar getters--mas eles só devem ser adicionados quando você tem certeza de que precisa deles, não como uma questão de hábito.

O construtor é o MELHOR lugar para definir todas as variáveis de membro.Na verdade, se você fizer as variáveis de final (um bom hábito de entrar, faz com que a classe "imutável") o construtor será o único lugar que você pode atribuí-los.

O seu construtor é garantido para ser chamado quando o objeto é criado, então é um bom lugar para se definir seu objeto.Em seu construtor, se você garantir que o objeto está em um estado válido E você tem final variáveis de membro, é impossível ter o objeto em um estado inválido-este é um muito útil, prática e pode poupar-lhe um monte de tempo de depuração.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top