java aula 06
TRANSCRIPT
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