Slides_Java_1!"#$!" $ % & $ Sistemas Informáticos I, 2005/2006 ( Java source code Compile javac Java bytecode Run java Output:!"#) %& Name of program. Must be the same as name of file.!"#$!"$ % & $ Where you type your statements (white box) 1
O método main Quando se executa um programa em Java, as instruções incluídas no método main começam a ser executadas automaticamente. O fluxo do programa decorre a partir daí Todas as aplicações têm que ter um método main Tem que ser declarado da seguinte forma: public static void main (String args[ ]). O método main é procurado na classe que tem o mesmo nome que o ficheiro que se compila e executa!!"#$!" $ % & $ Display a string Display Value of sum Each line terminates with a semi-colon. * refers to the screen of the computer and is an instruction to the screen to print something out. " #$!%!&" Code,$,$ $ + $, $ -$ - $ Output,, +, -- Write a Java program which will print the following: 1 22222 3,4 What will be printed on the screen if you run the following Java statements?.!) $ / #/ $ 0$ 2
() Variáveis Para referir uma variável usa-se o seu identificador. É usado o valor corrente da variável. Exemplo:! "#$%& ( ()*+ ),,) -!& "#.%& ( ()*+ ),,) -!& / / () Instrução de atribuição Uma instrução de atribuição coloca numa variável o resultado de uma expressão: nome_da_variável = expressão; Uma instrução deste tipo leva o computador a calcular o valor da expressão e a armazená-lo na variável indicada. A variável é substituída pelo novo valor. alunos = 210; alunos 240 alunos 210 * + * + Tipos de dados básicos Um tipo de dados é definido por uma gama de valores e pelas operações que se podem efectuar sobre esses valores. Cada dado tem um tipo. A linguagem Java tem oito tipos de dados pré-definidos, geralmente chamados tipos de dados básicos Primitive type long 64-bit -2 63 +2 63 1 Long float 32-bit IEEE754 IEEE754 Float double 64-bit IEEE754 IEEE754 Double void Void boolean char byte short int Size 1-bit 16-bit 8-bit 16-bit 32-bit Minimum Unicode 0-128 -2 15-2 31 Maximum Unicode 2 16-1 +127 +2 15 1 +2 31 1 Wrapper type Boolean Character Byte Short Integer 3
* + * + Inteiros Valores sem parte fraccionária Quatro tipos: Tipo Memória Menor valor Maior valor byte 8 bits -128 127 short 16 bits -32768 32767 int 32 bits -2 147 483 648 2 147 483 647 long 64 bits -9 223 372 036 854 775 808 +!01%12 +!01%$12 +!045678 *9 :3# 9 223 372 036 854 775 807 ".2 "3# "2$ ; <+! Reais (números em vírgula flutuante) Valores com parte fraccionária (pode ser zero) Dois tipos: Tipo Memória Menor valor Maior valor float 32 bits -3.4 x 10 38 3.4 x 10 38 double 64 bits -1.7 x 10 308 1.7 x 10 308 Um float tem apenas 7 dígitos significativos (por exemplo não pode representar 1234.5678) Um double tem 15 dígitos significativos * + * + Caracteres O Java utiliza um conjunto de caracteres chamado Unicode que é uma extensão do código ASCII. Inclui todos os caracteres existentes num teclado normal, bem como caracteres de controlo (ex. tab, line feed, return) Boolean Uma variável do tipo boolean só pode ter um de dois valores: true ou false Tipo Memória Valor boolean 1 bit true ou false Tipo Memória Valor char 16 bits Qualquer pertencente ao Unicode 4
#$, Constantes Uma constante armazena um valor que não pode ser alterado. Exemplo: final int MAX_STUDENTS = 300; Declara-se a constante MAX_STUDENTS com o valor 300 A palavra reservada final indica que se trata de uma constante Usar constantes em vez dos respectivos valores para tornar os programas mais legíveis e de fácil manutenção. Expressões - Aritméticas: Operadores: ( ) * / % + - Exemplo: 5 * (2 + 3) + 7 = 32 O operador divisão / dá resultados inteiros se utilizado com operandos inteiros (exemplo: 7 / 4 dá 1) e resultados reais se pelo menos um dos operandos é real (exemplo: 6.5 / 2 dá 3.25) O operador % dá o resto de uma divisão Exemplo: 13 % 4 dá 1 8.6 % 2.0 dá 0.6 -. public class Divisoes public static void main (String[] args) System.out.println("3 / 4 = "+ (3 / 4)); System.out.println("3 % 4 = "+ (3 % 4)); System.out.println("3.0 / 4 = "+ (3.0 / 4)); System.out.println("3.0 % 4 = "+ (3.0 % 4)); #$, Expressões Aritméticas: Exemplo - Dado um número de segundos convertê-lo em minutos e segundos: int totalsegundos = 325; int minutos, segundos; minutos = totalsegundos / 60; segundos = totalsegundos % 60; 5
#$,! Expressões Lógicas: Operadores relacionais: > < ==!= <= >= Recebem operandos de outros tipos e produzem um resultado lógico. Exemplo: (10 > 5) dá true Operadores lógicos: && (conjunção), (disjunção),! (negação) Recebem operandos lógicos e produzem resultados lógicos. Exemplo: (10 > 5 && 3!= 3) dá false * 5 3 --,6, Keyboard.readInt () Keyboard.readLine () Keyboard.readFloat() Keyboard.readDouble() Keyboard.readLong() #$/! 0 12 2$ 7 4, 4 1$ #8 9$!!:$ #8 9$ / ;!!/:;$ Reads in a line of text from the keyboard. When you push enter, it will store the string in a variable called The + sign concatenates the two strings. 6
#!0 This package has several classes that can be used in your programs. To use the package: << = +=6>?*4 Include the package in your code: (@& And then use it... Example: 8 9$ 2 0 12 To read a decimal number, we need to use 8, for example: /<= > 1$ #8<$ /? @ A#! 2 $ Note : The * operator performs multiplication. #$!%!&"3 Escreva um programa que peça ao utilizador o seu apelido e o leia do teclado; depois deve pedir e ler o nome próprio. Na segunda fase deve imprimir no écrân o nome próprio, seguido de um espaço e depois do apelido. 4 import essential.*; public class xyz public static void main (String[] args) String apelido, nome; System.out.print("Introduza o seu apelido: "); apelido = Keyboard.readLine(); System.out.print("Introduza o seu nome: "); nome = Keyboard.readLine(); System.out.println("Bom Dia: "+nome + " " + apelido); 7
#$!%!&"5 4 Escreva um programa que calcule o volume de um paralelipípedo. Para tal deve primeiro pedir as dimensões ao utilizador (altura; largura; profundidade). Depois deve imprimir o valor do volume no écrân. import essential.*; public class P4 public static void main (String[] args) int A, B, C, volume; System.out.println("Qual o valor da altura: "); A = Keyboard.readInt( ); System.out.println("valor da altura: "+A); System.out.println("Qual o valor da largura: "); B = Keyboard.readInt( ); System.out.println("Qual o valor da profundidade: "); C = Keyboard.readInt( ); volume = A*B*C; System.out.println("Volume = "+ volume ); 6#$ /!)!!$ 7 B%, /C 1$ #8D $ /C E1$ E #8D $ #!E 2 $ 7 #! $ A comment is a remark in a program to clarify something to a human reader. Comments are ignored by the compiler. Two ways of indicating comments: Double slash: everything to the end of the line is ignored. $FF, - /* and */: everything between /* and */ is ignored. F2, 2F 8
#$!%!&"8 Escreva um programa que pergunte ao utilizador o raio de uma circunferência. O programa deve depois calcular e imprimir a área e o perímetro dessa circunferência. 4 import essential.*; public class C1 public static void main(string args[]) int r; // declaracao da variavel que vai armazenar o raio double pi=3.14; double p,a; System.out.print("Raio = "); r = Keyboard.readInt(); /* agora vou calcular o perimetro e a area da circunferencia */ p=2*pi*r; a=pi*r*r; System.out.println("Perímetro= "+p); System.out.println("Area= "+a); 9! )! import essential.*; public class TestGraph public static void main (String[] args) Graph g = new Graph(); // create a Graph object called g g.addpoint(-2,-4); g.addpoint(0,0); g.addpoint(1,2); 9
# : When you create a %, object using the + keyword, a window is created. Default axes range: -5 to 5. To change the ranges use: GE HIHHJ$ #$!%!&"; Escreva um programa que use a classe %, da package 4 e que represente os seguintes pontos: (0, 0 ) (0.5, 3 ) (1, 4 ) (2, 4.5) (5, 4.8) #$!%!&"< Escreva um programa que use a classe %, da package 4 e que represente a seguinte recta: y = 2x-3; import essential.*; 4 public class A6 public static void main (String[] args) Graph g = new Graph(); // create a Graph object g.setaxes(-15,15,-15,15); g.addpoint(-5,-13); g.addpoint(4,7); 10