Your first Java program Introdução ao Java Slides_Java_1 public class FirstProgram { public static void main (String[] args) { System.out.print("Hello, 2 + 3 = "); System.out.println(2 + 3); System.out.println("Good Bye"); } } Sistemas Informáticos Compiling & Running FirstProgram FirstProgram.java FirstProgram.class Java source code Compile javac Java bytecode Run java FirstProgram Name of program. Must be the same as name of file. Output: Hello, 2 + 3 = 5 Good Bye FirstProgram public class FirstProgram { public static void main (String[] args) { System.out.print("Hello, 2 + 3 = "); System.out.println(2 + 3); System.out.println("Good Bye"); } } Where you type your statements (white box) Método main() • 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 Print to the screen System.out.print("Hello, 2 + 3 = "); System.out.println(2 + 3); System.out.println("Good Bye"); Display a string Display Value of sum • Each line terminates with a semi-colon. • System.out refers to the screen of the computer and print is an instruction to the screen to print something out. 1 print vs. println Code Output System.out.println("hello"); System.out.println("there"); hello there System.out.print("one "); one two three System.out.print("two "); four five System.out.println("three "); System.out.print("four "); System.out.println("five "); Exercício A.1 • Write a Java program which will print the following: Stars: ***** The End • What will be printed on the screen if you run the following Java statements? System.out.print (4 + 5); System.out.print ( “ = “ ); System.out.println( 9 ); Variáveis Variáveis • 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; // Exemplo de utilização de variáveis public class Var_exemplo { public static void main (String args[]) { int alunos = 240; System.out.println (“Informática tem“+alunos+“alunos”); alunos = 210; System.out.println (“Informática tem“+alunos+“alunos”); } } – 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 Tipos de Dados • 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 Inteiros: Reais: Caracteres: Booleanos: byte, int, short, long float, double char boolean alunos 210 Tipos de Dados Primitive type Size Minimum Maximum Wrapper type boolean 1-bit – – Boolean char 16-bit Unicode 0 Unicode 216- 1 Character byte 8-bit -128 +127 Byte short 16-bit -215 +215 – 1 Short int 32-bit -231 +231 – 1 Integer long 64-bit -263 +263 – 1 Long float 32-bit IEEE754 IEEE754 Float double 64-bit IEEE754 IEEE754 Double void – – – Void 2 Tipos de Dados em Java • Inteiros Tipos de Dados em Java • Reais (números em vírgula flutuante) – Valores sem parte fraccionária – Quatro tipos: – Valores com parte fraccionária (pode ser zero) – Dois tipos: Tipo Memória Menor valor Maior valor Tipo Memória Menor valor byte 8 bits -128 127 float 32 bits -3.4 x 1038 3.4 x 1038 short 16 bits -32768 32767 double 64 bits -1.7 x 10308 1.7 x 10308 int 32 bits -2 147 483 648 2 147 483 647 long 64 bits -9 223 372 036 854 775 808 9 223 372 036 854 775 807 sizeof(int) @ i8086 sizeof(int) @ i80486 sizeof(int) @ Dec Alpha, Pentium In Java an int is always 32 bits Maior valor – Um float tem apenas 7 dígitos significativos (por exemplo não pode representar 1234.5678) – Um double tem 15 dígitos significativos = 16 bits = 32 bits = 64 bits (reason: cross-platform portability) Tipos de Dados em Java Tipos de Dados em Java • Boolean • Caracteres – Uma variável do tipo boolean só pode ter um de dois valores: true ou false – 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) Tipo Memória Valor char 16 bits Qualquer pertencente ao Unicode Constantes em Java • 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. Tipo Memória Valor boolean 1 bit true ou false Expressões em Java • 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 3 Qual o resultado? 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 em Java • 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 Ex: ler uma string do teclado import essential.*; public class NameEcho { public static void main (String[] args) { System.out.print("Enter your name: "); String name = Keyboard.readLine(); System.out.println("Hello " + name + "!"); } } Expressões em Java • 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; Input de dados do teclado • Input - To simplify reading in from the keyboard, you can use the Keyboard class. – – – – – Keyboard.readInt () Keyboard.readLine () Keyboard.readFloat() Keyboard.readDouble() Keyboard.readLong() Input from the keyboard String name = Keyboard.readLine(); System.out.println (“Hello ” + name + “!”); • Reads in a line of text from the keyboard. • When you push enter, it will store the string in a variable called name. • The ‘+’ sign concatenates the two strings. 4 Essential Package • This package has several classes that can be used in your programs. • To use the package: -- Configure Classpath in GEL IDE • Include the package in your code: import essential.*; • And then use it... Example: Keyboard.readLine(); Read numbers from the keyboard • To read a decimal number, we need to use Keyboard.readlnt( ), for example: System.out.print(“Introduza um número: "); int num = Keyboard.readInt( ); System.out.println(“O quadrado é= " + (num*num)); • Note : The ‘*’ operator performs multiplication. Exercício A.2 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. Exercício A.3 • 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. Outro Exemplo: cálculo ganhos com taxa de juro public class CalculoGanhos { public static void main (String[] args) { System.out.print(“Qual o saldo: "); double saldo = Keyboard.readDouble(); System.out.print(“Qual a taxa: "); double taxa = Keyboard.readDouble(); saldo = saldo + (taxa * saldo); System.out.println("Novo saldo = " + saldo); } } Comments • 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. int num; // the number of students – /* and */: everything between /* and */ is ignored. /* this is a comment still a comment */ 5 Exercício A.4 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. Resultado Um pouco de gráficos 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); } } Essential Graph • When you create a Graph object using the new keyword, a window is created. • Default axes range: -5 to 5. • To change the ranges use: g.setAxes(0, 10, 0, 6); Exercício A.5 • Escreva um programa que use a classe Graph da package Essential e que represente os seguintes pontos: (0 , 0 ) (0.5, 3 ) (1 , 4 ) (2 , 4.5) (5 , 4.8) Exercício A.6 • Escreva um programa que use a classe Graph da package Essential e que represente a seguinte recta: y = 2x-3; 6