Java aula 06

Post on 23-Jan-2017

186 views 0 download

Transcript of Java aula 06

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