Introdução ao Java
Sistemas Informáticos Slides_Java_1
Your first Java program
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"); } }
Compiling & Running
FirstProgram
FirstProgram.java Java source code Compile FirstProgram.class Output: Hello, 2 + 3 = 5 Good Bye Run Java bytecode javac javaFirstProgram
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"); } } FirstProgram System.out.print("Hello, 2 + 3 = "); System.out.println(2 + 3); System.out.println("Good Bye"); Name of program. Must be the same as name of file.
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 maincomeç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");
• 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.
Display a string Display Value of sum
print vs. println
one two three four five System.out.print("one "); System.out.print("two "); System.out.println("three "); System.out.print("four "); System.out.println("five "); hello there System.out.println("hello"); System.out.println("there");
Output
Code
Exercício A.1
• Write a Java program which will print the following:
• 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 ); Stars: ***** The End • Variáveis
– Para referir uma variável usa-se o seu identificador. É usado o valor corrente da variável. Exemplo:
// 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”); }
}
Variáveis
• 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.
240
alunos alunos 210
alunos = 210;
Variáveis
• 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
Tipos de Dados
Inteiros: byte, int, short, long
Reais: float, double
Caracteres: char
Booleanos: boolean void – – – Void
Double IEEE754 IEEE754 64-bit double Float IEEE754 IEEE754 32-bit float Long +263– 1 -263 64-bit long Integer +231– 1 -231 32-bit int Short +215– 1 -215 16-bit short Byte +127 -128 8-bit byte Character Unicode 216- 1 Unicode 0 16-bit char Boolean – – 1-bit boolean Wrapper type Maximum Minimum Size Primitive type
Tipos de Dados
• 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 9 223 372 036 854 775 807
Tipos de Dados em Java
sizeof(int) @ i8086 = 16 bits sizeof(int) @ i80486 = 32 bits sizeof(int) @ Dec Alpha, Pentium = 64 bits
In Java an int is always 32 bits (reason: cross-platform portability)
• Reais (números em vírgula flutuante) – Valores com parte fraccionária (pode ser zero) – Dois tipos:
– Um float tem apenas 7 dígitos significativos (por exemplo não pode representar 1234.5678)
– Um double tem 15 dígitos significativos
Tipo Memória Menor valor Maior valor float 32 bits -3.4 x 1038
3.4 x 1038
double 64 bits -1.7 x 10308
1.7 x 10308
Tipos de Dados em Java
• 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)
Tipo Memória Valor char 16 bits Qualquer
pertencente ao Unicode
Tipos de Dados em Java
• Boolean
– Uma variável do tipo boolean só pode ter um de dois valores: trueou false
Tipo Memória Valor boolean 1 bit true ou false
Tipos de Dados 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 finalindica 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.
Constantes 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
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 – 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;
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
Expressões em Java
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()
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 + "!"); }
}
Input from the keyboard
• 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. String name = Keyboard.readLine(); System.out.println (“Hello ” + name + “!”);
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:
• Note : The ‘*’ operator performs multiplication. System.out.print(“Introduza um número: ");
int num = Keyboard.readInt( );
System.out.println(“O quadrado é= " + (num*num));
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.
– /* and */: everything between /* and */ is ignored. int num; // the number of students
/* this is a comment still a comment */
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.
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); }
}
Resultado
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: