Módulo IIIOs Fundamentos III
Francisco Souza
Márcio de Paula
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
Revisão
Classe
Atributos
Métodos
Project MARK - Orientação a Obejtos com Java 3
Exemplo 01
Project MARK - Orientação a Obejtos com Java 4
class Person {
}
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
Revisão
Atributos – Classe Pessoa
cpf
nome
dataNascimento
Project MARK - Orientação a Obejtos com Java 6
Exemplo 02
Project MARK - Orientação a Obejtos com Java 7
class Person {
String name;
String cpf;
Date birthDate;
}
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
Revisão
Métodos – Classe Pessoa
isCpfValid
getNome
calculateAge
Project MARK - Orientação a Obejtos com Java 9
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();
}
}
Conceituação
Encapsulamento
Visibilidade de atributos e métodos.
- private
- protected
- public
Project MARK - Orientação a Obejtos com Java 11
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
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
}
}
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 15
package com.fortaleza.users
class Person {
protected String cpf;
protected String name;
}
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 17
class Person {
String cpf;
String name;
}
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
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 20
public <tipo> get<NomeDoAtributo>() {
return nomeDoAtributo;
}
Exemplo 03
Project MARK - Orientação a Obejtos com Java 21
public String getCpf() {
return this.cpf;
}
Exemplo 03
Project MARK - Orientação a Obejtos com Java 22
public void set<NomeDoAtributo>(<tipo> value) {
this.nomeDoAtributo = value;
}
Exemplo 03
Project MARK - Orientação a Obejtos com Java 23
public void setCpf(String newCpf) {
this.cpf = newCpf;
}
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 25
class Person {
String name;
public Person() {
}
}
Conceituação
Construtor
Sobrecarregar para inicializar objetos com valores customizados
Project MARK - Orientação a Obejtos com Java 26
Exemplo 03
Project MARK - Orientação a Obejtos com Java 27
class Person {
String name;
public Person(String name) {
this.name = name;
}
}
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 29
class Person {
String name;
public Person() {
}
public Person(String name) {
this.name = name;
}
}
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 31
Person p = new Person(“Ally”)
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 33
class Person {
...
public void showGreetings(String name) {
System.out.println(
“Hello, ” + name
);
}
}
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 35
class Person {
...
public void showGreetings(String name) {
System.out.println(
“Hello, ” + name
);
}
}
Exemplo 03
Project MARK - Orientação a Obejtos com Java 36
Person p = new Person();
p.showGreetings(“Marcos”);
----------------------------------
Hello, Marcos
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
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
Exemplo 03
Project MARK - Orientação a Obejtos com Java 39
class Person {
...
public void showGreetings(String name) {
System.out.println(
“Hello, ” + name
);
}
}
Exemplo 03
Project MARK - Orientação a Obejtos com Java 40
Person.showGreetings(“Marcos”);
----------------------------------
Hello, Marcos
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
Top Related