• Nenhum resultado encontrado

PROGRAMAÇÃO I INTRODUÇÃO À ORIENTAÇÃO A OBJETOS II

N/A
N/A
Protected

Academic year: 2021

Share "PROGRAMAÇÃO I INTRODUÇÃO À ORIENTAÇÃO A OBJETOS II"

Copied!
28
0
0

Texto

(1)

P ROGRAMAÇÃO I

Prof. Dr. Daniel Caetano 2017 - 1

I NTRODUÇÃO À

O RIENTAÇÃO A O BJETOS II

(2)

Objetivos

• Formalizar o conceito de método

• Compreender o conceito de sobrecarga de métodos

• Formalizar o uso da referência this e do “operador” ponto

• Conhecer um pouco mais sobre

a classe Math e String

(3)

Material de Estudo

Material Acesso ao Material

Apresentação http://www.caetano.eng.br/

(Programação I – Aula 4) Material Didático Programação I – Págs 59 a 65

(4)

R ETOMANDO

C LASSES EM J AVA

(5)

O que são Classes?

• Podemos imaginar uma classe assim:

Atributos

Privados

ou Públicos

Métodos

(6)

Setters e Getters

• Atributos: em geral private

public, protected e private

Setters: métodos que modificam atributos.

– Atributo é idade, o setter será setIdade().

Getters: métodos que leem os atributos.

– Atributo é idade, o getter será getIdade().

(7)

Como criar objetos?

• Operador new

• Ex.: classe Cliente

Cliente oCliente = new Cliente();

new

O objeto oCliente é uma instância da classe Cliente

(8)

Construtor

• Construtor: configura objeto

– Construtor com parâmetro

public Cliente(String cpf) { ...

}

• Passando parâmetros de criação

Cliente oCliente;

oCliente = new Cliente(“012.345.678-90”);

(9)

M ÉTODOS EM J AVA

(10)

Método s

• Um método:“função” associada à classe

– Carro

• Acelerar, Frear, Virar

– Pedido

• CalcularDesconto, ValorTotal

• Getters e Setters são métodos

• Construtores são métodos

(11)

Declarando Métodos

• Como declarar um método?

[escopo] tipoRetorno nomeMétodo(

tipoParam1 nomeParam1, tipoParam2 nomeParam2, ...) {

}

• Exemplo

public int calculaPreco(

double desconto, int tipoPagamento) { }

No construtor, não se indica

tipo do retorno!

(12)

Chamando Métodos

• O método em uma classe

public class Produto {

public int calculaPreco(double desconto, int tipoPagamento) {

...

} }

• Chamando o método:

Produto umProduto = new Produto();

int preco = umProduto.calculaPreco(0.10, 1);

(13)

S OBRECARGA DE

M ÉTODOS

(14)

Método s Comuns

• É possível ter várias versões de um método

– Recebendo diferentes tipos de parâmetros

• Exemplo

public void setCpf(String cpf) { ...

}

public void setCpf(long cpf) { ...

}

Como a linguagem sabe qual usar?

ASSINATURA

(15)

Método s Comuns

• É possível ter várias versões de um método

– Recebendo diferentes tipos de parâmentros

• Exemplo

public void setCpf(String cpf) { ...

}

public void setCpf(long cpf) { ...

}

objeto.setCpf(“012.345.678-90”);

(16)

Método s Comuns

• É possível ter várias versões de um método

– Recebendo diferentes tipos de parâmentros

• Exemplo

public void setCpf(String cpf) { ...

}

public void setCpf(long cpf) { ...

}

objeto.setCpf( 01234567890L );

Eles não podem ser diferentes só

pelo tipo de retorno!

(17)

Método s Comuns

• Para não repetir código...

– É comum um método chamar outro:

private String cpf;

public void setCpf(String cpf) { this.cpf = cpf;

}

public void setCpf(long cpf) { setCpf(Long.toString(cpf));

}

(18)

Construtores

• Construtores; versão completa / parciais

public Cliente(String cpf, int credito) { ...

}

public Cliente (String cpf) { this(cpf, 0);

}

this é uma referência para o objeto atual!

this, neste caso, chama um

outro construtor!

(19)

A LGUNS M ÉTODOS Ú TEIS :

C LASSES M ATH E S TRING

(20)

Atributos e Métodos: Math/String

• Math.PI

• Math.pow(base, exp)

• Math.sqrt(n)

• String t1 = “aba”;

• String t2 = “cate”;

• t1.length()

• t1.charAt(pos)

• t1.replace(oque, comoque)

• t1.toLowerCase()

• t1.toUpperCase()

(21)

P ERGUNTAS ?

(22)

P ARTE P RÁTICA

(23)

Experimentando

• Continuar a implementação do Produto

– Validação

– Checagem de preenchimento

• Aprimorar a classe Produto com a

implementação um segundo construtor

vazio.

(24)

Experimentando

• Vamos implementar uma classe Retangulo:

– Dois construtores (x1, y1, x2, y2) / (x,y,b,h)

• Não serão simultâneos!

– Calcule seu perímetro

– Calcule sua área

(25)

Experimentando

• Vamos implementar uma classe Círculo:

– Um construtor (x,y,r)

– Calcule seu perímetro

– Calcule sua área

(26)

P ROJETO / A TIVIDADE

(27)

Projeto / Atividade

• Objetivo: criar cadastro de clientes simples

• Quem: Duplas especificadas

• A primeira entrega será 17/04

– Classe cliente (com validações)

– Criação/Preenchimento dos dados do cliente por modo texto (Scanner)

• A segunda entrega será 05/06

– Listagem de clientes – Busca de clientes

– Edição de clientes

(28)

Projeto / Atividade

• Hoje

– Crie um projeto CadCli

– Comecem criando a classe Cliente

• cpf (validação: 11 dígitos, só números) – Dica: use Character.isDigit(caractere)

• Nome (validação: pelo menos 2 letras)

• Idade (validação: de 0 a 100 anos)

• Crie um construtor sem parâmetros que inicialize os atributos com “” e 0, dependendo do tipo.

• Crie um método que imprima a descrição do objeto

– Use o método main para criar um cliente e

imprimir sua descrição

Referências

Documentos relacionados

O bloco do ciclo for é definido pela indentação I i.e., número de espaços à esquerda da linha.!. Please come to

indiscriminadamente, membros privados só podem ser acessados pela própria classe, e membros de pacote são acessados por classes declaradas no mesmo pacote da classe. Conceitos

• A classe Point pode, por exemplo, prover um método para mover o ponto de um dado deslocamento.. • Para mover um ponto, precisamos saber quanto deslocar em x e

Constitui objeto da presente concorrência a contratação de empresa especializada na instalação de equipamento, em comodato, e prestação de serviços de monitoramento 24 horas,

–   São variáveis que definem o estado de um objeto, ou seja, são entidades que caracterizam os objetos. –   Cada objeto possui seu próprio conjunto

Caso discordem, por favor deixem as vossas questões para o período de dúvidas, que não será gravado.... Funções com listas

Para construir classes utilitárias, onde não faz sentido ter que instanciar um objeto para usar os métodos. • Ex: java.lang.Math,

O objeto da presente competição é a escolha da proposta mais vantajosa para CONTRATAÇÃO de EMPRESA FORNECEDORA DE OXIGÊNIO MEDICINAL E ACETILENO PARA A UNIDADE DE