java aula 06

41
Módulo III Os Fundamentos III Francisco Souza Márcio de Paula

Upload: francisco-jose-a-c-souza

Post on 23-Jan-2017

186 views

Category:

Education


0 download

TRANSCRIPT

Page 1: Java aula 06

Módulo IIIOs Fundamentos III

Francisco Souza

Márcio de Paula

Page 2: Java aula 06

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

Revisão

Classe

Atributos

Métodos

Project MARK - Orientação a Obejtos com Java 3

Page 4: Java aula 06

Exemplo 01

Project MARK - Orientação a Obejtos com Java 4

class Person {

}

Page 5: Java aula 06

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

Revisão

Atributos – Classe Pessoa

cpf

nome

dataNascimento

Project MARK - Orientação a Obejtos com Java 6

Page 7: Java aula 06

Exemplo 02

Project MARK - Orientação a Obejtos com Java 7

class Person {

String name;

String cpf;

Date birthDate;

}

Page 8: Java aula 06

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

Revisão

Métodos – Classe Pessoa

isCpfValid

getNome

calculateAge

Project MARK - Orientação a Obejtos com Java 9

Page 10: Java aula 06

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

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

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

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

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

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

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

Exemplo 03

Project MARK - Orientação a Obejtos com Java 17

class Person {

String cpf;

String name;

}

Page 18: Java aula 06

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

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

Exemplo 03

Project MARK - Orientação a Obejtos com Java 20

public <tipo> get<NomeDoAtributo>() {

return nomeDoAtributo;

}

Page 21: Java aula 06

Exemplo 03

Project MARK - Orientação a Obejtos com Java 21

public String getCpf() {

return this.cpf;

}

Page 22: Java aula 06

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

Exemplo 03

Project MARK - Orientação a Obejtos com Java 23

public void setCpf(String newCpf) {

this.cpf = newCpf;

}

Page 24: Java aula 06

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

Exemplo 03

Project MARK - Orientação a Obejtos com Java 25

class Person {

String name;

public Person() {

}

}

Page 26: Java aula 06

Conceituação

Construtor

Sobrecarregar para inicializar objetos com valores customizados

Project MARK - Orientação a Obejtos com Java 26

Page 27: Java aula 06

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

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

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

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

Exemplo 03

Project MARK - Orientação a Obejtos com Java 31

Person p = new Person(“Ally”)

Page 32: Java aula 06

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

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

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

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

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

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

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

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

Exemplo 03

Project MARK - Orientação a Obejtos com Java 40

Person.showGreetings(“Marcos”);

----------------------------------

Hello, Marcos

Page 41: Java aula 06

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