Java aula 06

Preview:

Citation preview

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