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

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

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

É usual respeitarem-se as seguintes convenções: Nome de uma classe começa por maiúscula (e.g. Solido)

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

ESQUEMA AULA PRÁTICA 0 Familiarização com o Ambiente de Desenvolvimento NetBeans Construção do primeiro programa em java.

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1

AULA TEÓRICA 3 Tema 2. Introdução a programação em Java (JVM, JDK)

(Características fundamentais de Codificação de programas)

09/05/2017. Técnicas Avançadas de Programação APRESENTAÇÃO

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

Aula teórica 7. Preparado por eng.tatiana Kovalenko

IFSC/Florianópolis - Programação Orientada a Objetos com Java - prof. Herval Daminelli

È um tipo estruturado homogêneo

Programação Estruturada e OO Aula 1.2 Introdução a Paradigmas de Programação. Prof. Bruno Moreno

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Java na Cabeça Mudando de Paradigma

Técnico em Informática. Web JavaScript. Profª Ana Paula Mandelli

Arrays em Java. Prof. Renato Pimentel. GGI030 Programação Orientada a Objetos. Universidade Federal de Uberlândia Faculdade de Computação

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

Introdução aos computadores, à Internet e à World Wide Web. Prof. Marcelo Roberto Zorzan

Linguagem de Programação II

Esta é a única declaração da aplicação

ALOCAÇÃO DINÂMICA DE MEMÓRIA

Instituto Superior de Engenharia de Lisboa

AULA TEÓRICA 4. Tema 3. Linguagem de programação de alto nível Java

Desenvolvimento de Software I

Algoritmos I Aula 12 Linguagem de Programação Java

JAVA. Professor: Bruno Toledo

Arrays. Professor: Ricardo Luis dos Santos IFSUL Campus Sapucaia do Sul

Estrutura de Dados. Aula 07 Alocação Dinâmica

Introdução. PCO / PPO Departamento de Informática Faculdade de Ciências da Universidade de Lisboa

Arquitecturas Alternativas. Java Virtual Machine

Introdução a Linguagem

INTRODUÇÃO A LINGUAGEM JAVA

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

TÉCNICO DE INFORMÁTICA - SISTEMAS

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

Objetivos. Responder o que é Java; Mostrar as vantagens e desvantagens do Java; Compilar e executar um programa simples.

A linguagem Java foi projetada tendo em vista os seguintes objetivos:

Arrays (Vetores) Arrays (Vetores) 28/04/ Índices. profs. } Ex1: Se eu preciso manipular 100 nomes de pessoas ao mesmo tempo... é melhor...

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

Ponteiros em C. Adriano Joaquim de Oliveira Cruz 21 de julho de Instituto de Matemática Departamento de Ciência da Computação UFRJ

Programação I A Linguagem C. Prof. Carlos Alberto

Revisões de PG. Programação Orientada por Objetos (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa

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

Programação I 2º Bimestre (material 1)

Linguagem C Ponteiros

Aula 2 Introdução a Linguagem Java

Algoritmia e Programação APROG. Tecnologia JAVA. IDE Netbeans. Nelson Freire (ISEP DEI-APROG 2012/13) 1/31

Memória. Arquitetura de Von Neumann. Universidade do Vale do Rio dos Sinos Laboratório I Prof.ª Vera Alves 1 CPU. Unidade de controle ULA

Linguagem de Programação III

Programação I Curso: Sistemas de Informação

Aula 1 POO 1 Prática. Profa. Elaine Faria UFU

Introdução à Programação de Computadores Fabricação Mecânica

Lógica de Programação e Algoritmos

Programação com Objectos. Processamento de Dados I. 2. Classes, Atributos e Métodos

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

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

CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO

PROGRAMAÇÃO I. Introdução

Vetores Unimensionais

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

LINGUAGEM C: ARRAY: VETORES E MATRIZES

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

- Mapa de memória de um processo - Ponteiros

O AMBIENTE DE DESENVOLVIMENTO

Algoritmos e Técnicas de Programação Introdução Givanaldo Rocha de Souza

Introdução à Ciência da Computação. Prof. Dr. Rogério Vargas

FACULDADE BATISTA MINEIRA - CST Banco de Dados Estruturas de Dados - Variáveis

Array em Java. Figura 1 - Exemplo de um array de inteiros

Representação de Dados Arrays e Structs

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

Organização de programas em Java

Fundação Educacional Encosta Inferior do Nordeste

Professor: José Ronaldo Leles Júnior Curso: Sistemas de Informação

Laboratório de Programação II

FIC-POO. Aula 1.2 Introdução a Java e POO. Prof. Dr. Bruno Moreno

Revisão NT Editora e Figuramundo. Projeto Gráfico NT Editora. Editoração Eletrônica NT Editora e Figuramundo. Capa NT Editora

Desenvolvimento de Aplicações Desktop

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Fundamentos de Programação de Computadores Linguagem C Vetor Unidade 09 Linguagem C - Vetor 1/16

AULA 1 INTRODUÇÃO AO JAVA

Linguagem de Programação Introdução a Orientação a Objetos

Ambiente de desenvolvimento

A Linguagem Java. Prof. Vicente Paulo de Camargo

Programação C/C++ Slide 5 Nielsen Castelo Damasceno

Programação por Objectos. Java

Programação de Computadores II TCC Profs.: Anselmo Montenegro (1) & Marcos Lage (2) (1) (2)

Informática Parte 15 Prof. Márcio Hunecke

Programação I Matrizes e Strings. Prof. Carlos Alberto

Instituto de Informática Estrutura de Dados II

Classes e Objetos. Sintaxe de classe em Java

Ambientação com a Sintaxe de Java: parte 1

Introdução à linguagem C

Lic. Engenharia de Sistemas e Informática

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

Introdução ao Java. Prof. Herbert Rausch Fernandes

Transcrição:

2 A tecnologia Java Uma ideia base da linguagem JAVA é a de que, um programa em JAVA deve poder ser executado em qualquer tipo de computador sem ter que ser alterado ou compilado novamente. Em Java o código fonte da aplicação é compilado para uma representação intermédia, independente do sistema de execução e da arquitectura da máquina. Essa representação intermédia é designada por byte-code. De seguida este código pode ser interpretado sobre o ambiente de cada máquina específica. UBI, Departamento de Informática T02-1

Para cada plataforma em que se pretende executar um programa em Java é necessário um motor de execução designado por Java Virtual Machine (JVM). A JVM recebe byte-code e transforma-o em instruções executáveis na máquina onde o ambiente Java é instalado. Editor Código Java Compilador de Java (javac) Java byte-code Interpretador de Java (JVM) Código executável UBI, Departamento de Informática T02-2

O JAVA pode ser usado para criar dois tipos de programas: Aplicações e Applets. Aplicações Java são programas que após serem compilados apenas requerem uma JVM para serem interpretados e executados. Applets são porções de código Java não executável por si próprio. Requerem a existência de um browser que incorpore e execute a JVM. A linguagem Java A linguagem Java foi criada no início dos anos 90 por uma equipa da Sun Microsystems liderada por James Gosling. UBI, Departamento de Informática T02-3

Aquela equipa ao pretender desenvolver software para pequenos equipamentos de electrónica deparou-se com dificuldades em encontrar uma linguagem adequada para criar programas que pudessem ser executados em dispositivos com arquitecturas muito diferentes. A tentativa de criar uma linguagem independente da arquitectura a programar deu origem ao Java (inicialmente designada por Oak). Java é uma linguagem Orientada a Objectos de uso geral Java segue a sintaxe e a estrutura geral do C++ UBI, Departamento de Informática T02-4

A JVM está embutida nos principais Web-browsers Java começou por ser uma marca comercial da Sun Microsystems Em 2010 a Sun foi comprada pela Oracle Corporation Java é também um esforço de marketing bem conseguido pela Sun O nome Java Java é o nome de uma ilha da Indonésia (130.000Km2, 90.000.000 de habitantes, capital Jakarta) Java é o nome de um tipo de café criado em Java e ilhas vizinhas Java é uma palavra inventada pela Sun para substituir o nome inicial da linguagem (Oak) UBI, Departamento de Informática T02-5

Classes em Java Em Java os programas são constituídos por diversas classes. Algumas classes são escritas por nós, outras fazem parte da biblioteca. As classes são agrupadas em pacotes (packages). As classes possuem atributos (variáveis) e métodos (funções). UBI, Departamento de Informática T02-6

Classes em Java As classes são tipos de dados. Em Java cada objecto pertence a um determinado tipo. O tipo de um objecto é a sua classe. Algumas classes são Applets e podem ser executadas num browser UBI, Departamento de Informática T02-7

Um construtor é uma operação especial da classe Serve para criar um objecto da classe Todos os construtores de uma classe têm o mesmo nome que a classe Os construtores são identificados pela sua lista de parâmetros Um construtor é uma função em que não é declarado o tipo do resultado (o resultado é um objeto da classe). UBI, Departamento de Informática T02-8

Tipos referenciados Objectos e Arrays Designam-se por tipos referenciados entidades (objectos ou arrays) que são acedidas através de uma variável que contém o seu endereço. Note-se que, sendo estes objectos referenciados através de variáveis, atribuições entre estas variáveis assumem uma semântica de apontadores, ou seja, o que é atribuído ou manipulado são referências (isto é, endereços). UBI, Departamento de Informática T02-9

Objectos Veiculo carro1; // é reservado um espaço de memória, //associado ao identificador carro1, e é-lhe //atribuído o valor null. carro1 = new Veiculo(1535, 2001); // invocar um construtor; pot = 1535 carro1 ano = 2001 // é criado (instanciado) um objecto do tipo Veiculo e o seu endereço é colocado em carro 1. UBI, Departamento de Informática T02-10

Suponhamos: Veiculo carro2 = new Veiculo(); Veiculo carro3; pot = 0 carro2 ano = 0 null carro3 UBI, Departamento de Informática T02-11

O que significam as seguintes instruções? carro2 = carro1;? carro1 = carro3;? carro1 = carro2;? carro1 == carro2;? Veiculo carro4 = new Veiculo(1535, 2001); carro1 == carro4;? UBI, Departamento de Informática T02-12

Arrays Os arrays são entidades referenciadas mas não são objectos A criação de tabelas (arrays) assemelha-se à criação de objectos int [] tabela; tabela = new int [10]; ou int [] tabela = new int [10]; tabela @ @+1 @+2 @+3 @+4 @+5 @+6 @+7 @+8 @+9 @ UBI, Departamento de Informática T02-13

Os arrays são criados dinamicamente (em tempo de execução) e o seu espaço é automaticamente reaproveitado quando deixam de estar referenciados Exemplos: int lista[]; // declaração "à la C" int[] lista; // declaração equivalente à anterior int[] lista = { 10, 12, 33, 23, 56, 67, 89, 12 }; /* declaração com inicialização */ int[] lista = new int[20]; // array de inteiros com 20 componentes byte[] pixels = new byte[600*800]; /* pixels é um array de 480000 bytes */ UBI, Departamento de Informática T02-14

String[] texto = new String[200]; /* texto é um array de 200 Cadeias de caracteres */ int[] potencias2 = {2, 4, 8, 16, 32, 64, 128, 256, 512, 1024, 2048, 4096}; String [] moedas = { "Dólar", "Yene", "Euro", "Florim" }; // String é um tipo de objecto (classe String)!!! A multi-dimensionalidade é implementada como aninhamento (array de arrays) int [] [] tabela = new int[10] [20]; /*tabela é um array bidimensional de 10 linhas e 20 colunas*/ UBI, Departamento de Informática T02-15

int tabela[] [] = new int[10] [20]; /* declaração equivalente à anterior */ Tabela @ @+1 @+2 @+3 @+4 @+5 @+6 @+7 @+8 @+9 @ 0 0 0 0... 0 0......... 0 0 0 UBI, Departamento de Informática T02-16

int[][] matriz = new int[3][];? Neste caso, seria alocado um array de 3 posições, com referências de valor null, de momento, para cada um dos elementos a alocar nestas posições, sabendo-se, que tais elementos devem ser do tipo int[], ou seja, arrays de inteiros. Os elementos do tipo int[] deste array podem ter dimensões distintas... int[][] matriz = { {1,2}, {10, 20, 30}, {19, 2, 34, 21, 16}}; UBI, Departamento de Informática T02-17

Acesso aos elementos de um array int[] a = new int[20] ; int[][] tabela = new int[20][];... tabela[10] = new int[5];... int x, y; x= tabela[10][2] + a[4]*a[7]; x= a[0]; y = a[a.length-1]; a[0 ] = x + y;...com array.length evita-se o acesso a elementos inexistentes (ArraylndexOutOfBoundsException) UBI, Departamento de Informática T02-18

Exercícios: a) Declarar e alocar um arrray de inteiros, x, de dimensão 100 e atribuir valores aleatórios entre 20 e 200 ao array usando a função Math.random() : b) Escrever na consola os valores do array x; c) Calcular a soma dos elementos do array x. d) Criar um novo array, y, que é calculado a partir do array x, multiplicando cada elemento de x por um 0.5. e) Somar os arrays x e y. f) Calcular o produto interno de x por y. O método Math.random() devolve um valor do tipo double pertencente ao intervalo [0, 1[. UBI, Departamento de Informática T02-19

Cópia de uma tabela? Assim? int[] b; b = a; Ou assim? int[] b = new int[20] ; for(int i = 0; i< a.length ; i++ ) b[i] = a[i] ; UBI, Departamento de Informática T02-20