S06L10 – Herança 03 – Acessar getters e setters das classes

Java Inheritance and Encapsulation: Dominando Valores Padrão com Getters and Setters

Índice (Os números das páginas são indicativos)

1. Introdução ………………………………………………………… 1
2. Compreendendo Valores Padrão em Inheritance ………………………….. 3
3. A Importância dos Modificadores de Acesso …………………………………. 6
4. Implementando Getters and Setters: Guia Passo a Passo ………………….. 9
    4.1 Exemplo de Diagrama de Class e Code Snippet …………………….. 10
    4.2 Explicação do Código e Saída Esperada …………………… 12
5. Tabela de Comparação: Padrão vs. Propriedades Inicializadas ………………….. 14
6. Conclusão ………………………………………………………….. 16

1. Introdução

A programação orientada a objetos moderna (OOP) em Java enfatiza a encapsulação de dados segura e eficiente. Neste eBook, focamos em um desafio comum: o que acontece quando os valores de uma parent class não são explicitamente inicializados? Também exploramos o uso apropriado dos modificadores de acesso, especificamente o motivo de marcar propriedades como private e usar getters and setters ser considerado uma best practice.

Pontos-chave abordados:
• Valores Padrão em Java Inheritance
• Diferença entre os modificadores de acesso public e private
• Definindo e recuperando valores de propriedades usando construtores
• Demonstração de código passo a passo e explicação da saída

Tabela: Visão Geral dos Tópicos

Tópico Detalhes
Valores Padrão Valores padrão para strings, ints, etc.
Modificadores de Acesso public vs. private
Construtores Padrão e parametrizados
Getters and Setters Acesso seguro aos dados

Quando aplicar esses conceitos?
• Use valores padrão quando as propriedades não forem explicitamente inicializadas.
• Use modificadores private para evitar acesso não autorizado.
• Implemente getters and setters para acesso controlado e flexibilidade futura.

2. Compreendendo Valores Padrão em Inheritance

Em Java, se uma propriedade em uma parent class não for inicializada, Java atribui um valor padrão. Por exemplo:
• Para uma string, o padrão é null.
• Para um inteiro, o padrão é 0.
• Para um número de ponto flutuante, torna-se 0.0 (ou 0.00).

Essas atribuições padrão fornecem uma rede de segurança, garantindo que o programa não trave quando uma propriedade for inadvertidamente deixada sem inicialização. No entanto, depender excessivamente desses padrões pode levar a comportamentos inesperados se não forem tratados adequadamente.

3. A Importância dos Modificadores de Acesso

Em nossa jornada para aprimorar a segurança do código, marcar propriedades como public pode parecer conveniente, mas apresenta riscos. Quando as propriedades são public, classes externas têm acesso sem restrições, levando a um uso indevido potencial. Em vez disso, marcar propriedades como private reforça a encapsulação.

Por exemplo, considere uma Vehicle class com propriedades como tipo de engine, wheels e contagem de seats. Ao declarar estas como private, qualquer acesso direto é proibido. Em vez disso, os desenvolvedores devem confiar nos métodos getter and setter:
• Os métodos getter permitem a recuperação dos dados.
• Os métodos setter possibilitam atualizações enquanto impõem validações.

A transcrição do subtítulo demonstra claramente o uso de um construtor padrão para inicializar valores e, em seguida, o acesso a esses valores utilizando getters.

4. Implementando Getters and Setters: Guia Passo a Passo

A transcrição aborda vários aspectos importantes:

A. Inicialização Usando Construtores
Quando uma propriedade de uma class não é inicializada, Java usa o valor padrão. Para controlar isso, defina um construtor padrão que atribua valores iniciais. Para uma Bike class, isso pode ser:
• Engine é inicializado como “petrol”.
• Wheels é definido como 2, já que bikes normalmente têm duas wheels.
• Fuel tank pode ser definido como 14 liters.
• Uma contagem de seats é estabelecida, por exemplo, para dois.

B. Criando Métodos Getter
Em vez de acessar as propriedades diretamente, utilizam-se getters para recuperar os valores. A transcrição mostra que, após converter as propriedades private, o acesso ao valor “2” para wheels é confirmado por meio de uma chamada de método getter.

4.1 Exemplo de Diagrama de Class e Code Snippet

Diagrama: (Representação Textual do Diagrama)

Abaixo está o código Java de exemplo (com base nas instruções do arquivo do projeto e na transcrição):

4.2 Explicação do Código e Saída Esperada

Explicação Passo a Passo:
1. A Bike class estende Vehicle, herdando suas propriedades enquanto as mantém private.
2. No construtor de Bike, chamamos os métodos setter herdados de Vehicle para inicializar propriedades tais como engine, wheels, seats, fuelTank e lights.
3. Uma propriedade específica “handle” (específica de Bike) é declarada como private e acessada usando seu getter.
4. Na Main class, é criada uma instância de Bike. A saída esperada ao executar o programa é a seguinte:

Saída Esperada do Programa:

5. Tabela de Comparação: Padrão vs. Propriedades Inicializadas

Cenário Resultado
Sem inicialização Valor padrão (null, 0, etc.)
Inicialização via construtor & setters Definido para o valor customizado fornecido (por exemplo, “petrol”, 2)

6. Conclusão

Concluindo, compreender como o Java lida com valores padrão em Inheritance, juntamente com o uso de modificadores de acesso private e getters and setters, é crucial para escrever um código robusto e seguro. Ao inicializar propriedades através de construtores e acessá-las somente por meio de métodos bem definidos, os desenvolvedores garantem uma base de código mais fácil de manter e livre de erros.

Principais pontos a serem lembrados:
• Java atribui valores padrão quando as propriedades são deixadas sem inicialização.
• Use modificadores de acesso private para manter o encapsulamento.
• Getters and setters fornecem acesso controlado e flexibilidade para mudanças futuras.

Chamada para Ação:
Implemente essas melhores práticas em seus projetos Java em andamento. Teste o código de exemplo, revise cada passo cuidadosamente e tente estender o exemplo para incluir mais funcionalidades. Adotar essas metodologias desde o início trará grandes benefícios ao seu processo de desenvolvimento.

Palavras-chave Otimizadas para SEO:

Inheritance, Getter Setter, Access Modifiers, Java OOP, Default Values, Constructor Initialization, Encapsulation, Bike Class, Vehicle Class, Java Programming






Partilhe o seu amor