Você está na página 1de 45

PROGRAMANDO EM

JAVA
Dilvan Moreira
(baseado no livro Big Java)
Lembrando: Polimorfismo
 Problema
 Todos os objetos
implementam a mesma
ação usando métodos
diferentes.
 Solução
 ?
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.
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)
Objetivos

 Conhecer a história de Java


 Escrever seu primeiro programa em Java

 Conhecer o estilo Java


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
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
Java Software
 Processo de compilação
Java Software
 Rodando em qualquer lugar
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!");
}
}
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!");
}
}
Exemplo de um Programa em Java
Commentários também podem ser assim:
/*
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!");
}
}
Exemplo de um Programa em Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}

 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
Exemplo de um Programa em Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
 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
Exemplo de um Programa em Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
 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
Exemplo de um Programa em Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
 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
Exemplo de um Programa em Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
 Palavras usadas para se escrever programas são
chamadas identificadores
 Exceto aquelas dentro de aspas (essas são strings)
Exemplo de um Programa em Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}
 Esse programador inventou o identificador Oreo
Exemplo de um Programa em Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}

 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
Exemplo de um Programa em Java
public class Oreo
{
public static void main (String[] args)
{
System.out.println ("Feed me more Oreos!");
}
}

 Identificadores especiais em Java são chamados palavras


reservadas
 Eles só podem ser usados em locais pré-determindos
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
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
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
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
Identificadores
 Java é case sensitive
 Oreo oreo OREO 0reo
 São diferentes identificadores, seja cuidadoso
 Essa é uma fonte comum de erros em programas
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?


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
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!");
}
}
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!");
}
}
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!");
}
}
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!"); } }
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!")
;
}
}
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!")
;
}
}
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);
}
}
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):
Tipos de Dados Primitivos:
Números
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)

 6 primitivos para números


 Inteiros vs. ponto flutuante (Reais)
 Tamanhos finitos  capacidade númerica finita
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
Objetos e classes
slide 38

 Objetos:
 representam ‘coisas’ reais, ou de algum

domínio do problema (exemplo: “o carro


vermelho lá no estacionamento”).
 Classes:
 representam todos os objetos de um

tipo (exemplo: “carro”).

Programãção orientada com objetos JAVA –


© 2008 by Pearson Education Uma introdução prática utilizando o BlueJ
Barnes|Kölling
Métodos e parâmetros
slide 39

 Os objetos têm operações que podem ser


invocadas (o Java as chama métodos).
 Métodos podem ter parâmetros para passar
informações adicionais necessárias para
executar.

Programãção orientada com objetos JAVA –


© 2008 by Pearson Education Uma introdução prática utilizando o BlueJ
Barnes|Kölling
Outras observações
slide 40

 Muitas instâncias podem ser criadas a partir de uma


única classe.
 Um objeto tem atributos: valores armazenados em
campos.
 A classe define quais campos um objeto tem, mas cada
objeto armazena seu próprio conjunto de valores (o
estado do objeto).

Programãção orientada com objetos JAVA –


© 2008 by Pearson Education Uma introdução prática utilizando o BlueJ
Barnes|Kölling
Estado
slide 41

Programãção orientada com objetos JAVA –


© 2008 by Pearson Education Uma introdução prática utilizando o BlueJ
Barnes|Kölling
Dois objetos c/ estados diferentes
slide 42

Programãção orientada com objetos JAVA –


© 2008 by Pearson Education Uma introdução prática utilizando o BlueJ
Barnes|Kölling
Estado
 Alguns métodos, quando invocados, alteram o
estado de um objeto.
Ex.

círculoVerde.moverDireita(5)

Estado do objeto “círculoVerde” Estado do objeto “círculoVerde”


•Cor: “Verde” •Cor: “Verde”
•Posição x: 0 •Posição x: 5
•Posição y: 0 •Posição y: 0
•Diâmetro: 2 •Diâmetro: 2
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.
Perguntas?

Você também pode gostar