ção a Objetos em Java



Documentos relacionados
INTRODUÇÃO À PROGRAMAÇÃO II VARIÁVEIS COMPOSTAS HOMOGÊNEAS UNIDIMENSIONAIS

Vetores Unimensionais

Orientação a Objetos

AULA 3 Alocação dinâmica de memória: Ponteiros

Programação Orientada a Objetos

LINGUAGEM JAVA - RESUMO

BC1424 Algoritmos e Estruturas de Dados I Aula 02: Ponteiros, estruturas e alocação de memória

Reader e Writer para streams de caracteres (texto).

Strings e Arrays POO

Programação Orientada a Objeto Java

Algoritmos e Estruturas de Dados I. Variáveis Indexadas. Pedro O.S. Vaz de Melo

Isto não é exequível!... B[8][6] A[10] Slides_Java_4

Vetores Unimensionais

Conceitos c++ Prof. Demétrios Coutinho INFORMÁTICA BÁSICA

Universidade Federal de Uberlândia - UFU Faculdade de Computação - FACOM Lista de exercícios de programação em linguagem C. Exercícios: Structs

- Campus Salto. Disciplina: Sistemas de Arquivos Docente: Fernando Santorsula

Paradigmas de Programação. Genéricos

BC-0505 Processamento da Informação

Vetores Unimensionais

MC Teste de Mesa e Comandos Repetitivos

Vetores Unimensionais

Coleções. Prof. Marcelo Roberto Zorzan

2) Escreva um algoritmo que leia um conjunto de 10 notas, armazene-as em uma variável composta chamada NOTA e calcule e imprima a sua média.

ALOCAÇÃO DINÂMICA DE MEMÓRIA

21/05/2013. Informações Complexas. Arquivos de Texto e Arquivos Binários. Hierarquia de Dados. Armazena Informação. Classificação de Arquivos

Notas de Aula 07: vetores de objetos e coleções

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

1. Estrutura de Dados

Programação Orientada a Objetos

Linguagem de Programação II Implementação

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Orientação a Objetos AULA 09

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

Switch switch switch switch switch variável_inteira valor1 valor2 switch variável_inteira case case break switch case default default switch switch

Modulo II Padrões GRASP

Conceitos básicos de programação

Módulo IV Programação Visual Basic. Programação

Vetores, Matrizes e String

Proporcionar a modelagem de sistemas utilizando todos os conceitos da orientação a objeto;

Programação Orientada a Objetos. Collections - Java

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

Lista de Exercícios Nro. 1 Programação Orientada a Objetos - SCC204

AULA 6 - ARRAYS. Array de 10 elementos

Java na Prática. Célio Silva Aula 3

Java possui 4 tipos de dados. Estes tipos de dados são divididos em: boolean, character, integer e float.

1. Escreva um programa em Pascal que leia três valores inteiros e mostre-os em ordem crescente. Utilize seleção encadeada.

Linguagens de Programação:

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

Referências. Programação de Computadores II. Cap. 7 Cadeias de Caracteres. Caracteres. Tópicos

Algoritmos APRENDENDO A PROGRAMAR COM C#

Estrutura de repetição do/while

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

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback

Estruturas de Repetição

JAVA COLLECTIONS API: LISTAS

Linguagem de Programação C. Fluxo de Saída Padrão. Linguagem de Programação C. printf. Fluxo de Saída Padrão. Algoritmos e Lógica de Programação

Variáveis Compostas. Vanessa Braganholo

Orientação a Objetos (em Java)

Aula 08 Estruturas de Condição. Disciplina: Fundamentos de Lógica e Algoritmos Prof. Bruno Gomes

LINGUAGEM SQL Linguagem usada em SGBD para: Definir estrutura de dados; Modificar dados em um banco de dados; Especificar restrições de segurança; Rea

AULA 02 DADOS PRIMITIVOS E EXERCÍCIOS

Orientação a Objetos (em Java)

Análise de Programação

Introdução à Programação. Funções e Procedimentos. Prof. José Honorato F. Nunes honoratonunes@gmail.com

Variáveis Compostas Heterogêneas. Variável Composta Heterogênea. Variável Composta Heterogênea

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

INTERFACE PARALELA. Área: Eletrônica Nível de conhecimento necessário: básico. Autor:

5 Arrays. 5.1 Criando um array. 5.2 Inicializando arrays. c:\>java Array Janeiro tem 31 dias.

O AMBIENTE DELPHI. Programação de Computadores.

Disciplina: OS&M AULA 7

Os conceitos aprendidos são fundamentais, essenciais para escrever um programa macro. Mas o que é um programa macro?

Lógica de Programação. Lógica de Programação com Java

Do alto-nível ao assembly

Módulo 5. Programação Orientada a Objetos. Programação Orientada a Objetos I Java (Rone Ilídio)

Linguagem de programação Java

Programação em FORTRAN V. João Manuel R. S. Tavares

Java API. Giuliana Silva Bezerra

Criação de métodos em Java

Exercícios: Vetores e Matrizes

Programação Orientada a Objetos

Transcrição:

Uso de Orientaçã ção a Objetos em Java Objetos e Mensagens Objetos em Java Principais classes Containers

Um pouco de história... Variáveis como elementos isolados int dia, mes, ano; Fácil compreensão, porém duas principais desvantagens: Várias declarações: int meudianascimento, meumesnascimento, meuanonascimento; int seudianascimento, seumesnascimento, seuanonascimento; Variáveis independentes, sem relação: Em nível conceitual, tudo faz parte de uma data. Para isto, há os tipos agregados de dados (estruturados ou de registro).

Tipos agregados de dados Exemplo Pascal: Em Java: Data = record dia, mes, ano: integer; end; public class Data { int dia; int mes; int ano; } Data meunascimento, seunascimento; Mais tarde, usa-se: seunascimento.dia = 26; seunascimento.mes = 11; seunascimento.ano = 1960; 1

Objetos e Classes Classe com seus atributos (Data com dia, mês e ano) Objeto é uma instância da classe (meunascimento) Porém, ainda há que se definir métodos, pois como está qualquer valor inteiro pode ser atribuído às variáveis membro (atributos).

Criação de um objeto Declaração não cria objeto, diferentemente dos tipos primitivos Para criar efetivamente, deve-se instanciá-lo. Data meunascimento; meunascimento = new Data();

Criação de um objeto (continuação) O espaço real de memória alocado com new é o objeto efetivamente.

Características dos Objetos Os objetos não são acessados diretamente são acessados por meio de um manipulador (handle), através do qual lhe são enviadas mensagens. Ex.: lulu = new Cachorro(); // lulu é o handle do novo objeto Os objetos existem à parte do fluxo do programa estão todos na heap (alocados dinamicamente) não tem tempo de vida determinado pelo programador não tem escopo, na verdade, são todos visíveis a partir de um manipulador que tem escopo e tempo de vida quando não existem mais referências para um objeto ele é automaticamente retirado da memória (garbage collection) 1

Utilização de Objetos em Java Declaração do handle Ex.: tipo nomehandle; Date hoje; Instanciação Associação do handle a um novo objeto nomehandle = new ConstructorDaClasse(); Associação do handle a um objeto que já existe nomehandle = outrohandle;

Exemplo de uso de objetos... Date hoje; hoje = new Date(); // cria uma instância da classe Data // a data de hoje, // sendo hoje o handle deste objeto Date aniv = new Date(1997, 5, 30); // construtor hipotético Date aniv2; aniv2 = aniv; // aniv e aniv2 são handles para o // mesmo objeto if (hoje.after(aniv) { // envio da mensagem after, } // já passou do aniv // com parâmetro, para o objeto // hoje

Classes Básicas x Tipos Primitivos Variáveis (par: posição memória + valor) int a = 10; // a é um tipo primitivo, // não pode receber mensagens, ex.: a.inc() Objetos Integer b = new Integer(10); // b é um handle de objeto int c = b.intvalue(); Tipos primitivos ficam na stack (mundo do programa) Objetos ficam na heap (mundo dos objetos)

Containers Matrizes ArrayList HashMap

Matrizes Declaração tipo[] nome; // cria a variável, mas não aloca memória nome = new tipo[tamanho]; // aloca memória Obs.: A alocação de memória é feita em tempo de execução, logo, o tamanho das matrizes pode ser calculado durante a execução do programa. Exemplo char[] m = new char[200]; Inicialização int[] a = { 1, 2, 3, 4, 5}; int[][] b = { {1,2,3} {4,5,6} };

Exemplo: matrizes // declaração de duas matrizes int[] vetint1 = { 1, 3, 5, 7, 9, 11 }; int[] vetint2 = new int[vetint1.length * 2]; // loop de inicialização for( int i=0; i < vetint1.length; i++) { vetint2[i*2] = vetint1[i]; } vetint2[i*2+1] = vetint1[i] + 1; // loop de impressão for( int i=0; i < vetint2.length; i++) System.out.println(vetInt2[i]);

A classe ArrayList ArrayList é um array que pode mudar de tamanho depois de sua criação (+- lista dinamicamente encadeada) Assim como no array, os objetos são recuperados pela sua posição Principais métodos add(objeto) get(posição) remove(objeto) int size() int indexof(objeto) import java.util.*;... ArrayList valores = new ArrayList(); valores.add ( uma casa ); valores.add ( está limpa ); for (int i=0; i < valores.size(); i++) { System.out.println( valores.get(i)); } Collections.sort(valores); // Exerc: repetir a impressão

A classe HashMap É um container que armazena os objetos na forma de tabelas Hash. Rápido acesso para consulta (não é uma estrutura seqüencial) Os objetos são recuperados por meio de uma chave de acesso Para cada objeto há uma chave de entrada na tabela (método hashvalue determina o ponto de entrada - a classe Object implementa este método, que pode ser sobre-escrito) Os objetos não tem uma ordem Principais métodos Object put(objetochave, Objeto) Object get(objetochave) boolean containsvalue(objeto) Object remove(objectochave) int size() 1

ExemploHash HashMap dados = new HashMap();... do { cod = teclado.readline(); if (! cod.equalsignorecase("fim")) { nome = teclado.readline(); dados.put(cod,nome); } } while (! cod.equalsignorecase("fim")); do { cod = teclado.readline(); nome = (String)dados.get(cod); if (nome!= null) System.out.println(nome); } while (! cod.equalsignorecase("fim")); 1

Exercícios Ler dois arrays de 10 números reais (A e B) e calcular S = (A[1] * B[10]) + (A[2] * B[9]) +... calcular C, sendo C[i] = A[i] / B[i], e imprimi-lo invertido imprimir os números pares de A (considerando a parte inteira dos números) Fazer um programa que leia várias linhas (até ser digitado fim) e as imprima na ordem inversa da digitação Fazer um programa que leia o número da conta corrente de clientes e seus nomes. Depois, para cada número digitado, imprima o nome do correntista.

Resumo Integer a = new Integer( 10 ) int b = a.intvalue() + 2; String x StringBuffer String[] vs = new String[10] vs[3] = teste ArrayList al = new ArrayList() Float f = (Float)al.get(2) Iterator i = al.iterator() i.next(); i.next() Float f = (Float) i.next(); Quando usar matriz, ArrayList ou HashMap? Existem outros containers no pacote java? Pode-sedefinir novos containers baseados nos existentes?