Coder Social home page Coder Social logo

Comments (7)

JayCesar avatar JayCesar commented on August 15, 2024

📌 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:

2023-04-17_16h08_14

O 'name' é o name do construtor e o 'this.name' é o name do atributo!

O this pode inidicar o próprio objeto como argumento!:

2023-04-17_16h10_33

from java-springboot.

JayCesar avatar JayCesar commented on August 15, 2024

📌 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:

2023-04-17_16h10_33

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.

JayCesar avatar JayCesar commented on August 15, 2024

📌 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!

2023-04-17_20h27_53

  • 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);

2023-04-17_20h31_08

Quando eu utilizo o termo 'private' signfica que esse atributo não será acessado por outras classes;

2023-04-17_20h39_32

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.

JayCesar avatar JayCesar commented on August 15, 2024

📌Gerando automaticamente construtores, getters e setters com Eclipse

2023-04-17_20h50_08

  • Ele irá gerar automaticamente algo chamad super( )
    É algo relacionado à heranças!

from java-springboot.

JayCesar avatar JayCesar commented on August 15, 2024

📌 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á);

Resumo:
2023-04-17_21h04_07

from java-springboot.

JayCesar avatar JayCesar commented on August 15, 2024

🛠️ 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:

2023-04-18_10h42_35

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:
2023-04-18_10h49_10

Agora é horar de criar um programa que interaja com os dados da classe

from java-springboot.

JayCesar avatar JayCesar commented on August 15, 2024

PDF:
04-construtores-this-sobrecarga-encapsulamento.pdf

from java-springboot.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo 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.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.