public void setdata(data d) { data = d;



Documentos relacionados
public Agenda() { compromissos = null; } public int getnumerodecompromissos() { if (compromissos==null) return 0; else return compromissos.

Algoritmos e Programação II. Sobrecarga

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

Noções sobre Objetos e Classes

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

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

2 Orientação a objetos na prática

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 6 Filas

BC0501 Linguagens de Programação

2ª LISTA DE EXERCÍCIOS CLASSES E JAVA Disciplina: PC-II. public double getgeracaoatual() {return geracaoatual;}

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

Projeto de sistemas em Java. Algoritmos e Programação I. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario. Classe SimulacaoFuncionario

Programação Orientada por Objetos

Tabelas (arrays) (vetores, matrizes, etc) Algoritmos de pesquisa Algoritmos de ordenação

UNIVERSIDADE FEDERAL DO PARANÁ

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento Eclipse Introdução à Linguagem de Programação JAVA

Bacharelado em Ciência e Tecnologia Processamento da Informação. Equivalência Portugol Java. Linguagem Java

Orientação a Objetos com Java

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

ESQUEMA AULA PRÁTICA 1 Familiarização com o Ambiente de Desenvolvimento NetBeans Introdução à Linguagem de Programação JAVA

UNIVERSIDADE FEDERAL DO PARANÁ

Java TM e o Modelo de Objetos

Objetivo do programa: Implementação de um analisador de Logs do Servidor Web com base nos requisitos da unidade curricular de Estatística.

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

Templates e Pilhas. 1. Introdução

Exercícios de Revisão Java Básico

A Linguagem Java. Alberto Costa Neto DComp - UFS

Técnicas de Programação II

NetBeans. Conhecendo um pouco da IDE

Criar a classe Aula.java com o seguinte código: Compilar e Executar

Unidade IV: Ponteiros, Referências e Arrays

Analisar os sistemas operacionais apresentados na figura e responder as questões abaixo: Identificar

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 Orientada a Objetos (DPADF 0063)

AULA 12 CLASSES DA API JAVA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

JSP - ORIENTADO A OBJETOS

Implementando uma Classe e Criando Objetos a partir dela

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

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

Análise de Programação

Java. Marcio de Carvalho Victorino

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Linguagem de Programação III

Programação Orientada a Objetos

5 Caso de estudo O cartão fidelidade

Processamento da Informação Teoria. Algoritmos e Tipos de dados

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

Projeto de Software Orientado a Objeto

Módulo 3. Métodos e String. Programação Orientada a Objetos I Java (Rone Ilídio)

Universidade da Beira Interior Cursos: Matemática /Informática e Ensino da Informática

Programação Orientada a Objetos C ++ 4 Conceitos de OO em Java Classes e Objetos

JAVA. Fabrício de Sousa

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

Programação Orientada a Objetos. Encapsulamento

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Design Patterns (Factory Method, Prototype, Singleton)

Laboratório de Programação 02

Programação Orientada a Objetos em Java

Programação por Objectos. Java

Orientação a Objetos. Conceitos Iniciais Introdução a Linguagem Java. Gil Eduardo de Andrade

Prof. Esp. Adriano Carvalho

Aula 09 Introdução à Java. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

LINGUAGEM ORIENTADA A OBJETOS

Capítulo 5. ARQUIVOS E FUNÇÕES MATEMÁTICAS INTRÍNSECAS

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

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

Encapsulamento de Dados

Semântica de Referência e Vetores / Matrizes

Professor: Douglas Sousa Cursos de Computação

Algoritmia e Programação APROG. Linguagem JAVA. Básico. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

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

Programação de Computadores I

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

Capítulo 3. Programação por objectos em Java

INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DE ALAGOAS CURSO TECNICO EM INFORMATICA DISCIPLINA:

BC0505 Processamento da Informação

Organização de programas em Java. Vanessa Braganholo

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

insfcanceof new public switch transient while byte continue extends for int null

DEFINIÇÃO DE MÉTODOS

Coleções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS

Java 2 Standard Edition Como criar classes e objetos

Utilizem a classe Aula.java da aula passada:

Como foi exposto anteriormente, os processos podem ter mais de um fluxo de execução. Cada fluxo de execução é chamado de thread.

3 Classes e instanciação de objectos (em Java)

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

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Linguagens de. Aula 02. Profa Cristiane Koehler

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

Java - Introdução. Professor: Vilson Heck Junior. vilson.junior@ifsc.edu.br

//Leitura de Variáveis System.out.print("Digite a temperatura atual: "); temp = leia.nextfloat();

Roteiro 1: Dados, variáveis, operadores e precedência

PROGRAMAÇÃO ORIENTADA A OBJETOS

Algoritmos e Estruturas de Dados I

Transcrição:

class Data... public class Compromisso private Data data; private int hora; private String descricao; /**java.lang.string*/ public Compromisso() public Compromisso(Data data, int hora, String descricao) this.data = data; //palavra reservada this this.hora = hora; this.descricao = descricao; public void setdata(data d) data = d; 476

public void sethora(int h) hora = ((h>=0 && h<24)?h:0); void setdescricao(string desc) descricao = desc; Data getdata() return data; int gethora() return hora; String getdescricao() return descricao; 477

void apresenta() System.out.printf("\nInformacoes sobre %s\nhorario: %d", getdescricao(),gethora()); o compromisso: System.out.print ("\ndata: "); data.apresenta(); static public void main(string args[]) Compromisso c = new Compromisso(); Data d = new Data(01, 06, 2010); d.apresenta(); Compromisso c2 = new Compromisso(d, 10, "Ministrar aula de POO"); c2.apresenta(); 478

ALOCAÇÃO DINÂMICA A melhor forma de entender a alocação dinâmica de memória em Java é através da análise de um exemplo. import java.util.scanner; public class AlocacaoDinamica static public void main (String args[]) Scanner input = new Scanner(System.in); int vetor[] = null, numero; do System.out.print("Forneca um natural para compor o vetor"); System.out.print(" ou um negativo para finalizar o "); System.out.print("preenchimento do vetor: "); numero = input.nextint(); 479

if (numero>=0) if (vetor == null) /**não é possível substituir esta espressão lógica por if (!vetor) pois vetor não é uma variável boolean*/ vetor = new int[1]; vetor[0] = numero; else int[] aux = new int[vetor.length+1]; for (int i=0; i<vetor.length; i++) aux[i] = vetor[i]; aux[aux.length-1] = numero; vetor = aux; System.gc(); // pede que a coleta de lixo ocorra neste ponto while(numero>=0); System.out.println("\nOs elementos do vetor sao:"); for (int aux:vetor) System.out.println(aux); 480

VARIÁVEIS E MÉTODOS DE CLASSE Assim como vimos na linguagem C++ na linguagem Java cada objeto de uma classe possui sua cópia das variáveis de instância definidas na classe. Java também possibilita que, em certos casos, apenas uma cópia de certo atributo seja compartilhada por todos os objetos da classe. Denominado este tipo de atributo como variável de classe e assim como em C++ o especificamos com a palavra reservada static. Da mesma forma que podemos definir variáveis de classe também podemos definir métodos de classe. Analisaremos agora um exemplo da declaração da classe Ponto2D utilizando-se de variáveis e métodos de classe. 481

482 public class Ponto2D private float x; private float y; private static int numerodepontosinstanciados = 1; /** variável de classe */ /*... */ public static void setnumerodepontosinstanciados(int novonumerodepontosinstanciados) /** método de classe */ numerodepontosinstanciados = novonumerodepontosinstanciados; public static int getnumerodepontosinstanciados() /** método de classe */ return numerodepontosinstanciados;

483 ALOCAÇÃO DINÂMICA Para uma visualização mais profunda de como ocorre o processo de coleta de lixo analisaremos mais um exemplo. public class Classe private static int numerodeobjetosinstanciados = 0; /** variável de classe */ public static void setnumerodeobjetosinstanciados(int novonumerodeobjetosinstanciados) /** método de classe */ numerodeobjetosinstanciados = novonumerodeobjetosinstanciados; public static int getnumerodeobjetosinstanciados() /** método de classe */ return numerodeobjetosinstanciados;

public Classe() setnumerodeobjetosinstanciados(getnumerodeobjetosinstanciado s()+1); protected void finalize() /**Método utilizado pela coleta de lixo*/ setnumerodeobjetosinstanciados(getnumerodeobjetosinstanciado s()-1); System.out.println("O metodo finalize() foi executado."); 484

public class TesteGC static public void main(string args[]) System.out.println("Numero inicial de objetos: " + Classe.getNumeroDeObjetosInstanciados()); Classe c1 = new Classe(); System.out.println("Numero atual de objetos: " + Classe.getNumeroDeObjetosInstanciados()); c1 = null; System.gc(); System.out.println("Numero atual de objetos: " + Classe.getNumeroDeObjetosInstanciados()); 485

486 VETORES MULTIDIMENSIONAIS Java não suporta vetores multidimensionais diretamente, mas permite que os programadores especifiquem vetores unidimensionais cujos elementos também são vetores unidimensionais. Esta característica permite que sejam declarados/instanciados vetores bidimensionais cujas linhas possuem números de colunas distintos. Por exemplo: int matriz1[][], matriz2[][]; matriz1 = new int[4][7]; /* cria um vetor bidimensional com 4 linhas e 7 colunas por linha */ matriz2 = new int[2][]; //cria duas linhas matriz2[0] = new int[5]; //determina cinco colunas matriz2[1] = new int[3]; //determina três colunas

487 VETORES MULTIDIMENSIONAIS Analisaremos agora um exemplo mais completo: public class InicializandoVetores public static void main( String args[] ) int vetor1[][] = 1, 2, 3, 4, 5, 6 ; int vetor2[][] = 1, 2, 3, 4, 5, 6 ; System.out.println( "Valores dos elementos do vetor1:" ); apresentavetor( vetor1 ); System.out.println( "\nvalores dos elementos do vetor2:" ); apresentavetor( vetor2 ); public static void apresentavetor(int vetor[][]) for ( int linha = 0; linha < vetor.length; linha++ ) for ( int coluna = 0; coluna < vetor[linha].length; coluna++ ) System.out.printf( "%d ", vetor[linha][coluna] ); System.out.println();

488 CLASSE Math A classe Math disponibiliza vários métodos matemáticos como: Método Descrição abs(x) valor absoluto de x ceil(x) arredonda x para o menor inteiro não menor que x cos(x) cosseno trigonométrico de x (x em radianos) exp(x) método exponencial e x floor(x) arredonda x para o maior inteiro não maior que x log(x) logaritmo natural de x (base e) max(x, y) maior valor de x e y

489 CLASSE Math Método Descrição min(x, y) menor valor de x e y pow(x, y) x elevado à potência de y (isto é, x y ) sin(x) seno trigonométrico de x (x em radianos) sqrt(x) raiz quadrada de x tan(x) tangente trigonométrica de x (x em radianos) A classe também declara duas constantes matemáticas: Math.PI (3,14159265358979323846) Math.E (2,7182818284590452354), base para logaritmos naturais.

490 Exercício: Com base no que vimos declare uma classe Agenda que será uma composição de Compromisso. Implemente uma classe que instancie um objeto da classe Agenda e explore seus comportamentos, através de um menu, exibido ao usuário, com as seguintes funcionalidades: - Inserir compromisso; - Excluir compromisso (com base em sua hora e data de ocorrência); - Consultar a disponibilidade de uma determinada hora em um determinado dia; - Consultar a hora e a data da ocorrência de um compromisso; - Apresentar o conjunto de compromissos Observação: Considerar que os compromissos agendados têm duração constante de uma hora. Caso julgue necessário, efetue as devidas adaptações nas classes Data e Compromisso definidas anteriormente.