Академический Документы
Профессиональный Документы
Культура Документы
Caractersticas dos tipos Um tipo de dados identifica um conjunto de valores (o conjunto suporte do tipo) e um conjunto de operaes que esto disponveis sobre esses valores. Estes valores podem ser assumidos por uma varivel ou expresso ou, ainda, gerados por uma funo O tipo do valor representado por uma constante, varivel ou expresso determinado pela sua forma ou declarao, no sendo necessrio calcular o valor para determinar o seu tipo Cada operador ou funo tem argumentos de um dado tipo e produz resultados de um determinado tipo
Tipos de Dados Primitivos e Strings 1 Tipos de Dados Primitivos e Strings 2
Tipos
Utilizao dos tipos o programador utiliza a informao dos tipos para determinar quais as operaes que pode efectuar com o tipo a mquina utiliza a informao dos tipos em duas fases distintas h durante a traduo para a linguagem mquina verifica a legalidade e a compatibilidade das instrues do programa h durante a execuo do programa utiliza a informao referente ao tipo para interpretar as suas representaes internas
Tipos
Ao caracterizarmos um tipo de informao iremos especificar: a gama de valores as operaes que tm como argumentos elementos do tipo e que produzem resultados deste tipo as operaes que relacionam os elementos desse tipo com os elementos de outros tipos O modo de tipificar a informao e os diferentes tipos de informao permitidos variam de linguagem para linguagem As linguagens de programao fornecem certos tipos bsicos e a capacidade de definir certos tipos estruturados. O Java possui 8 tipos bsicos (primitivos ou pr-definidos).
Variveis
O nome de uma localizao para armazenar dados um contentor (uma caixa) que guarda um valor, valor esse que pode ser lido e alterado Cada varivel tem um tipo associado por exemplo pode guardar apenas inteiros, apenas reais ou apenas caracteres
Associa um nome a um espao de memria, especifica o tipo de dados que ele ir conter e o mbito da varivel Todas as variveis num programa tm de ser declaradas antes de serem usadas O nome das variveis obedece s regras dos identificadores
Variveis
A declarao (acesso, tipo, etc) de uma varivel dividida em trs partes:
Variveis
A atribuio de valores s variveis nome_de_variavel=expresso; No tem o mesmo significado que em lgebra Significa calcular o valor da expresso do lado direito e atribui-lo varivel do lado esquerdo. O operador l-se toma o valor de Pode haver variveis em ambos os lados do sinal de igual: conta = 10;//atribui a conta o valor 10 conta = conta - 1;// decrementa conta
tipo: define o tipo do(s) identificador(es) lista de identificadores: sequncia de identificadores separados por vrgulas Por exemplo, para criar trs variveis do tipo inteiro para armazenar o nmero de caixas, nmero de unidades por caixa e o total de unidades:
Variveis
Atribuio de valores iniciais s variveis (inicializao)
Variveis
Alterao do valor de uma varivel
Podemos atribuir valores iniciais quando as variveis so declaradas: //estas variveis no so inicializadas //e tm valores desconhecidos int numeroCaixas, unidadesCaixa, totalUnidades; //estas so inicializadas a 0 quando declaradas int numeroCaixas = 0; int unidadesCaixa = 0; int totalUnidades = 0; int conta = 10;//cria e inicializa conta a 10 A utilizao de uma varivel no inicializada d um erro de compilao. boa prtica inicializar sempre as variveis no momento da sua declarao.
Tipos de Dados Primitivos e Strings 9
O valor alterado atribuindo-se um valor diferente em alguma parte do programa Pode ser calculado custa de outros valores: totalUnidades = numeroCaixas * unidadesCaixa; ou lido do teclado: totalUnidades = SavitchIn.readLineInt();
10
Expresses
Expresses
Exemplo Supondo que, inicialmente, x tem o valor 9,5, n o valor 10, p verdadeiro e q falso, tem-se
Formula 3x Expresso em Java 3*x n/2 Valor 28,5 5
Uma expresso uma formula ou regra de computao que produz um valor ou resultado Cada expresso de um determinado tipo O modo de escrever frmulas nas linguagens de programao ligeiramente diferente daquele utilizado em matemtica
n 2 100 n 80,5 + x pq
(x5)
11
12
Tipos em Java
Tipos Classes mais complexos compostos de outros tipos (primitivos ou classes) dados e mtodos Exemplos: SavitchIn String Boolean, Character, Byte, Short, Integer, Long, Float, Double
Tipos de dados primitivos os tipos mais simples no podem ser decompostos em outros tipos somente valores Exemplos: int - inteiro double - reais char - caracteres
Limite de Valores -128 a 127 -32768 a 32767 -2,147,483,648 a 2,147,483,647 -9,223,372,036,854,775,808 a 9,223,374,036,854,775,808 +/- 3.4028 x 10+38 a +/- 1.4023 x 0-45 +/- 1.767 x 10+308 a +/- 4.940 x 0-324
float
4 bytes
double
8 bytes
char boolean
2 bytes 1 bit
13
14
15
16
&& (e)
Valor de A true true false false Valor de B true false true false A && B true false false false Valor de A true true false false Valor de A !A false true
|| (ou)
Valor de B true false true false A || B true true true false
Para os operadores && e || a avaliao pra sempre que o valor verdade da expresso pode ser estabelecido (short-circuit evaluation) Usa-se os operadores & e | para forar a avaliao completa da expresso booleana
! (no)
Tipos de Dados Primitivos e Strings
true false
17
18
Exemplos
Exemplo 1:
int idade=18; int idade=70 ; idade=14; boolean Menor=idade<18; boolean Reformado=idade>=65; boolean Inactivo=Menor || Reformado; boolean Activo=! Menor && ! Reformado;
literais: [+|-] {dgitos decimais} para a representao decimal (base 10) L(ou l) o sufixo para a representao long 0 o prefixo para a representao octal (base 8) 0x (ou 0X) o prefixo para a representao hexadecimal (base 16) Todos os seguintes nmeros tm o mesmo valor: 29 035 0x1D 29L
A expresso Reformado na penltima linha avaliada? e a expresso Reformado na ltima linha? Exemplo 2:
if ((total > 0) && ((notaFicha / total * 100) > 60)) System.out.println(Bom trabalho); else System.out.println(Trabalhe mais.);
se total > 0 falso, ento a expresso completa no pode ser verdade porque a conjuno s verdade quando ambos os operandos o forem. Assim no ser avaliada a segunda parte da expresso.
Tipos de Dados Primitivos e Strings 19 Tipos de Dados Primitivos e Strings 20
Reais:
1.8e1
.18E2
representao do zero:
Se algum dos operadores real a diviso ( / ) real, se forem ambos inteiros a diviso inteira. O operador % tambm pode ser utilizado entre reais. Exemplos resto1 = 15%7; // tem como resultado 1 resto2 = 16.2%4.0; // tem como resultado 0.2 quociente1=15/2; // tem como resultado 7 quociente2=15.0/2.0; // tem como resultado 7.5
Tipos de Dados Primitivos e Strings 22
//quantidade = quantidade + 5;
<op> ++ ou -var o nome da varivel incrementa o valor conta= conta + incrementa o valor conta= conta + decrementa o valor conta= conta decrementa o valor conta= conta 1 1 1 1 antes de o usar depois de o usar antes de o usar depois de o usar
24
++conta conta++ --conta conta-Tipos de Dados Primitivos e Strings 23 Tipos de Dados Primitivos e Strings
25
26
double x; int n = 5; x = n;
o valor retornado por n convertido a um double, e ento atribudo a x x contm 5.000 (de acordo com a preciso possvel dos nmeros em vrgula flutuante) Chama-se converso implcita (implicit casting) porque feita automaticamente No h alterao do tipo da varivel n
o valor n e x so automaticamente convertidos para o tipo double antes de serem efectuadas a multiplicao e a diviso - converso implcita
27
28
Converso de tipos numricos - Converso explcita (explicit casting) A converso explcita altera o tipo de dados da varivel para um nico uso precede-se o nome da varivel com o novo tipo de dados entre parnteses: (tipo_de_dados) nomeVariavel o tipo alterado para tipo_de_dados durante a converso, no se alterando o tipo original da varivel Exemplo: int n; double x = 2.0; n = (int)x; o valor de x convertido de double para int antes da atribuio do valor a n
Tipos de Dados Primitivos e Strings 29
Converter um valor do tipo char para int produz o valor ASCII/Unicode correspondente Por exemplo, qual ser o resultado?
Lista de caracteres especiais: \" aspa \' plica \\ barra (backslash) \b recua um espao (backspace) \n muda de linha (new line) \r recua para o incio da linha corrente (carriage return) \t avana para a prxima posio tabuladora (tab) Para escrever a frase: A vida "bela". fazemos: System.out.println("A vida \"bela\".");
Tipos de Dados Primitivos e Strings 32
Operador
++ -- + - ! (tipo) * / % + < <= > >= == != & ^ | && || ?: = += -= /= %=
Tipo
(unrios) converso aritmticos aritmticos relacionais relacionais lgico lgico lgico lgico lgico condicional atribuio
34
Definio de Constantes
Em programao, designa-se por constante toda a grandeza que no varia durante a execuo de um programa. As linguagens de programao permitem dar s constantes nomes simblicos (os quais correspondem a identificadores), e utilizar esses nomes simblicos, em vez das prprias constantes, sempre que seja necessrio utilizar o valor de cada uma delas, ou seja, permitem a criao de uma designao para o valor das constantes. Vantagens em relao referncia directa ao seu valor: O valor de uma constante geralmente no fornece qualquer sugesto sobre o significado ou finalidade da constante. A utilizao de nomes simblicos para designar constantes permite atribuir nomes significativos a constantes, portanto aumentar a facilidade de leitura e compreenso do programa. Evitam-se alteraes acidentais. Caso no sejam utilizados nomes simblicos para constantes, a alterao do valor de uma constante, num programa, pode ser bastante difcil.
Tipos de Dados Primitivos e Strings 35
Definio de Constantes
Declarao de constantes: public static final tipo nome=valor;
public opcional e significa que no h qualquer restrio quanto a onde a constante pode ser usada static o seu uso ser explicado mais tarde final no permite que o programa altere o valor Exemplo: static final double PI= 3.14159;
36
A classe String
ndice dos caracteres numa string
O ndice de um caracter numa string um inteiro que indica a posio do caracter e comea em 0 para o primeiro caracter Alguns mtodos da classe String: chartAt(posio) - retorna o caracter que se encontra no ndice posio substring(inicio, fim) - retorna o substring compreendido entre a posio inicio e fim substring(inicio) - retorna o substring desde a posio inicio at posio final da string lenght() - retorna o comprimento do string indexOf(A_String)- retorna a posio da primeira ocorrncia do string A_String no objecto String. Retorna -1 se A_string no for encontrado ...
char charVariavel= `a`;//declarao de caracteres(plica) String stringVariavel= "a";//declarao de strings(aspas) String frase = "Ol, Mundo"; Quando efectuamos a declarao: String frase; estamos a declarar o nome de um objecto da classe String, e sendo um objecto possui mtodos
37
38
A classe String
Por exemplo:
A concatenao de Strings
O operador + para Strings: String nome = "Antnio"; String cumprimento = "Ol,"; System.out.println(cumprimento + nome + "." + "Bem vindo"); imprime no cran : >Ol,Antnio.Bem vindo > necessrio colocar espaos para que aparea correcto:
System.out.println(cumprimento+ " " + nome + "." + Bem vindo");
String cumprimento = "Bom dia a todos"; cumprimento.charAt(0)retorna o caracter B cumprimento.charAt(2) retorna o caracter m cumprimento.substring(4,7)retorna o substring dia cumprimento.lenght() retorna o valor 15
B 0 o 1 m 2 3 d 4 i 5 a 6 7 a 8 9 t 10 o 11 d 12 o 13 s 14
Comparao de Strings
O operador == no funciona da mesma forma para objectos String quando == usado para testar objectos, testa se o endereo de memria dos dois objectos o mesmo Usam-se os mtodos equals(A_String) - sensvel s maisculas e minsculas ou equalsIgnoreCase(A_String)- no sensvel s maisculas e minsculas para testar se duas strings (sequncias de caracteres) so iguais Exemplo: String s1 = Mundo; String s2; s2 = SavitchIn.readLine(); / /s1.equals(s2) retorna true se o utilizador introduzir Mundo e / /false caso contrrio
Tipos de Dados Primitivos e Strings 42
Classes de Input/Output
com o Java:
Temos usado dois mtodos de output de uma classe que disponvel automaticamente
O teclado , geralmente, o dispositivo normal para o input O cran , geralmente, o dispositivo normal para output As classes so usadas para Input/Output Algumas classes esto sempre disponibilizadas pelo java, outras no
System.out.println() System.out.print() No entanto, o Java no tem classes de input disponveis automaticamente. Estas tm de ser acrescentadas SavitchIn uma classe especialmente escrita para o input do teclado Le outra classe especialmente escrita para o input do teclado Exemplos de mtodos da classe SavitchIn: SavitchIn.readLine() - l uma linha de texto e retorna a linha como um valor string SavitchIn.readLineInt()- l e retorna um nmero inteiro. SavitchIn.readLineDouble() SavitchIn.readLineBoolean() SavitchIn.readChar() Exemplos de mtodos da classe Le: Le.umInt() Le.umDouble()
43
44