Java 2 tipos, operadores, String. Vitor Vaz da Silva



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

Java 1 visão geral. Vitor Vaz da Silva

Linguagem de Programação JAVA. Técnico em Informática Professora Michelle Nery

A Linguagem Java. Alberto Costa Neto DComp - UFS

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

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

Algoritmos e Programação

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

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

CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO CARACTERÍSTICAS. João Gabriel Ganem Barbosa

Tipos, Literais, Operadores

Tipos, Literais, Operadores

Programação Engenharia Informática (11543) 1º ano, 1º semestre Tecnologias e Sistemas de Informação (6619) 1º ano, 1º semestre

ÇÃO COM OBJECTOS PROGRAMAÇÃ. Programação com Objectos. Programação com Objectos TUDO É UM OBJECTO TUDO É UM OBJECTO ÍNDICE.

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

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

MsC. João Maria MsC. Liviane Melo

Linguagem Java - Introdução

Programação Orientada a Objetos! Java - Fundamentos. Prof. Sérgio Almagro! sergio.ricardo.almagro@gmail.com

ITENS FUNDAMENTAIS. Profª Angélica da Silva Nunes

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

Módulo 06 Desenho de Classes

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

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

Java Como Programar, 8/E

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

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

INTRODUÇÃO À LINGUAGEM C++

Linguagem C Tipos de Dados. void; escalares; sizeof Vectores; strings em C Estruturas Introdução ao pré-processador

Como o FIT funciona. FIT: Framework for Integrated Tests FIT. Dados de testes. Programa. Fixtures. classes. Resultados de testes

Programação por Objectos. Java

Curso Java Starter. 1

Programação por Objectos. Java

JavaScript 2.0X X

JAVA. Fabrício de Sousa

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

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

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

LINGUAGEM C. Estrutura básica de um programa

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

PROF. DANIELA PIRES. Aplicações para Web. Aplicações para Web - FMU Prof. Daniela Pires

Estrutura Condicional em Java

Noções sobre Objetos e Classes

Programação Estruturada e Orientada a Objetos

Módulo 03. Identificadores, Palavras Reservadas, e Tipos

2 Orientação a objetos na prática

Programando em C++ Histórico da Linguagem C

Sintaxe Básica de Java Parte 1

JAVA. Introdução. Marcio de Carvalho Victorino. Page 1 1/40 2/40

Guia de Consulta Rápida. Java 6. Peter Jandl Jr. Novatec Editora

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

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Cartão de fidelização de clientes das distribuidoras de combustível.

Computação II Orientação a Objetos

Programação: Estruturas de seleção

Programação: Tipos, Variáveis e Expressões

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

Curso Adonai QUESTÕES Disciplina Linguagem JAVA

Capítulo 2. Fundamentos de Java

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

Conversão de Tipos e Arrays

Variáveis e Comandos de Atribuição

Linguagem de Programação I

Paradigmas da Programação APROG. Classes JAVA. Nelson Freire (ISEP DEI-APROG 2013/14) 1/43

PROCEDURES E FUNÇÕES PRÉ DEFINIDAS Linguagem de programação PASCAL prof. Vera Alves FUNÇÕES ARITMÉTICAS

Relevância e Motivação. Programação Orientada a Objetos Utilizando Java. Qualidade do Software. Objetivos. Cancelamentos.

JSP - ORIENTADO A OBJETOS

Tipo de Dados em Linguagem C

Estrutura de Dados Básica

Capítulo 6. Java IO - Ficheiros

VIII. VARIÁVEIS. Tabela I ARQUITETURA DA MEMÓRIA. 0x0000 0x34 0x0001 0xB0 0x0002 0x23. 0xFFFF 0x00

Linguagem de Programação II Implementação

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

Capítulo 8. Introdução UML

Linguagem C. TGSI Lógica de Programação / Linguagem C Prof. Marcos Roberto

Palavras Reservadas da Linguagem Java

Programação Java. com Ênfase em Orientação a Objetos. Douglas Rocha Mendes. Novatec

Algoritmos e Programação 2. Introdução à Programação Orientada a Objetos. Orientação a Objetos. O que é um paradigma de programação?

O comando switch. c Professores de ALPRO I 04/2012. Faculdade de Informática PUCRS. ALPRO I (FACIN) O comando switch 04/ / 31

Pilhas. Fabrício J. Barth. BandTec - Faculdade de Tecnologia Bandeirantes

Desenvolvimento OO com Java Orientação a objetos básica

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Programação Básica em Arduino Aula 2

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

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

Java. Marcio de Carvalho Victorino

5 Caso de estudo O cartão fidelidade

Como construir um compilador utilizando ferramentas Java

Encapsulamento de Dados

Transcrição:

Java 2 tipos, operadores, String Vitor Vaz da Silva

Tipos de Dados Primitivos Inteiro byte short int long Vírgula flutuante float double Caractere char Lógico boolean Vitor Vaz da Silva 2

Inteiros Tipo Bits Mínimo Máximo byte 8-128 +127 short 16-32 768 +32 767 int 32-2 147 483 648 +2 147 483 647 long 64-9 223 372 036 854 775 808 +9 223 372 036 854 775 807 Vitor Vaz da Silva 3

Vírgula Flutuante Tipo Bits Mínimo Máximo float 32 1.4 x 10-45 3.4028235 x 10 +38 double 64 4.9 x 10-324 1.7976931348623157 x 10 +308 A mesma gama de valores para os números negativos Vitor Vaz da Silva 4

Caractere Tipo Bits Mínimo Máximo char 16 0 65 535 A \x41 \0101 \u0041 65 em decimal \n Mudança de Linha \r Voltar ao início da linha \b Ir uma posição para a esquerda \t Um tab \f Mudança de página \ Um apóstrofo \ Uma aspa \\ A própria barra invertida \uhhhh Caractere unicode (0-9, A-F) \0ooo Caractere octal (0-7) \xhh Caractere hexadecimal (0-9, A-F) Vitor Vaz da Silva 5

Lógico Tipo Bits Mínimo Máximo boolean 8 false true Vitor Vaz da Silva 6

Variáveis Podem começar com _ ou $ Não podem ser palavras reservadas abstract assert boolean break byte case catch char class const continue default do double else enum extends false final finally float for goto if implements import instanceof int interface long native new null package private protected public return short static strictfp super switch synchronized this throw throws transient true try void volatile while Vitor Vaz da Silva 7

Atribuição Atribuir valores às variáveis double precobatatas=1.99; boolean portaaberta=true; int quantidade=4, idade=20; int cadeiras=quantidade; float valorreal=12.234f; long inteiro=123l; Vitor Vaz da Silva 8

Casting Permite converter um tipo noutro sem alterar o seu valor binário. Pode gerar erros Pode ser necessário: Acrescentar bits Remover bits Vitor Vaz da Silva 9

Diferenças null 0 int i; Integer j; int i=null; Integer j=null; int i=(integer) null; Integer j=(integer) null; int i=87; Integer j=87; int i=j; Integer j= new Integer(87); System.out.println( i + i + j + j); Vitor Vaz da Silva 10

Operadores Matemáticos Incremento e Decremento Relacionais Lógicos Vitor Vaz da Silva 11

Operadores Matemáticos + adição - subtracção * multiplicação / divisão % resto da divisão inteira 7 % 3 tem como resultado 1 Vitor Vaz da Silva 12

Operadores Incremento e Decremento ++ -- += -= *= /= %= ++a; // a=a+1; a++; // a=a+1 Operação e Atribuição b=++a; //a=a+1; b=a; b=a++; //b=a; a=a+1; a/=3; // a=a/3; a%=5; //a=a%5; Vitor Vaz da Silva 13

Operadores Relacionais ==!= > < >= <= Vitor Vaz da Silva 14

Operadores Lógicos true false &&! ^ & Vitor Vaz da Silva 15

Operadores Operadores array index, method call, member access [] (). postfix expr++ expr-- Precedência unary ++expr --expr +expr -expr ~! multiplicative * / % additive + - shift << >> >>> relational equality ==!= bitwise AND bitwise exclusive OR bitwise inclusive OR logical AND logical OR ternary? : < > <= >= instanceof & ^ && assignment = += -= *= /= %= &= ^= = <<= >>= >>>= Vitor Vaz da Silva 16

Pacotes Classes - Métodos java lang Math sqrt() random() awt Graphics drawrect() setcolor() util String Color Integer Font Vitor Vaz da Silva 17

Pacotes - Classes - Objectos - Métodos Convenção pacote.classe.objecto.metodo(); java.lang.system.out.println() java.awt.rectangle Vitor Vaz da Silva 18

String Classe Manipula caracteres que não se pretende serem alterados String s = Olá ; // String s = new String( Olá ); s = s + Bom + Dia ; // s = new String (s + new String( Bom ) + new String( Dia )); Vitor Vaz da Silva 19

String Concatenção O operador + concatena duas strings numa. Se apenas um dos operandos for uma String, o outro é convertido em string (útil para escrever números) Se um objecto (não String) for concatenado com uma String, o método tostring() desse objecto é evocado(); Vitor Vaz da Silva 20

String Métodos Assumir nestes exemplos: int i,j; //índices dentro da string String s,t; Char c; CharacterSequence cs; // String ou StringBuilder Boolean b; x qualquer tipo ou valor (primitivo ou object). Dimensão i = s.length(); //número de caracteres na string Vitor Vaz da Silva 21

String Comparar (usar em vez de == ou!= ) i = s.compareto(t); // <0 (s<t) - 0 (s==t) - >0 (s>t) i = s.comparetoignorecase(t); b = s.equals(t); // true (s==t) b = s.equalsignorecase(t) b = s.startswith(t); // true s = t + qualquercoisa; b = s.startswith(t, i); // true s = inicio + t(i) + fim; b = s.endswith(t); true s = qulquercoisa + t; Vitor Vaz da Silva 22

String Pesquisa (devolve -1 se não encontrar) i = s.contains(cs); // true cs está contido em s i = s.indexof(t); // índice da primeira ocorrência de t em s i = s.indexof(t, i); // encontrar t a partir do índice i (incluído) i = s.indexof(c); i = s.indexof(c, i); i = s.lastindexof(c); // índice da última ocurrência de c em s i = s.lastindexof(c, i); // encontrar c antes do índice i (inc.) i = s.lastindexof(t); i = s.lastindexof(t, i); Vitor Vaz da Silva 23

String Saber o Conteúdo c = s.charat(i); // caracter na posição i t = s.substring(i); // substring desde i (inc) até ao fim t = s.substring(i, j); // substring entre i (inc) e j (exc) Vitor Vaz da Silva 24

String Criar uma string a partir de outra t = s.tolowercase(); // converter tudo para minúsculas t = s.touppercase() ; // converter tudo para maiúsculas t = s.trim(); // retira espaços do início e do fim t = s.replace(c1, c2); //substituir todos caracteres c1 por c2; t = s.replace(cs2, cs3); // idem para substrings Vitor Vaz da Silva 25

String Expressões Regulares (ver java.util.regex.pattern) b = s.matches(expreg); // true se expreg valida toda a string //(idêntico a Pattern.matches(regexStr, s) ) s1 = s.replaceall(expreg, t); // substitui toda a substring validada por expreg pela String t s1 = s.replacefirst(expreg, t); sa = s.split(expreg); // array de todas substrings terminadas por expreg sa = s.split(expreg, num); // idem apenas num vezes Vitor Vaz da Silva 26

String Métodos Estáticos para converter para Strings s = String.valueOf(x); // Converte x para String s = String.format(f, x...); // utiliza um formato f para converter um numero variável de parâmetros x, (como o caso do fprintf) Vitor Vaz da Silva 27

Caractere Tipo Bits Mínimo Máximo char 16 0 65 535 A \x41 \0101 \u0041 65 em decimal \n Mudança de Linha \r Voltar ao início da linha \b Ir uma posição para a esquerda \t Um tab \f Mudança de página \ Um apóstrofo \ Uma aspa \\ A própria barra invertida \uhhhh Caractere unicode (0-9, A-F) \0ooo Caractere octal (0-7) \xhh Caractere hexadecimal (0-9, A-F) Vitor Vaz da Silva 28

Character Métodos b = Character.isDigit(c); b = Character.isLetter(c); b = Character.isLetterOrDigit(c); b = Character.isLowerCase(c); b = Character.isUpperCase(c); b = Character.isWhitespace(c); c = Character.toLowerCase(c); c = Character.toUpperCase(c); Vitor Vaz da Silva 29

StringBuffer Manipula caracteres que serão alterados durante a execução do programa. StringBuffer b = new StringBuffer(); b.append( Olá ); b.append( Bom ); b.append( Dia. ); String s = b.tostring(); Vitor Vaz da Silva 30

StringBuilder - StringBuffer StringBuilder = StringBuffer (sincronizado) Construtores sb = new StringBuilder() ; //vazio sb = new StringBuilder(n); //capacidade inicial de n sb = new StringBuilder(s) ; //iniciado com s Dimensão i = sb.length(); // dimensão do conteúdo de sb Vitor Vaz da Silva 31

StringBuilder Alteração de conteúdo (devolvem o original; o mesmo objecto alterado) sb =sb.append(x); // acrescenta x no fim de sb sb =sb.insert(i, x); // insere x na posição i sb =sb.setcharat(i, c); //Substitui o caracter em i por c sb =sb.deletecharat(i); sb =sb.delete(i, j); //Apaga a gama entre i e j sb =sb.reverse(); // odúetnoc o etrevni sb =sb.replace(i, j, s); // substitui cracteres de i a j por s Vitor Vaz da Silva 32

StringBuilder Saber o conteúdo c = sb.charat(i); s = sb.substring(i); // substring do índice i até ao fim s = sb.substring(i, j); s = sb.tostring(); //nova String com o conteúdo Vitor Vaz da Silva 33

StringBuilder Pesquisa (devolvem -1 caso não seja encontrado) i = sb.indexof(t); // índice da primeira ocorrência de t em sb i = sb.indexof(t, i); // encontrar t a partir do índice i (incluído) i = sb.lastindexof(t); // índice da última ocurrência de t em sb i = sb.lastindexof(t, i); // encontrar t antes do índice i (inc.) Comparação b = sb.equals(sb2); // true (sb==sb2) Vitor Vaz da Silva 34

Unicode Quantos caracteres diferentes existem no mundo e que possam ser representados num computador? Até ver mais de 107 mil => 17 bits ASCII 8 bits => 128 padrões fixos + 128 UTF-16 16 bits => 65536 UTF-8 UTF-32 Vitor Vaz da Silva 35

Unicode 0000 UTF-16 0000 007F ASCII 7 bits D800 DC00 VAZIO FFFE FFFF Vitor Vaz da Silva 36

Unicode UTF-16 Valores maiores do que FFFF (16 bits) Ex: 10 FFFD (21 bits) - retira-se 10 0000 u = 0 FFFD (20 bits) 0000 1111 1111 1111 1101 uh = 0000 1111 11 (10 bits) 0000 0000 0011 1111 (16 bits) ul = 11 1111 1101 (10 bits) 0000 0011 1111 1101 (16 bits) Utf-16 = 0xD800 uh, 0xDC00 ul D800 DC00 VAZIO Vitor Vaz da Silva 37

Big Endian - Little Endian 0x12345678 12 34 56 78 HH HL LH LL HH 12 LL 78 HL 34 LH 56 LH 56 HL 34 LL 78 HH 12 Vitor Vaz da Silva 38

Unicode Utf-16 = 0xD83F, 0xDFFD D83F DFFD H L FEFF D83F DFFD BOM Byte Order Mask FFFE DFFD D83F Mensagem Vitor Vaz da Silva BOM 39

Iterator Lista (simples) de elementos ligados; um sentido Disponibilidade de valores b=it.hasnext(); // true se existe um elemento seguinte x=it.next(); // o próximo elemento it.remove(); // remove o elemento devolvido por it.next(); Vitor Vaz da Silva 40

ListIterator Lista de elementos duplamente ligados Disponibilidade de valores b=lit.hasnext(); // true se existe um elemento seguinte x=lit.next(); // o próximo elemento i=lit.nextindex(); // Índice do elemento a devolver por next(); b=lit.hasprevious(); // true se existe elemento anterior x=lit.previous(); // o elemento anterior x=lit.previousindex(); // Índice do elemento a devolver por previous(); Vitor Vaz da Silva 41

ListIterator Alteração de valores lit.add(x); // insere x antes do elemento a ser devolvido por lit.next(); lit.set(x); // substitui o elemento devolvido por lit.next(); por x lit.remove(); // remove o elemento devolvido por lit.next(); Vitor Vaz da Silva 42

Scanner Lê valores de uma String, File ou InputStream Constructores sc = new Scanner(System.in); sc = new Scanner(s); sc = new Scanner(f); Vitor Vaz da Silva 43

Scanner Disponibilidade de dados b = sc.hasnext(); // true se há um token (palavra) b = sc.hasnextline(); // true se há mais uma linha b = sc.hasnextint(); // true se houver um inteiro b = sc.hasnextdouble(); b = sc.hasnextxyz(); // true se houver BigDecimal, BigInteger, Boolean, Byte, Float, Short, ou tipo primitivo. Vitor Vaz da Silva 44

Scanner Entrada s = sc.next(); // devolve o token (palavra) seguinte s = sc.nextline(); // devolve a linha seguinte i = sc.nextint(); // devolve o inteiro seguinte d = sc.nextdouble(); // devolve o double seguinte x = sc.nextxyz(); // devolve um valor do tipo primitivo se possível, ou BigDecimal, BigInteger, Boolean, Byte, Float, Short. x = sc.nextxyz(radix); // idem Int, Long, Short, Byte, ou BigInteger convertido para a base radix Vitor Vaz da Silva 45

Scanner Fechar sc.close(); //fecha o canal de leitura, liberta o recurso para ser usado por outros threads Vitor Vaz da Silva 46

Referências http://www.leepoint.net/notes-java/index.html http://www.exampledepot.com/ http://tektonia.com Vitor Vaz da Silva 47