Tipos de dados e comandos POO

Documentos relacionados
Tipos, Literais, Operadores

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

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

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

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

PROGRAMADOR JAVA. Aula 0X32 Semanas - 0b Instrutor : Léo Billi

Variáveis primitivas e Controle de fluxo

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

Programação Orientada a Objetos SANTOS, Rafael (PLT)

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

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

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

Algoritmos I Aula 13 Linguagem de Programação Java

Sintaxe Básica de Java Parte 2

MsC. João Maria MsC. Liviane Melo

Estruturas de Controle

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

A Linguagem Java. Alberto Costa Neto DComp - UFS

Simulado de Linguagem de Programação Java

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

Comando Portugol (Visualg) Java

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

Lição 4 Fundamentos da programação

Estruturas de controle Parte 1

Organização de programas em Java

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

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

Aula 4 Estruturas de Controle

Tratamento de Exceções

PROGRAMAÇÃO I A LINGUAGEM DE PROGRAMAÇÃO JAVA I

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Java Variáveis e Controle Fluxo

Programação de Computadores para GI

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Orientação a Objetos e Java

JAVA. Professor: Bruno Toledo

Revisão C++ - Parte 1

Estruturas de Decisão

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

Vetores Unimensionais

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

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

Estruturas de Repetição e String. Vanessa Braganholo

Linguagem C: Introdução

1 Da aula teórica ao Java

Dados armazenados em um objeto podem ser tanto primitivos, tais como inteiros ou caracteres, ou referências para outros objetos.

Tratamento de Exceções. LPG II Java. Tratamento de Exceções. Conceito de Exceções. Exemplo

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

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

Tratamento de Exceção. Tratamento de Exceções. Vantagens de TE. Exemplos de Exceções. Exemplo: Divide1 (sem TE)

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

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

Sintaxe Básica de Java Parte 1

INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS

Introdução à Linguagem C++

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Organização de programas em Java

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

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

Programação Aplicada à Engenharia

Estruturas de Repe,ção e String

Faculdade Anglo-Americano Curso de Ciência da Computação Linguagem de Programação. Lista de Exercícios 1

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

Universidade Federal de Uberlândia Faculdade de Computação. Linguagem C: Operadores relacionais e lógicos estruturas condicionais If...

Material III-Bimestre Introdução e conceitos fundamentais da Linguagem C#

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

4 Conceito de Herança

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Tratamento de Exceções. Profa. Thienne Johnson EACH/USP

BC0501 Linguagens de Programação

Estrutura do programa

Aula 02. Prof. Diemesleno Souza Carvalho

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

Disciplina de Algoritmos e Programação

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

Laboratório de Programação I

Programação: Vetores

Recursividade. Métodos iterativos. Prof. Cesar Augusto Tacla. Métodos iterativos utilizam estruturas de repetição

Arrays e Marizes. João Paulo Q. dos Santos

Introdução a Programação de Jogos

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Prof. Rogério Rocha 1

Aula 3 Conceitos de memória, variáveis e constantes Cleverton Hentz

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Transcrição:

Tipos de dados e comandos POO Prof. Marcio Delamaro 1/46

Objetivo Vamos ver quais são os tipo de dados primitivos da linguagem Vamos ver quais são os principais comandos 2/46

Tipos Tipo Tamanho int 4 bytes long 8 bytes float 4 bytes double 8 bytes char 2 bytes short 2 bytes byte 1 byte boolean 1 bit 3/46

Tipos Tipo Tamanho int 4 bytes long 8 bytes float 4 bytes double 8 bytes char 2 bytes short 2 bytes byte 1 byte boolean 1 bit Na maior parte dos casos não existe muita diferença entre os tipos de dados do C. Para qualquer arquitetura, a JVM é sempre a mesma e os tipos são sempre os mesmos 4/46

Tipos Tipo Tamanho int 4 bytes long 8 bytes float 4 bytes double 8 bytes char 2 bytes short 2 bytes byte 1 byte boolean 1 bit Na maior parte dos casos não existe muita diferença entre os tipos de dados do C. Para qualquer arquitetura, a JVM é sempre a mesma e os tipos são sempre os mesmos Esse é novo! Qualquer resultado de uma operação lógica é do tipo boolean. Dois valores possíveis: true e false. 118 > 33 produz resultado true 88 <= -9 produz resultado false 5/46

Operadores Tipo do operador Lista de operadores Sufixal expr++ expr-- Prefixal ++expr --expr +expr -expr ~! Multiplicativos */% Aditivos +- Shift binário << >> >>> Comparativos < > <= >= instanceof Igualdade ==!= Bit-a-bit E & Bit-a-bit XOU ^ Bit-a-bit OU Lógico E && Lógico OU Ternário?: Atribuição = += -= *= /= %= &= ^= = <<= >>= >>>= 6/46

Operadores Tipo do operador Lista de operadores Sufixal expr++ expr-- x++; 8 + y++; Prefixal ++expr --expr +expr -expr ~! --x; 8 + --y; Multiplicativos */% Aditivos +- Shift binário << >> >>> x = y >> 2; Comparativos < > <= >= instanceof a <= b Igualdade ==!= a == b a!= b Bit-a-bit E & x = y & 0b101 Bit-a-bit XOU ^ Bit-a-bit OU Lógico E && Lógico OU Ternário?: x = a > b? b : b; Atribuição = += -= *= /= %= &= ^= = <<= >>= >>>= X += 10; a > b && b <= c 7/46

Cast de tipos Em C é possível fazer o casting de tipos Em Java, é obrigatório em muitos casos fazer o casting Quando há possibilidade de se perder informação o casting é requerido Compilador vai avisar 8/46

Casting double x,y,z int i, j, k; float p, q, r; i = 10; x = i * i; 9/46

Casting double x,y,z int i, j, k; float p, q, r; i = 10; x = i * i; 10/46

Casting double x,y,z int i, j, k; float p, q, r; i = 10; x = i * i; x = 10; i = x * x; i = x; 11/46

Casting double x,y,z int i, j, k; float p, q, r; i = 10; x = i * i; x = 10; i = x * x; i = x; 12/46

Casting double x,y,z int i, j, k; float p, q, r; p = x; r = x * k; j = i * z; p = q * y; i = 10; x = i * i; x = 10; i = x * x; i = x; x = 10.33; i = x * x; i = x; 13/46

Casting double x,y,z int i, j, k; float p, q, r; p = x; r = x * k; j = i * z; p = q * y; i = 10; x = i * i; x = 10; i = x * x; i = x; x = 10.33; i = x * x; i = x; 14/46

Casting double x,y,z int i, j, k; float p, q, r; i = 10; x = i * i; p = x; r = x * k; j = i * z; p = q * y; p = (float) x; r = (float) x * k; j = i * (int) z; p = q * (float) y; x = 10; i = x * x; i = x; x = 10.33; i = x * x; i = x; 15/46

Casting double x,y,z int i, j, k; float p, q, r; i = 10; x = i * i; p = x; r = x * k; j = i * z; p = q * y; p = (float) x; r = (float) x * k; j = i * (int) z; p = q * (float) y; x = 10; i = x * x; i = x; x = 10.33; i = x * x; i = x; p = q * 2.0; 16/46

Casting double x,y,z int i, j, k; float p, q, r; i = 10; x = i * i; p = x; r = x * k; j = i * z; p = q * y; p = (float) x; r = (float) x * k; j = i * (int) z; p = q * (float) y; x = 10; i = x * x; i = x; x = 10.33; i = x * x; i = x; p = q * 2.0; p = q * 2.0f; 17/46

Erro de conversão de tipo 18/46

Tabela de conversões 19/46

Declaração de variáveis Variáveis podem ser declaradas na hora que forem usadas Vale a mesma regra de escopo por exemplo uma variável declarada dentro de um if vale apenas naquele escopo 20/46

Exercício Implemente a solução de uma equação de segundo grau. Os coefecientes devem ser lidos pelo teclado. Para calcular a raiz quadrada de um double x use y = Math.sqrt(x) 21/46

Comando de seleção Comando if: if (expressão booleana) comando 1; else comando 2; Uso de chaves para agrupar comandos if (expressão booleana){ comando 1; comando 2; } else { comando 3; comando 4; } 22/46

Comando if int idade = 15; boolean amigododono = true; if (idade < 18 &&!amigododono) { System.out.println("Não pode entrar"); } else { System.out.println("Pode entrar"); } 23/46

Convenção de nomes Classes: Usar todas as palavras iniciando com maiúsculas EntradaTeclado, Pessoa, PrimeiroPrograma Variáveis: primeira palavra iniciando em minúsculas, demais iniciando em maiúsculas idade, amigododono, raizdelta 24/46

Exercício Use o comando if para: verificar se a equação é ou não do segundo grau verificar se a equação tem raízes reais ou não O comando return pode ser usado para terminar a execução do seu método main. 25/46

Repetição while não muda em relação ao C for não muda, mas podemos declarar a variável que será usada como controle for (int i = 0; i < 10; i++) { int i; for (i = 0; i < 10; i++) { No 1o. caso, a variável i só pode ser usada dentro do for Depois do for ela não existe mais 26/46

Exercício Implemente um programa que leia um número inteiro, compute e mostre o seu fatorial usando o comando while usando o comando for 27/46

Exceções Linguagens modernas possuem um mecanismo sinalização de erro, chamado exceção Quando alguma coisa dá errado, um método pode lançar uma exceção Isso sinaliza para o código que está usando aquele método que algo deu errado Cabe a ele tratar esse erro ou ignorar, ou seja, jogar para cima o problema 28/46

Tratamento de exceções main f g h k 29/46

Tratamento de exceções main Ao ocorrer um erro, o método k sinaliza a situação com uma exceção. Isso termina a execução de k. A execução volta para h, que não faz nada. Ou seja, não existe em h nenhum mecanismo para tratar a exeção. f g h k ERRO! 30/46

Tratamento de exceções main Se h não trata a exeção, é como se ele a estivesse lançando também. Ou seja, a sua execução termina, e a exeção é de novo jogada para cima. f g h k ERRO! 31/46

Tratamento de exceções main Se ninguem tratar a execeção, ela chega na JVM, que termina a execução do programa, mostrando que um erro ocorreu. f g h k ERRO! 32/46

Tratamento de exceções main Se ninguem tratar a execeção, ela chega na JVM, que termina a execução do programa, mostrando que um erro ocorreu. f g Vamos executar nossos programas!!! h k ERRO! 33/46

Executando SegundoPrograma Digite um inteiro: abc Exception in thread "main" java.lang.numberformatexception: For input string: "abc" at java.lang.numberformatexception.forinputstring(numberform atexception.java:65) at java.lang.integer.parseint(integer.java:580) at java.lang.integer.parseint(integer.java:615) at EntradaTeclado.leInt(EntradaTeclado.java:19) at SegundoPrograma.main(SegundoPrograma.java:9) 34/46

SegundoPrograma public static void main(string[] args) throws Exception { int k; System.out.printf("Digite um inteiro: "); k = EntradaTeclado.leInt(); System.out.printf("Numero lido: %d\n", k); } 35/46

Tratamento de exceções main main f f Erro é tratado g h k g h ERRO! k ERRO! 36/46

Tratamento de exceções main main Nesse caso, o método g está preparado para o caso de h lançar uma exceção. f f Erro é tratado g h k g h ERRO! k ERRO! 37/46

Tratamento de exceções main main Nesse caso, o método g está preparado para o caso de h lançar uma exceção. f Existe um pedaço de código que diz o que deve ser feito nesse caso. E a execução de g continua normalmente. g f Erro é tratado h k g h ERRO! k ERRO! 38/46

Tratamento de exceções main main Nesse caso, o método g está preparado para o caso de h lançar uma exceção. f Existe um pedaço de código que diz o que deve ser feito nesse caso. E a execução de g continua normalmente. g f Erro é tratado h g h Vamos tratar uma exceção! k ERRO! k ERRO! 39/46

TrataExcecao.java public class TrataExcecao { Tirar o comando throws que tinha aqui public static void main(string[] args) { int k; System.out.printf("Digite um inteiro: "); k = EntradaTeclado.leInt(); System.out.printf("Numero lido: %d\n", k); } } 40/46

TrataExcecao.java public class TrataExcecao { Tirar o comando throws que tinha aqui public static void main(string[] args) { int k; System.out.printf("Digite um inteiro: "); k = EntradaTeclado.leInt(); System.out.printf("Numero lido: %d\n", k); } O compilador vai avisar que tem uma exeção não tratada nesse ponto. } 41/46

try-catch System.out.printf("Digite um inteiro: "); try { k = EntradaTeclado.leInt(); } catch (Exception e) { System.out.println("O valor que vc digitou não é um número inteiro"); return; } System.out.printf("Numero lido: %d\n", k); 42/46

try-catch System.out.printf("Digite um inteiro: "); try { Dentro do try vão os comandos que podem gerar exceção k = EntradaTeclado.leInt(); } catch (Exception e) { System.out.println("O valor que vc digitou não é um número inteiro"); return; } System.out.printf("Numero lido: %d\n", k); 43/46

try-catch System.out.printf("Digite um inteiro: "); try { Dentro do try vão os comandos que podem gerar exceção k = EntradaTeclado.leInt(); } catch (Exception e) { Dentro do catch vai o tratamento da exceção System.out.println("O valor que vc digitou não é um número inteiro"); return; } System.out.printf("Numero lido: %d\n", k); 44/46

Exercício Vamos fazer o tratamento de erro para o programa da equação de segundo grau. Queremos tratar o caso em que o usuário digita alguma coisa que não seja um número. Modifique o programa do fatorial. Faça com que o programa verifique se o número digitado é legal, ou seja, se é um número e se é positivo. Se o número não for legal, faça com que o programa repita a entrada até que um número legal seja digitado. 45/46

Exercício Modifique o programa da equação de segundo grau para que ele leia os coeficientes, até que eles sejam digitados de maneira correta. Mas atenção: o seu programa deve solicitar que seja digitado novamente somente aquele coeficiente para o qual ocorreu um erro. 46/46