Comments (7)
📌 Palavra This
A palavra this é uma referência para o próprio objeto!
Usos comuns:
- Diferenciar atributos de variáveis locais;
- Passar o próprio objeto como argumento na chamada de um método ou construtor.
Diferenciar atributos de variáveis locais:
O 'name' é o name do construtor e o 'this.name' é o name do atributo!
O this pode inidicar o próprio objeto como argumento!:
from java-springboot.
📌 Sobrecarga
É um recurso que uma classe possui de oferecer mais de uma operação com o mesmo nome, porém com diferentes listas de parâmetros.
Para entender melhor:
Sobrecarga é disponibilizar mais de uma versão da mesma operação e a diferença entre elas será a listinah de parâmetros! I sso significa que me possibilita uma certa 'flexibilidade' para 'criar' os construtores e consequentemente popualr eles.
from java-springboot.
📌 Encapsulamento
- É o princípio que consiste em esconder detalhes de implementação de uma calsse, expondo apenas operações seguras e que mantenham os objetos em um estado consiste (proteger os dados);
- Regra de outro: o objeto deve sempre estar em um estado consistente, e a própria classe deve garantir;
- Eu escondo os detalhes e exponho apenas operações seguras!
- Analogia: os circuitos itnernos da caixinha não é acessível para o 'usuário';
Regra geral básica:
- Um objeto NÃO deve expor nenhum atributo (modificador de acesso private)
- Os atributos devem ser acessador por meio de métodos get e set;
• Padrão JavaBeans: https://en.wikipedia.org/wiki/JavaBeans (padrões de desenvolvimento);
Quando eu utilizo o termo 'private' signfica que esse atributo não será acessado por outras classes;
Para eu possibilitar que o objeto seja atualizado, eu utilizo os métodos (Getters and Setters);
Obs: por convenção eu adiciono ele após os contstrutores;
Esse são os métodos que garantem o prinícipio do encapsulamento, ou seja, so é possível alterar um atributo por meio dos métodos!
from java-springboot.
📌Gerando automaticamente construtores, getters e setters com Eclipse
- Ele irá gerar automaticamente algo chamad super( )
É algo relacionado à heranças!
from java-springboot.
📌 Modificadores de Acesso
private = o membro só pode ser acessado na própria calsse
(nada) = o membro só pode ser acessado nas classes do mesmo pacote
protected: o membro só pode ser acessado no mesmo pacote, (classes do mesmo pacote) bem como em subclasses de pacotes diferentes
public é quando o membro é acessado por todas as classes (ao menos que ele resida em um módulo diferente que não exporte o pacote onde ele está);
from java-springboot.
🛠️ Corrigindo o exercício de Encapsulamento:
Nesse exercício eu terei dois tipos de construtores, um que recebe 3 argumentos e outro que recebe 2 argumentos:
Isso acontece porque no exercício eu posso informar ou não o valor do depósito inicial!
🚨 IMPORTANTE:
Eu só posso permitir alterar o saldo por meio de um método que não seja o set! Ou seja, tem que ser somente o depósito ou saque!
O saldo da conta só pode ser alterado por meio de saque ou depósito!
Utilizando o método de depósito dentro do construtor garante o pricípio de encapsulamento:
Agora é horar de criar um programa que interaja com os dados da classe
from java-springboot.
PDF:
04-construtores-this-sobrecarga-encapsulamento.pdf
from java-springboot.
Related Issues (20)
- Aula 2: Domínio, consultas HOT 4
- Aula 3: Deploy CI/CD, CORS + Dicas de currículo e portfólio
- Seção 17: Trabalhando com arquivos HOT 7
- Interfaces HOT 8
- Seção 19: Generics, Set, Map HOT 8
- Seçao 20: Programação Funcional e expressões Lambda HOT 2
- Seção 03: Fundamentos HOT 15
- Intellij Atalhos (e outros)
- Seção 05: POO
- Seção 31: Acesso a Banco de Dados com JDBC HOT 5
- O que é Spring Boot HOT 1
- 📚 Spring Boot 2 Essentials 04 - @Component, @Autowired, @SpringBootApplication
- 📚 Spring Boot 2 Essentials 05 - Hot Swap com Spring Boot Devtools
- 📚 Spring Boot 2 Essentials 06 - Gerando projeto com start.spring.io
- 📚 Spring Boot 2 Essentials 07 - Método GET
- 📚 Spring Boot 2 Essentials - Método POST, DELETE e PUT HOT 2
- 📚 Docker
- 📚 Spring Boot 2 Essentials - Spring Data JPA
- 📚 Mensageria e Kafka HOT 3
- 📚 TEST
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from java-springboot.