Download - Java aula 06
![Page 1: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/1.jpg)
Módulo IIIOs Fundamentos III
Francisco Souza
Márcio de Paula
![Page 2: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/2.jpg)
Revisão
Classe
São abstrações de um conjunto de objetos similares da vida real.
Automóvel, Cliente, Empregado, PessoaClassificação
Project MARK - Orientação a Obejtos com Java 2
![Page 3: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/3.jpg)
Revisão
Classe
Atributos
Métodos
Project MARK - Orientação a Obejtos com Java 3
![Page 4: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/4.jpg)
Exemplo 01
Project MARK - Orientação a Obejtos com Java 4
class Person {
}
![Page 5: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/5.jpg)
Revisão
Atributos
Denotam características dos objetos.
Significativos para o contexto da aplicação.
Representados por substantivos
Project MARK - Orientação a Obejtos com Java 5
![Page 6: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/6.jpg)
Revisão
Atributos – Classe Pessoa
cpf
nome
dataNascimento
Project MARK - Orientação a Obejtos com Java 6
![Page 7: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/7.jpg)
Exemplo 02
Project MARK - Orientação a Obejtos com Java 7
class Person {
String name;
String cpf;
Date birthDate;
}
![Page 8: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/8.jpg)
Revisão
Métodos
Denotam ações que os objetos podem executar.
Geralmente atuam sobre atributos
Processamento auxiliar
Project MARK - Orientação a Obejtos com Java 8
![Page 9: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/9.jpg)
Revisão
Métodos – Classe Pessoa
isCpfValid
getNome
calculateAge
Project MARK - Orientação a Obejtos com Java 9
![Page 10: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/10.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 10
class Person {
String name;
String cpf;
Date birthDate;
boolean hasName() {
return this.name.isEmpty();
}
}
![Page 11: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/11.jpg)
Conceituação
Encapsulamento
Visibilidade de atributos e métodos.
- private
- protected
- public
Project MARK - Orientação a Obejtos com Java 11
![Page 12: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/12.jpg)
Conceituação
Private
Mais restritivo
Atributos e métodos acessíveis apenas dentro da classe.
Acessíveis dentro de uma classe interna.
Project MARK - Orientação a Obejtos com Java 12
![Page 13: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/13.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 13
class Person {
private String name;
public String getName() {
return this.name
}
public void setName(String name) {
this.name = name
}
}
![Page 14: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/14.jpg)
Conceituação
Protected
Entre private e public
Atributos e métodos acessíveis apenas dentro do mesmo pacote.
Project MARK - Orientação a Obejtos com Java 14
![Page 15: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/15.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 15
package com.fortaleza.users
class Person {
protected String cpf;
protected String name;
}
![Page 16: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/16.jpg)
Conceituação
Public
É o nível menos restritivo de visibilidade
Atributos e métodos acessíveis a qualquer outra classe
Comportamento padrão do Java
Project MARK - Orientação a Obejtos com Java 16
![Page 17: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/17.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 17
class Person {
String cpf;
String name;
}
![Page 18: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/18.jpg)
Boas Práticas
Encapsulamento
Não se deve declarar atributos como public
Apenas métodos interessantes para o usuário final devem ser declarados como public
Project MARK - Orientação a Obejtos com Java 18
![Page 19: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/19.jpg)
Boas Práticas
Encapsulamento
Devem-se utilizar métodos assessores para utilização de atributos private.
get
set
Project MARK - Orientação a Obejtos com Java 19
![Page 20: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/20.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 20
public <tipo> get<NomeDoAtributo>() {
return nomeDoAtributo;
}
![Page 21: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/21.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 21
public String getCpf() {
return this.cpf;
}
![Page 22: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/22.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 22
public void set<NomeDoAtributo>(<tipo> value) {
this.nomeDoAtributo = value;
}
![Page 23: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/23.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 23
public void setCpf(String newCpf) {
this.cpf = newCpf;
}
![Page 24: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/24.jpg)
Conceituação
Construtor
É um método especial e padrão
Responsável Inicialização de um objeto
Project MARK - Orientação a Obejtos com Java 24
![Page 25: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/25.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 25
class Person {
String name;
public Person() {
}
}
![Page 26: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/26.jpg)
Conceituação
Construtor
Sobrecarregar para inicializar objetos com valores customizados
Project MARK - Orientação a Obejtos com Java 26
![Page 27: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/27.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 27
class Person {
String name;
public Person(String name) {
this.name = name;
}
}
![Page 28: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/28.jpg)
Boas Práticas
Construtor
Ao criar um construtor customizado é necessário fornecer explicitamente o construtor-padrão.
Project MARK - Orientação a Obejtos com Java 28
![Page 29: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/29.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 29
class Person {
String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
}
![Page 30: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/30.jpg)
Conceituação
Inicialização
A inicialização de objetos em Java se faz através do operador new
Project MARK - Orientação a Obejtos com Java 30
![Page 31: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/31.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 31
Person p = new Person(“Ally”)
![Page 32: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/32.jpg)
Conceituação
Métodos
Métodos, em Java, são pequenos pedaços de código que realizam uma tarefa bem específica.
Estrutura básica C-like
Project MARK - Orientação a Obejtos com Java 32
![Page 33: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/33.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 33
class Person {
...
public void showGreetings(String name) {
System.out.println(
“Hello, ” + name
);
}
}
![Page 34: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/34.jpg)
Conceituação
Métodos
Requerem a instanciação de um objeto para serem invocados
Exceção: métodos estáticos
Project MARK - Orientação a Obejtos com Java 34
![Page 35: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/35.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 35
class Person {
...
public void showGreetings(String name) {
System.out.println(
“Hello, ” + name
);
}
}
![Page 36: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/36.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 36
Person p = new Person();
p.showGreetings(“Marcos”);
----------------------------------
Hello, Marcos
![Page 37: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/37.jpg)
Conceituação
Métodos Estáticos
São métodos acessados diretamente pela própria classe
Não há necessidade de instanciação.
Project MARK - Orientação a Obejtos com Java 37
![Page 38: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/38.jpg)
Conceituação
Métodos Estáticos
Não acessam variáveis de instância no corpo do método.
Só acessam variáveis estáticas e os parâmetros dos métodos.
Project MARK - Orientação a Obejtos com Java 38
![Page 39: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/39.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 39
class Person {
...
public void showGreetings(String name) {
System.out.println(
“Hello, ” + name
);
}
}
![Page 40: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/40.jpg)
Exemplo 03
Project MARK - Orientação a Obejtos com Java 40
Person.showGreetings(“Marcos”);
----------------------------------
Hello, Marcos
![Page 41: Java aula 06](https://reader030.vdocuments.pub/reader030/viewer/2022020113/588610bf1a28abe63e8b541b/html5/thumbnails/41.jpg)
Fonte de Bugs
Métodos Estáticos
Assim como as variáveis, métodos estáticos não são herdados.
Project MARK - Orientação a Obejtos com Java 41