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

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

CAIXAS DE DIÁLOGO COM JOPTIONPANE

Ivo Augusto Fontana Bertoncello Marcelo de Oliveira Dias

Atributos e Métodos Estáticos

Programação Orientada a Objetos

Linguagem de Programação III

JAVA Orientação a Objetos. Usando diálogos com JOptionPane

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Unidade 8: Sobrecarga de Funções e Vetores e Matrizes (Arrays) Prof. Daniel Caetano

Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno

Comando if.. else. 2. JOptionPane. showmessagedialog. showconfirmdialog. showinputdialog. Caixa de diálogo para mostrar mensagem simples

Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN

Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU

RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:

Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação

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

Linguagem de Programação II Implementação

Estrutura de Dados. Introduc a o e Alocac a o de Memo ria. Vilson Heck Junior. Instituto Federal de Santa Catarina

INFORMÁTICA PARA ENGENHARIA MODULARIZAÇÃO E ORGANIZAÇÃO DE CÓDIGO

Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):

Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos

Atributos e Métodos de Classe

Classes, instâncias e métodos de acesso. prática

PROGRAMAÇÃO I HERANÇA E POLIMORFISMO

Classes o Objetos. Classes, objetos, métodos e variáveis de instância

Programação Orientada a Objetos. Métodos e Atributos. Métodos. Métodos. Alexandre César Muniz de Oliveira. Parte III

Programação Orientada a Objetos em Java

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA II

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Aula 4. TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS 2014 Marcelo Henrique dos Santos -

Orientação a objetos. Programação. Orientada a Objetos. Orientação a objetos. Orientação a objetos. Abstração e encapsulamento

4 TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Relacionamentos entre objetos

Java - Sobrecarga/Composição

Modificadores de Acesso e Atributos de Classe

Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis

Conceitos Básicos da Programação OO

Apêndice A. Alguns construtores e métodos importantes e úteis da classe Vector são:

Universidade Estadual de Santa Cruz

Entrada e Saída de dados por JOptionPane

Lista de exercícios 2

Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Criando a Classe Pessoa Exemplo: Crie e modele uma classe que receba o nome, idade e peso de uma Pessoa. Ao final mostre os dados na tela.

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Classes e Objetos POO

Linguagem de Programação IV Introdução

Linguagem de Programação JAVA. Tiago Alves de Oliveira

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em:

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU

Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli

Estrutura de Dados Funções e Procedimentos

Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura

Introdução à Orientação a Objetos em Java

Programação Orientada a Objetos

notas de aula versão 1 - Jerônimo C. Pellegrini notas de aula versão 1 11 de fevereiro de 2011

Unidade 7: Documentação de Código A Importância dos Comentários Prof. Daniel Caetano

Aula 3. Objetivos Sequências de escapes ; Um aplicativo que adiciona inteiro; Aritmética.

Classes e Objetos em Java. Algoritmos e Programação I. Classes. Classes. Modificadores de Acesso. Classes. Revisão

Linguagem de Programação Orientada a Objeto Construtores e Sobrecarga

Aula 7 Modularização. Processamento da Informação. Universidade Federal do ABC

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Construtores e Especificadores de Acesso

Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.

Métodos. Utilizados para dividir o programa em subprogramas

DIRETORIA ACADÊMICA DE GESTÃO E TECNOLOGIA DA INFORMAÇÃO DIATINF TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS TADS

Linguagem de Programação II Implementação

Sistema Futebol - Java

Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga

POO fundamentos Parte II. Professor Vicente Paulo de Camargo

Orientação a Objetos e Java

Orientação a Objetos - Herança

p Ja usamos, por diversas vezes, a classe String. Vimos o sistema de pacotes do Java e nunca precisamos dar um import nessa classe.

COMPORTAMENTOS - Observações

Classes e Objetos. Sintaxe de classe em Java

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

ATIVIDADES PRÁTICAS SUPERVISIONADAS

Herança. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.

Algoritmos II Aula 2 Vetores

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Subprogramação. Leonardo Gresta Paulino Murta.

Prof. Rogério Albuquerque de Almeida. Programação Orientada a Objetos II Java Terceira aula

Programação Orientada a Objetos

Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

UNIDADE I AULA II. Introdução à programação Java

Algoritmos. Algoritmos. Linguagem de programação. Conceitos. Conceitos. Conceitos. Sintaxe do comando para incluir bibliotecas no programa:

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

Unidade 2: Estruturas de Controle Parte 1 - Scanner e Estrutura IF Prof. Daniel Caetano

UNIDADE 5 Aplicação dos Conceitos de Orientação a Objetos

INTRODUÇÃO ÀS ESTRUTURAS DE DADOS. Prof. Dr. Daniel Caetano

Programação Java (nível intermediário) 4. Polimorfismo

Transcrição:

PROGRAMAÇÃO I INTRODUÇÃO À ORIENTAÇÃO A OBJETOS III Prof. Dr. Daniel Caetano 2017-1

Objetivos Conhecer o modificador static e seu uso em atributos e métodos Conhecer um pouco mais sobre a classe Math e String Conhecer melhor a classe JOptionPane Conhecer o conceito de construtor replicador: passando objetos como parâmetros

Material de Estudo Material Apresentação Acesso ao Material http://www.caetano.eng.br/ (Programação I Aula 5) Material Didático Programação I Espalhando nas Págs 38 a 65

RETOMANDO CLASSES EM JAVA

O que são Classes? Classes possuem Atributos e Métodos Podem ser públicos, protegidos ou privados Métodos getters/setters Construtores Base para a construção de objetos Operador new

Sobrecarga Assinatura Nome do Método + Tipos dos Parâmetros Possível: vários métodos com o mesmo nome Desde que os tipos parâmetros sejam diferentes Ou seja: nome igual, mas assinatura diferente

ATRIBUTOS ESTÁTICOS

Atributos Estáticos E se precisarmos que todos os objetos de uma classe compartilhem um valor? Definimos esse atributo como static Ele não é mais parte do objeto, é da classe Não é preciso criar um objeto para acessá-lo Classe.atributo = valor; Uso comum: contar objetos criados Exemplo: número de produtos criados

Atributos Estáticos Contando Número de Produtos public Produto { private static int total = 0; public Produto() { total = total + 1; } public int gettotal() { return total; } }

Atributos Estáticos Outro exemplo: Math.PI public static final double PI = 3.141592; Calculando a área de um círculo? double area = Math.PI * (raio*raio);

MÉTODOS ESTÁTICOS

Métodos Estáticos São parecidos com os atributos estáticos Eles não são parte do objeto, mas da classe Não é preciso criar um objeto para acessá-lo Classe.metodo(); Usos comuns: Métodos auxiliares Exemplo: consultar número de produtos criados Organização de métodos básicos Biblioteca de funções matemáticas

Métodos Estáticos Contando Número de Produtos public Produto { } private static int total = 0; public Produto() { } total = total + 1; public static int gettotal() { } return total; Cuidado: em um método static, você só pode acessar atributos static!

Métodos Estáticos Outro exemplo: Math.pow(base,exp) Calculando a área de um círculo? double area = Math.PI * Math.pow(raio, 2);

Métodos Estáticos - Atenção Métodos de Instância Só podem ser chamados a partir de uma instância de classe: referência Podem acessar atributos da instância ou da classe (estáticos) Métodos estáticos São chamados a partir da própria classe, não precisam de instância: nome da classe Só podem acessar atributos da classe (estáticos)

ALGUNS MÉTODOS ÚTEIS: CLASSES MATH E STRING

Atributos e Métodos da Math Math.PI Math.pow(base, exp) Math.sqrt(n) Math.sin(angulo) Math.cos(angulo) Math.tan(angulo) Math.abs(n); Math.min(n1,n2) Math.max(n1,n2) Math.ceil(n) Math.floor(n)

Métodos da Classe String String t1 = aba ; String t2 = cate ; t1.length() t1.charat(pos) t1.replace(oque, comoque) t1.tolowercase() t1.touppercase() t1.concat(t2) t1.compareto(t2) t1.comparetoignorecase(t2) t1.equals(t2)

A CLASSE JOPTIONPANE

A Classe JOptionPane Já vimos JOptionPane.showMessageDialog JOptionPane.showInputDialog São métodos estáticos! Vamos conhecer um pouco mais...

JOptionPane.showMessageDialog Saída simples, imprime string: JOptionPane.showMessageDialog(null, Teste showmessagedialog );

JOptionPane.showMessageDialog Como mudar o título? Como mudar o ícone? JOptionPane.showMessageDialog(null, Com ícone de erro!, Um Título, JOptionPane.ERROR_MESSAGE);

JOptionPane.showMessageDialog Formato Geral JOptionPane.showMessageDialog(refJanelaPai, Mensagem, Título, tipodeicone); Quais os valores possíveis do tipo de ícone?

JOptionPane.showMessageDialog Ícones disponíveis: JOptionPane.ERROR_MESSAGE JOptionPane.INFORMATION_MESSAGE JOptionPane.WARNING_MESSAGE JOptionPane.QUESTION_MESSAGE JOptionPane.PLAIN_MESSAGE

JOptionPane.showInputDialog Várias versões Formato geral I String texto = JOptionPane.showInputDialog( refjanelapai, Pergunta, Título, tipodeicone); Os ícones podem ser os mesmos do show

JOptionPane.showInputDialog Várias versões Formato geral II String texto = JOptionPane.showInputDialog( refjanelapai, Pergunta, Resposta Padrão); O ícone sempre será Question

JOptionPane.showInputDialog Várias versões Formato geral III String texto = JOptionPane.showInputDialog( Pergunta ); Ícone/título: sempre Question / Entrada

CONSTRUTORES REPLICADORES

Construtores Replicadores Imagine a execução do código abaixo int a, b; a = 10; b = a; a = 20; System.out.println(b); Que valor será impresso?

Construtores Replicadores Agora imagine a execução do código abaixo Cliente c1, c2; c1 = new Cliente( 012.345.678-90 ); c2 = c1; c1.setcpf( 000.000.000-00 ); System.out.println(c2); Que valor será impresso? Por que isso ocorre?

Construtores Replicadores Objetos ocupam muita memória Não são copiados automaticamente! Criam-se referências múltiplas (nome x apelido) Como criar uma cópia? Vários jeitos... Três mais comuns...

Construtores Replicadores Primeiro jeito simples: Criando um objeto vazio... E copiando atributo por atributo! Cliente c1, c2; c1 = new Cliente( 012.345.678-90, Fulano ); c2 = new Cliente(); c2.setcpf(c1.getcpf()); c2.setnome(c1.getnome()); c1.setcpf( 000.000.000-00 ); System.out.println(c2);

Construtores Replicadores Segundo jeito simples: Criando um objeto com os dados de outro Cliente c1, c2; c1 = new Cliente( 012.345.678-90, Fulano ); c2 = new Cliente(c1.getCpf(), c1.getnome()); c1.setcpf( 000.000.000-00 ); System.out.println(c2); Mas se houver atributos private que não possuem getters/setters?

Construtores Replicadores Terceiro jeito, ainda mais simples: Passando objeto origem na construção Cliente c1, c2; c1 = new Cliente( 012.345.678-90, Fulano ); c2 = new Cliente(c1); c1.setcpf( 000.000.000-00 ); System.out.println(c2); Como se faz isso? Criando um construtor replicador (ou cópia)!

Construtores Replicadores Exemplo: public class Cliente { private String cpf; private String nome; public Cliente(Cliente outro) { cpf = outro.cpf; nome = outro.nome; } } [...]

PERGUNTAS?

PARTE PRÁTICA

Experimentando Vamos aprimorar a classe Produto para que ela conte o número de objetos já criados. Vamos aprimorar a classe e o sistema para que ele use o contador como ID Aprimorar a classe Produto com o construtor cópia

Experimentando Implemente o construtor replicador na classe Retangulo e na classe Circulo

Experimentando Vamos fazer um programa simples que calcule e imprima o volume de uma esfera usando JOptionPane para entrada e saída de dados. Nota: volume = (4/3) * PI * raio 3

PROJETO / ATIVIDADE

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

Projeto / Atividade Hoje: Continue o projeto CadCli Modifique o método main da classe CadCli: Imprima um menu: Cadastro de Clientes (C)adastrar Cliente (L)istar Clientes (B)uscar Cliente (E)ditar Cliente (S)air Opção: _ Leia a opção do usuário e programe a ação de todas as opções em separado, cada uma respondendo Rotina não implementada