3. Lembrando: Polimorfismo
Problema
Todos os objetos
implementam a mesma
ação usando métodos
diferentes.
Solução
Chamar um método
sem saber qual o
tipo do objeto que
vai executá-lo.
4. Lembrando: Polimorfismo
Definição
Significa que quem chama um método (envia
uma mensagem) em um objeto não precisa saber
a que classe esse objeto pertence. Ele pode
pertencer a qualquer classe.
Polimorfismo
várias formas o alvo (executor) de um método
pode ter várias formas (classes)
5. Objetivos
Conhecer a história de Java
Escrever seu primeiro programa em
Java
Conhecer o estilo Java
6. Java Software
Java
Linguagem orientada a objetos
Desenvolvida pela Sun Microsystems (hoje a
Oracle)
Modelada no C++
Projetada para ser
Pequena e simples
Portável (Diferentes SOs e arquiteturas)
Distribuída pela Internet
7. Java Software: Metas
Simples
Orientada a Objetos
Familiar
Portável e Independente de máquina
Programas em java rodam em
Servidores
Desktops
Celulares
Cartões
Usa bytecodes
10. Exemplo de um Programa em
Java
//*******************************************************
// Oreo.java Author: Kurt Eiselt
//
// Demonstrating simple Java programming concepts while
// revealing one of Kurt's many weaknesses
//*******************************************************
public class Oreo
{
//*****************************************************
// demand Oreos
//*****************************************************
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
11. Exemplo de um Programa em
Java
Comentarios são ignorados pelo compilador
//*******************************************************
// Oreo.java Author: Kurt Eiselt
//
// Demonstrating simple Java programming concepts while
// revealing one of Kurt's many weaknesses
//*******************************************************
public class Oreo
{
//*****************************************************
// demand Oreos
//*****************************************************
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
12. Exemplo de um Programa em
Java
/*
Oreo.java Author: Kurt Eiselt
Demonstrating simple Java programming concepts while
revealing one of Kurt's many weaknesses
*/
public class Oreo
{
/* demand Oreos */
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
Commentários também podem ser assim:
13. Exemplo de um Programa em
Java
Para o compilador, o código vai aparecer como
acima, sem nenhum comentário.
Comentários são importantes para pessoas
Mas não para o compilador
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
14. Exemplo de um Programa em
Java
Esse código é a definição de uma classe
Um pacote de instruções que especificam
Que tipo de dados existem
Que tipos de operações podem ser feitas
Programas Java programs têm uma ou mais classes
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
15. Exemplo de um Programa em
Java
Instruções dentro da definição de uma classe são
agrupadas em um ou mais procedimentos
chamdos métodos:
Grupo de instruções em Java que têm um nome e
fazem alguma tarefa específica
Todo programa Java tem que ter um método main
onde a execução dele começa
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
16. Exemplo de um Programa em
Java
Essas definições de classe e método são
demasiado simples (mas corretas)
Por agora elas são suficientes
Essas definições serão espandidas a medida
que continuamos
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
17. Exemplo de um Programa em
Java
Palavras usadas para se escrever programas são
chamadas identificadores
Exceto aquelas dentro de aspas (essas são strings)
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
18. Exemplo de um Programa em
Java
Esse programador inventou o identificador Oreo
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
19. Exemplo de um Programa em
Java
Outros programadores inventaram o identificador
System.out.println
Eles escreveram um programa para impressão
Ele é parte de uma grande biblioteca de programas
úteis que vem com Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
20. Exemplo de um Programa em
Java
Identificadores especiais em Java são chamados
palavras reservadas
Eles só podem ser usados em locais pré-determindos
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
21. Palavras reservadas
Se familiarize com elas
Mas não precisa memorizar todas as 52 para a prova!
abstract do if private throw
boolean double implements protected throws
break else import public transient
byte enum instanceof return true
case extends int short try
catch false interface static void
char final long strictfp volatile
class finally native super while
const float new switch
continue for null synchronized
default goto package this
22. Identificadores
Identificadores devem
Começar com uma letra a ser seguida por
Zero ou mais letas e/ou digitos
Dígitos: 0 - 9.
Letras são as 26 do alfabeto inglês
Ambas maiúsculas e minúsculas
mais o $ e _
Mais os caracteres alfabéticos de outras línguas
23. Identificadores
Identificadores devem
Começar com uma letra a ser seguida por
Zero ou mais letas e/ou digitos
Dígitos: 0 - 9.
Letras são as 26 do alfabeto inglês
Ambas maiúsculas e minúsculas
mais o $ e _
Mais os caracteres alfabéticos de outras línguas
Quais desses não são identificadores válidos?
userName user_name $cash 2ndName
first name user.age _note_ note2
24. Identificadores
Identificadores devem
Começar com uma letra a ser seguida por
Zero ou mais letas e/ou digitos
Dígitos: 0 - 9.
Letras são as 26 do alfabeto inglês
Ambas maiúsculas e minúsculas
mais o $ e _
Mais os caracteres alfabéticos de outras línguas
Quais desses não são identificadores válidos?
userName user_name $cash 2ndName
first name user.age _note_ note2
25. Identificadores
Java é case sensitive
Oreo oreo OREO 0reo
São diferentes identificadores, seja cuidadoso
Essa é uma fonte comum de erros em programas
26. Identificadores
Java é case sensitive
Oreo oreo OREO 0reo
São diferentes identificadores, seja cuidadoso
Essa é uma fonte comum de erros em programas
Esses são todos identificadores válidos?
27. Identificadores
Java é case sensitive
Oreo oreo OREO 0reo
São diferentes identificadores, seja cuidadoso
Essa é uma fonte comum de erros em programas
Esses são todos identificadores válidos?
0reo não é. E ωψÅ?
É, pois Java aceita caracteres de outras linguas
28. Identificadores
Criando identificadores em seu programa
Lembre-se que outras pessoas vão ler esses
nomes
Crie nomes significativos e descritivos do para
você e para eles
Não há limite de tamanho para identificadores
Mas use seu bom senso
public class ReallyLongNamesWillDriveYouCrazyIfYouGoOverboard
{
public static void main (String[] args)
{
System.out.println ("Enough already!");
}
}
29. Espaço em branco
//*******************************************************
// Oreo.java Author: Kurt Eiselt
//
// Demonstrating good use of white space
//*******************************************************
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
30. Espaço em branco
//*******************************************************
// Oreo1.java Author: Kurt Eiselt
//
// Demonstrating mediocre use of white space
//*******************************************************
public class Oreo1
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
31. Espaço em branco
//*******************************************************
// Oreo2.java Author: Kurt Eiselt
//
// Demonstrating bad use of white space
//*******************************************************
public class Oreo2 { public static void main (String[]
args) { System.out.println ("Feed me more Oreos!"); } }
32. Espaço em branco
//*******************************************************
// Oreo3.java Author: Kurt Eiselt
//
// Demonstrating totally bizarre use of white space
//*******************************************************
public
class Oreo3
{
public static
void main (String[] args)
{
System.out.println ("Feed me more Oreos!")
;
}
}
33. Espaço em branco
//*******************************************************
// Oreo4.java Author: Kurt Eiselt
//
// Demonstrating deep psychological issues with whitespace
//*******************************************************
public
class
Oreo4
{
public
static
void
main
(
String[]
args
)
{
System.out.println
("Feed me more Oreos!")
;
}
}
34. Programando com Variáveis
//*****************************************
// Test3.java
//*****************************************
public class Test3
{
public static void main (String[] args)
{
int a; //these
int b; //are
int c; //variable declarations
b = 3;
c = 5;
a = b + c;
System.out.println ("The answer is " + a);
}
}
35. Checando:
1. Qual é o tipo dos valores 0 e "0"?
2. Quais são identificadores legais ?
Greeting1
g
void
101dalmatians
Hello, World
<greeting>
3. Usando o BlueJ, crie um programa que calcule e
imprima a soma dos 4 primeiros termos da série de
Maclaurin -log(1-x):
36. Tipos de Dados Primitivos:
Números
6 primitivos para números
Inteiros vs. ponto flutuante (Reais)
Tamanhos finitos capacidade númerica finita
Type Size Min Max
byte 1 byte -128 127
short 2 bytes -32,768 32,767
int 4 bytes -2,147,483,648 2,147,483,647
long 8 bytes -9,223,372,036,854,775,808 9,223,372,036,854,775,807
float 4 bytes approx -3.4E38 (7 sig.digits) approx 3.4E38 (7 sig.digits)
double 8 bytes approx -1.7E308 (15 sig. digits) approx 1.7E308 (15 sig. digits)
37. Primitive Data Types: Non-
numeric
Tipo caracter
nome char
Java usa o conjunto de caracteres Unicode, assim
cada char ocupa 2 bytes de memória.
Tipo boleano
nome boolean
Valores válidos
True e false
Representa
yes/no, on/off
43. Estado
Alguns métodos, quando invocados, alteram
o estado de um objeto.
Ex.
Estado do objeto “círculoVerde”
•Cor: “Verde”
•Posição x: 0
•Posição y: 0
•Diâmetro: 2
círculoVerde.moverDireita(5)
Estado do objeto “círculoVerde”
•Cor: “Verde”
•Posição x: 5
•Posição y: 0
•Diâmetro: 2
44. Valores de retorno
Métodos podem retornar informações sobre
um objeto por meio de um valor de retorno.
Ex. A assinatura “String getName()”
A palavra “String” antes do nome de método
(“getName”) especifica o tipo de retorno.
Esse método retorna um valor do tipo “String”.
O valor é o nome do objeto.