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

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

Diagramas Sintáticos

Sintaxe da linguagem Java

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

Instituto Superior de Engenharia de Lisboa

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Linguagem Java - Introdução

Introdução a JAVA. Variaveis, tipos, expressões, comandos e blocos

Introdução a JAVA. Variáveis, tipos, expressões, comandos e blocos

Módulo Lógica Programação com aplicações em Java. Projeto khouse Profissionalizante Profª Larissa Brandão

Tipos de dados e comandos POO

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

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

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

Noçõ linguagem Java. Profs. Marcel Hugo e Jomi Fred Hübner. Departamento de Sistemas e Computação Universidade Regional de Blumenau - FURB

Sintaxe Básica do Java. João Paulo Q. dos Santos

ESQUEMA AULA PRÁTICA 1

ESQUEMA AULA PRÁTICA 1

Lição 4 Fundamentos da programação

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Elementos Básicos. C# - Elementos básicos. Primeiro programa Tipos de dados Variáveis Constantes Expressões e operadores Controlo de fluxo Tabelas

Introdução ao Java. Marco A L Barbosa malbarbo.pro.br. Departamento de Informática Universidade Estadual de Maringá

Programação com Acesso a BD. Programação com OO Acesso em Java

Operadores e Expressões: bit-a-bit e especiais

Organização de programas em Java

Programação de Computadores para GI

Tipos Primitivos, estruturas de iteração e decisão.

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

Java 2 Standard Edition Tipos, literais, operadores e controle de fluxo

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira

Conceitos básicos de programação

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

Técnicas de Programação em Engenharia Elétrica I - Engenharia de Sistemas Embarcados - Prof. Alessandro Zimmer Introdução à Linguagem C

Organização de programas em Java

Instituto Federal de Educação, Ciência e Tecnologia do Rio Grande do Norte Lista de Exercícios para a Terceira Unidade

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

Programação Orientada a Objetos

PROGRAMAÇÃO JAVA. Parte 2

EXPRESSÕES BOOLEANAS. Ex: boolean b = false; // declara uma variável do tipo boolean e atribui false

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

JAVA. Professor: Bruno Toledo

Orientação a Objetos e Java

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

Algoritmos e Estruturas de Dados I

Análise de Programação

Linguagem de programação Java

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

Operadores Lógicos e Relacionais Comandos condicionais (if-else) Casting AULA 04

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

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

LÓGICA DE PROGRAMAÇÃO (JAVA) VARIÁVEIS. Professor Carlos Muniz

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

MsC. João Maria MsC. Liviane Melo

ptraux = dynamic_cast <PacoteNoite *> (vetor[i]); if (ptraux) auxiliar += vetor[i]->calculacusto();

1/50. Conceitos Básicos. Programa Básico

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

Algoritmos e Estruturas de Dados I (DCC/003) Estruturas Básicas. Aula Tópico 2

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Organização de programas em Java

Programação de Computadores II TCC Turma A-1

Linguagens de Programação. Marco A L Barbosa

Programação em Sistemas Computacionais

Programação de Computadores I Dados, Operadores e Expressões PROFESSORA CINTIA CAETANO

Algoritmos I Aula 13 Linguagem de Programação Java

Orientação a Objetos e a Linguagem Java

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

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

ALOCAÇÃO DINÂMICA DE MEMÓRIA

PHP: <?php echo("hello World");?> Printa Hello World na página do navegador, mais fácil do que no Java.

Algoritmos II prof. Daniel Oliveira

Representação de Dados

K&R: Capitulo 2 IAED, 2012/2013

Linguagem Java Parte I. Sintaxe. Algumas características

Prof. MsC Vicente Paulo de Camargo PUCGO. Conteúdo baseado no livro Lógica de programação e estrutura de dados - Java - Sandra Puga

Palavras Reservadas da Linguagem Java

Expressões e sentença de atribuição

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans

Expressões e Instruções de Atribuição. George Darmiton da Cunha Cavalcanti

Elementos da Linguagem C. K&R: Capitulo 2

AULA 6 - ARRAYS. Array de 10 elementos

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Linguagens de Programação Classificação

Paradigmas de Linguagens

Disciplina: Introdução à Engenharia da Computação

Tipos de Dados Simples (Continuação)

Aula de hoje. Tipos de Dados e Variáveis. Constantes literais. Dados. Variáveis. Tipagem dinâmica. SCC Introdução à Programação para Engenharias

Módulo 04 Expressões, Estruturas de Seleção e Controle de Fluxo. Última atualização: 09/06/2010

Operadores e Estruturas de Decisão

Linguagem Java. Introdução. Rosemary Silveira Filgueiras Melo

Paradigmas de Linguagens de Programação. Expressões e Instruções de Atribuição

AULA 02 DADOS PRIMITIVOS E EXERCÍCIOS

Aula teórica 4. Tema 3. Linguagem de Programação Java. Manipulação de informação simples (cont.)

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Operadores e Estruturas de Decisão

Programação. MEAer. Expressões e Instruções. Bertinho Andrade da Costa. Instituto Superior Técnico. 2011/2012 1º Semestre

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

Transcrição:

Revisões de PG (POO) Centro de Cálculo Instituto Superior de Engenharia de Lisboa Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Compilar e executar programas em Java Ficheiro fonte (Prog.java) Ficheiro de texto Texto em linguagem java Compilador (javac.exe) Ficheiro executável Transforma (.java.class) Prog.java javac javac.exe Prog.class Ficheiro compilado (Prog.class) Ficheiro binário Instruções para máquina virtual input java java.exe Máquina virtual (java.exe) output Executa as instruções do ficheiro compilado 2

Erros / Bugs Erros de compilação (compile time) Não foi cumprida alguma regra sintática ou semântica O compilador reporta o erro mostrando o que está mal e o que esperaria Erros de execução (runtime) Não foi cumprida uma regra semântica Exemplo: Indexação fora dos limites do array A máquina virtual provoca o término da execução reportando uma exceção Erros lógicos O programa não produz o resultado desejado É necessário fazer testes de execução para detetar estes erros 3

Programa com erros import java.util.*; Erro de compilação? C:\ISEL\POO>javac Average.java Average.java:10: cannot find symbol symbol: method println(string) location: class System Average.java public class Average { static Scanner in; = new Scanner(System.in); public static void main(string[] Args) { int a,b,c; a = in.nextint(); b = in.nextint(); c = in.nextint(); float media = (a+b+c) / 3; 3.0F; System.out.println("Average="+media); System.println("Average="+media); } } Erro de execução? C:\ISEL\POO>java Average Exception java.lang.nullpointerexception at Average.main(Average.java:6) Erro lógico? C:\ISEL\POO>java Average 1 4 0 Average=1.0 4

Identificadores / Nomes Nomes sugestivos que identificam classes, variáveis, métodos Compostos por letras, dígitos e _ sem espaços O primeiro símbolo não pode ser um dígito Distinção entre maiúsculas e minúsculas Não podem ser palavras reservadas (if, class, public, ) Dimensão ilimitada Convenções: Prog Classes: UpperCamelCase Variáveis e métodos: lowercamelcase Constantes: UNDER_SCORE maxvalue counter3 MIN_VALUE O _ não é normalmente usado no início nome Identificador letra O $ também é permitido mas não é normalmente usado letra 0..9 letra Maiúscula, minúscula ou _ a..z A..Z _... 5

Tipos, Variáveis e Valores Tipos primitivos Usados para informação simples que não permite decomposição. Cada variável de tipo primitivo contém diretamente o valor em causa. int, float, char, boolean As operações sobre tipos primitivos estão pré-definidas na linguagem Java. Tipos classe / referência Usados para objetos com vários campos (variáveis) Cada variável de tipo classe contém como valor uma referência para um objeto ou null, caso não refira um objeto String, int[], Scanner Na classe podem ser definidos métodos para manipular os valores dos campos 6

Tipos primitivos Inteiros (com sinal) byte short int long Reais (norma IEEE 754) float double Caracteres (Unicode) char Lógicos boolean Dimensão Mínimo Máximo 1 byte -128 127 2 bytes -32768 32767 4 bytes -2147483648 2147483647 8 bytes -(2 63 ) 2 63-1 4 bytes 8 bytes 2 bytes false true 7

Valores e literais Um literal é um valor (constante) de determinado tipo int: long: double: float: 2.7F char: 27-32 0x2F 037 0b1010 27L -32L 0x2FL 2.7-0.42 6.5e12 2.7F 'A' '\n' -0.42F String: "Olá mundo" "ISEL\n" "ISEL\n" literal ' Constante inteiro real caráter true false ' " caráter " inteiro Valor inteiro - 1..9 0..9 0 0..7 x 0..9 L real - Valor real. 0..9 0..9 F A..F b 0..1 e - 0..9 8

Declaração de variáveis Uma variável associa um nome a um local de memória onde se armazena um valor de determinado tipo. Uma declaração define uma ou mais variáveis do mesmo tipo. Cada variável pode ser iniciada com a avaliação de uma expressão. int x; byte b = 0xFF; float average, sum; long time=100, total=0; java.util.scanner in; declaração tipo Declaração de variáveis, nome = expressão ; tipo Nome de um tipo int char float boolean byte short long double nome.... 9

Expressões Com variáveis, literais e operadores (e outros elementos). Cada expressão tem um valor de determinado tipo. Uma expressão pode ser apenas uma variável ou um literal. expressão Para obter um valor 23 counter counter + 23 : expressão binop? -a * b++ (a+2)*2 prefixop elemento sufixop 10 * in.nextint() + 1 10

Operadores Unários pós-fixos expr++ expr-- Unários prefixos ++expr --expr +expr -expr ~! Multiplicativos * / % Aditivos + - Deslocamentos (shift) << >> >>> Relacionais Teste de igualdade ==!= E (AND) OU exclusivo (XOR) OU (OR) E lógico (AND) {parcial} < > <= >= instanceof & ^ && OU lógico (OR) {parcial} Ternário? : Afetações = += -= *= /= %= &= ^= = <<= >>= >>>= + Prioridade - 11

Conversões A linguagem Java é fortemente tipificada (strongly typed) Não permite afetar uma variável de um tipo com um valor de outro tipo Quando necessário, são realizadas conversões: Implícitas (automáticas) De tipos menos abrangentes para mais abrangentes: byte short int long float double char int int c = 'A'; De qualquer tipo para String (se for objeto, com método tostring()) "x = " + x Explícitas (indicadas no código) São da responsabilidade do programador 2.5 + 1 byte value; value = (byte)34; ((float)(a + b + c)) / 3; 12

Avaliação de expressões As expressões são avaliadas operador a operador. O resultado de uma operação produz o operador para o seguinte Pela ordem definida pelos parêntesis Pela ordem de prioridade dos operadores envolvidos Da esquerda para a direita entre operadores da mesma prioridade (exceto afetações e operadores unários) a-b*(3+c)+2 ((a-(b*(3+c)))+2) As operações binárias exigem que os operandos sejam do mesmo tipo, caso contrário o operando de tipo menos abrangente é convertido para o tipo mais abrangente. 27 + 3.5 ((double)27)+3.5 As operações aritméticas são realizadas no tipo int ou noutro mais abrangente. 'C' - 'A' ((int)'c')-((int)'a') 2 13

Expressões booleanas Os operadores de comparação ( <, >, <=, >=, ==,!= ) e os operadores lógicos (&&,, &,, ^,!) produzem um valor lógico (do tipo boolean) como resultado.! (time > 0 && time < limit time == 3) Os operadores lógicos && e realizam avaliação parcial. Não sendo avaliado o operando direito se o esquerdo é decisivo. false && a false true a true Os operadores &, e ^ realizam dois tipos de operações: bit a bit se os operandos forem inteiros lógicas (AND, OR e XOR) se os operandos forem booleanos, fazendo sempre a avaliação completa 14