UNIVERSIDADE FEDERAL DO PARANÁ. CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o.



Documentos relacionados
UNIVERSIDADE FEDERAL DO PARANÁ

Comandos de repetição For (inicialização; condição de execução; incremento/decremento) { //Código }

Programação Orientada a Objetos em Java

Análise de Programação

Descrição. Implementação. Departamento de Informática e Estatística Universidade Federal de Santa Catarina LAB 4 Transferência de Arquivos

Curso Superior de Tecnologia emtelemática Programação Orientada a Objetos Streams em Java. Copyright 2010 Prof. César Rocha

UNIVERSIDADE FEDERAL DO PARANÁ

Herança. Alberto Costa Neto DComp - UFS

Programação de Computadores - I. Profª Beatriz Profº Israel

Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 01

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Java : Comunicação Cliente-Servidor.

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Especialização em desenvolvimento para web com interfaces ricas. Tratamento de exceções em Java Prof. Fabrízzio A. A. M. N. Soares

Para desenvolver a atividade a atividade desta aula utilizaremos o ambiente de desenvolvimento integrado NetBeans.

A Introdução à Programação Orientada a Objetos. Programação e Sistemas de Informação

Prática de Programação J2ME (15) Especialização em Desenvolvimento Web com Interfaces Ricas

Exercícios de Revisão Java Básico

Paradigmas da Programação PPROG. Linguagem JAVA. Interfaces. (Livro Big Java, Late Objects Capítulo 9) Nelson Freire (ISEP DEI-PPROG 2013/14) 1/33

Implementando uma Classe e Criando Objetos a partir dela

Técnicas de Programação II

Módulo 07 Características Avançadas de Classes

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza

Programação Orientada a Objetos com Java. Prof. Júlio Machado julio.machado@pucrs.br

Objetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Reuso com Herança a e Composiçã

Prova de Java. 1) Copie o programa abaixo no eclipse e complete-o, utilizando os conceitos aprendidos durante o curso. (4 pontos)

Evento.java. package dominio;

Herança. Algoritmos e Programação II. Aula 5 Herança

Java 2 Standard Edition Como criar classes e objetos

Membros de classe e de instância. PARTE III: Java e OO - detalhes. Exemplo 1: método. Exercício. Exemplo 1 corrigido

Prototype, um Design Patterns de Criação

DEFINIÇÃO DE MÉTODOS

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

Encapsulamento de Dados

Java. Marcio de Carvalho Victorino

Programação por Objectos. Java

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Programação online em Java

7 RTTI e Interfaces. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br)

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Módulo VIII Linguagem Java Entrada e Saída de Dados Arquivos

Implementação de Classe e Auto-Relacionamento em Java

Tópicos da Aula. Classes e Objetos. Classe Pública em Java. Classes em Java. Assinatura de Métodos. Corpo de Classes e Métodos. Conceitos de classe

Programação Orientada a Objetos. Encapsulamento

Programação com Objectos. Processamento de Dados I. 4. Classes Abstractas

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Polimorfismo. Prof. Leonardo Barreto Campos 1

Aula 04 Operadores e Entrada de Dados. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

Programação II Java Streams. Christopher Burrows

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Padrão Básico de Projeto: Interfaces e Polimorfismo

Sobre o Professor Dr. Sylvio Barbon Junior

Exemplo 1. Um programa que cria uma instância de uma classe que herda da classe Frame

Programa de Computador que funciona em Rede

Noções sobre Objetos e Classes

2 Orientação a objetos na prática

UNIVERSIDADE DO TOCANTINS TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS PRÁTICA EM PROGRAMAÇÃO DE SISTEMAS ESTUDO DE CASO II

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Classes Abstratas e Interfaces

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

Linguagem de Programação I. Orientação a Objetos em Java

Orientação a Objetos e a Linguagem Java

Programação Orientada a Objetos (DPADF 0063)

Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores

Um pouco do Java. Prof. Eduardo

Introdução a Java. Hélder Nunes

PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

ARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.

Programação Orientada a Objetos em Java. Herança

PHP Orientado a Objetos Análise e Desenvolvimento de Sistemas Prof. Marcelo da Silveira Siedler siedler@gmail.com

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Carga horária : 4 aulas semanais (laboratório) Professores: Custódio, Daniel, Julio foco: introdução a uma linguagem de programação Linguagem Java

Programação Visual TIC - 3PA. Lista de Exercícios 02

Aula 2. Objetivos. Encapsulamento na linguagem Java; Utilizando a referência this.

Análise e Projeto Orientados por Objetos

Profº. Enrique Pimentel Leite de Oliveira

Java TM e o Modelo de Objetos

UML Aspectos de projetos em Diagramas de classes

CONCURSO PÚBLICO EDITAL Nº 03 / 2015

Invocação de Métodos Remotos RMI (Remote Method Invocation)

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

UML: Diagrama de Casos de Uso, Diagrama de Classes

Programação por Objectos. Java

UML Unified Modeling Language

Roteiro do Programa e Entrada/Saída

Aula 3 Objeto atual com referencia THIS e Classes com Herança

Computação II Orientação a Objetos

Exercício 1 : As classes abaixo serão utilizadas neste exercício: public class Ponto { int x; int y; public Ponto(int x, int y){ this.

Programação Orientada a Objetos em java. Polimorfismo

THREADS EM JAVA. George Gomes Cabral

Desvendando o Hibernate

Introdução à Programação. Interface, Polimorfismo e Dynamic Binding

BSI UFRPE Prof. Gustavo Callou

Algoritmos e Programação II. Sobrecarga

POO Programação Orientada a Objetos. Classes em Java

if( opcao.equals("1") ) { ElaborarContratoUI uiec = new ElaborarContratoUI(m_empresa); uiec.run();

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Transcrição:

CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 06 APRESENTAÇÃO Uso e criação de classes; uso de herança; uso de final, abstract e interface, acesso a arquivos em Java DESENVOLVIMENTO Usando a classe Arquivo e o método public void gravar(string frase, String nomearquivo), escreva para a classe Pessoa os métodos de acesso (get e set) além de um método para gravar os dados da pessoa. Altere o programa que leia os dados de 4 pessoas e grave em um arquivo texto. public class Pessoa private String nome; private String endereco; private String telefone; private String email; public void setnome(string nome) this.nome = nome; public String getnome() return this.nome; public void setendereco(string endereco) this.endereco = endereco; public String getendereco() return this.endereco; public void settelefone(string telefone) this.telefone = telefone; public String gettelefone() return this.telefone; public void setemail(string email) this.email = email; public String getemail() return this.email; public void grava() String frase = this.nome+"\t"+this.endereco+"\t" +this.email+"\t"+this.telefone; Arquivo.grava(frase, "arq.txt"); public class Exemplo public static void main(string args[]) Pessoa pessoa = new Pessoa(); for(int i=0;i<4;i++) System.out.println("Digite um nome"); pessoa.setnome(leitor.lestring()); System.out.println("Digite um endereco"); pessoa.setendereco(leitor.lestring()); System.out.println("Digite um email"); pessoa.setemail(leitor.lestring()); System.out.println("Digite um telefone"); pessoa.settelefone(leitor.lestring()); pessoa.grava(); Herança Página 1/6

A herança é um conceito muito usado em programação orientada a objetos. O conceito é baseado em generalização-especialização. Onde temos uma classe mais genérica chamada superclasse e uma classe mais especializada chamada subclasse. A subclasse será uma classe que terá tudo que a superclasse posui (herdará) além dos seu próprios métodos. Por exemplo: Se tivermos que construir uma classe Professor que possua nome, endereco, email, telefone e disciplina. Podemos usar a classe Pessoa já construída e fazer com que Professor herde de Pessoa. public class Professor extends Pessoa private String disciplina; public void setdisciplina(string disciplina) this.disciplina = disciplina; pubilc void getdisciplina() return this.disciplina; E usando a classe Professor public class Exemplo public static void main(string args[]) Professor prof = new Professor(); for(int i=0;i<4;i++) System.out.println("Digite um nome"); prof.setnome(leitor.lestring()); System.out.println("Digite um endereco"); prof.setendereco(leitor.lestring()); System.out.println("Digite um email"); prof.setemail(leitor.lestring()); System.out.println("Digite um telefone"); prof.settelefone(leitor.lestring()); prof.setdisciplina( Curso de férias ); Note que Professor terá os mesmos métodos de Pessoa e mais setdisciplina() e getdisciplina(), além dos atributos de Pessoa. Para saber se conceitualmente é possível usar herança é so perguntar Professor é uma Pessoa? Se a resposta for sim, é possível Professor é uma Disciplina? Não, então não existe uma relação de herança Na programação é só ver se existem muitos atributos repetidos em duas ou mais classes. Escrevendo Métodos e Classes Final Você pode declarar que sua classe é final, ou seja, que sua classe não pode ser herdada por nenhuma outra classe. Existem dois motivos principais para fazê-lo: para aumentar a segurança do sistema, prevenindo subversão do sistema e para garantir boas práticas de programação. Para especificar que a sua classe é final: final class ChessAlgorithm Qualquer tentativa de criar uma subclasse de ChessAlgorithm resultará em erro de compilação: Página 2/6

Chess.java:6: Can't subclass final classes: class ChessAlgorithm class BetterChessAlgorithm extends ChessAlgorithm ^ 1 error Métodos Final Criar uma classe final pode parecer muito para as suas necessidades? Você pode proteger apenas um ou mais métodos de serem sobrescritos. É só declarar o método que você quer proteger como final class ChessAlgorithm final void nextmove(chesspiece piecemoved, BoardLocation newlocation)... Escrevendo classes e métodos abstract As vezes você define uma classe que representa um conceito abstrato e que não deve ser instanciado. Da mesma forma, em Java você pode querer criar uma classe sem permitir que essa classe possa ser instanciada. Esta classe servirá apenas como base para a construção de suas subclasses. Para declarar uma classe como abstract é só usar a palavra abastract abstract class Number Se você tentar criar uma instancia da classe: AbstractTest.java:6: class AbstractTest is an abstract class. It can't be instantiated. new AbstractTest(); ^ 1 error Métodos Abstract Métodos abstract são métodos sem implementação. Neste caso você define que a subclasse é que irá implementá-lo. Por exemplo: abstract class GraphicObject int x, y; void moveto(int newx, int newy) abstract void draw(); class Circle extends GraphicObject void draw() Página 3/6

Interface Uma interface define um protocolo de comportamento que pode ser implementado por qualquer outra classe. Uma interface define um conjunto de métodos mas não implementa. A classe que implementa uma interface concorda em implementar todos os métodos definidos na interface. Uma interface pode também declarar constantes. Declarando uma interface public interface gente final String definicao= comportamento de gente ; public int calculaidade(int ano); Cuidado! Interfaces não podem crescer! Implementando uma interface. public class Pessoa implements Gente private int anonasc; public int calculaidade(int ano) return ano-this.anonasc; Usando uma Interface como tipo Podemos usar uma Interface como tipo. Para declaração de variáveis, passagem de parâmetros, etc. Neste caso as variáveis que são atribuídas devem ser de classes que implementam esta interface. public class Velho private static Pessoa mais; public static int diferenca(gente novo) return this.mais.calculaidade(2003) novo.calculaidade(2003); Leitura e gravação de objetos em arquivos Para ler e gravar um objeto de uma classe como a classe pessoa é necessário que a classe Pessoa seja declarada como implementando a interface Serializable. Para efetuar a gravação vamos precisar de dois objetos: um objeto arq da classe FileOutputStream para estabelecer o fluxo de gravação do arquivo e um objeto out da classe ObjectOutputStream para colocar os dados do objeto no fluxo do arquivo. Para efetuar a leitura de um objeto de um arquivo vamos precisar de um objeto arq da classe FileInputStream para estabelecer o fluxo de leitura do arquivo e um objeto in da classe ObjectInputStream para ler os dados do objeto do fluxo do arquivo. import java.io.*; public class Pessoa implements Serializable Página 4/6

private String nome; private String email; public Pessoa() public Pessoa(String nome, String email) this.nome = nome; this.email = email; public String getnome() return this.nome; public String getemail() return this.email; import java.io.*; public class PrincipalObj public static void main(string[] args) try FileOutputStream arq = new FileOutputStream("arq.dat"); ObjectOutputStream out = new ObjectOutputStream(arq); for(int i=0;i<5;i++) Pessoa p = new Pessoa("pessoa"+i, "pessoa"+i+"@spet"); out.writeobject(p); out.flush(); out.close(); catch(java.io.ioexception exc) System.out.println("Erro ao Gravar o arquivo"); try FileInputStream arq = new FileInputStream("arq.dat"); ObjectInputStream in = new ObjectInputStream(arq); for(int i=0;i<5;i++) Pessoa p = (Pessoa) in.readobject(); System.out.println(p.getNome()); System.out.println(p.getEmail()); in.close(); catch(java.io.ioexception exc2) System.out.println("Erro ao Ler o arquivo"); catch(classnotfoundexception cnfex) System.out.println("Não achou a Classe"); Página 5/6

ATIVIDADE 1) Construa uma classe Aluno que possua os atributos nome, endereco, email, telefone e 4 notas. Escreva os métodos get e set para os atributos da classe, um método para inserir uma nota passando o valor da nota e o índice, um método para retornar o valor de uma nota passando o índice e um método para calcular e retornar a média. 2) No exercício anterior verifique se é possível usar herança em relação à classe Pessoa. Se for possível, modifique a classe aluno da maneira adequada. 3) Digite e rode os programas para gravação de arquivo de objetos. BIBLIOGRAFIA BÁSICA DEITEL, H. M. e DEITEL, P. J.. Java, como Programar. Ed. Bookman. Porto Alegre. 2001. Página 6/6