PROGRAMANDO EM JAVA Dilvan Moreira baseado no livro
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 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 boolean break byte case catch char class const continue default do double else enum extends false finally float for goto if implements import instanceof interface long native new null package private throw protected throws public transient return true short try static void strictfp volatile super while switch synchronized this
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 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? user. Name user_name $cash 2 nd. Name first name user. age _note_ note 2
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? user. Name user_name $cash 2 nd. Name first name user. age _note_ note 2
Identificadores Java é case sensitive Oreo oreo OREO São 0 reo diferentes identificadores, seja cuidadoso Essa é uma fonte comum de erros em programas
Identificadores Java é case sensitive Oreo oreo OREO 0 reo 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 0 reo São diferentes identificadores, seja cuidadoso Essa é uma fonte comum de erros em programas Esses são todos identificadores válidos? 0 reo 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 Really. Long. Names. Will. Drive. You. Crazy. If. You. Go. Overboard { 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 //**************************** // Oreo 1. java Author: Kurt Eiselt // // Demonstrating mediocre use of white space //**************************** public class Oreo 1 { public static void main (String[] args) { System. out. println ("Feed me more Oreos!"); } }
Espaço em branco //**************************** // Oreo 2. java Author: Kurt Eiselt // // Demonstrating bad use of white space //**************************** public class Oreo 2 { public static void main (String[] args) { System. out. println ("Feed me more Oreos!"); } }
Espaço em branco //**************************** // Oreo 3. java Author: Kurt Eiselt // // Demonstrating totally bizarre use of white space //**************************** public class Oreo 3 { public static void main (String[] args) System. out. println ; } } { ("Feed me more Oreos!")
Espaço em branco //**************************** // Oreo 4. java Author: Kurt Eiselt // // Demonstrating deep psychological issues with whitespace //**************************** public class Oreo 4 { public static void main ( String[] args ) { System. out. println ("Feed me more Oreos!") ; } }
Programando com Variáveis //********************* // Test 3. java //********************* public class Test 3 { 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. 2. Qual é o tipo dos valores 0 e "0"? Quais são identificadores legais ? Greeting 1 g void 101 dalmatians Hello, World <greeting> 3. Usando o Blue. J, 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 4 bytes double 8 bytes approx -3. 4 E 38 (7 sig. digits) approx -1. 7 E 308 (15 sig. digits) approx 1. 7 E 308 (15 sig. digits) float 6 primitivos para números Inteiros vs. ponto flutuante (Reais) Tamanhos finitos capacidade númerica finita
Primitive Data Types: Nonnumeric 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”). © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o Blue. J 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. © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o Blue. J 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). © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o Blue. J Barnes|Kölling
Estado slide 41 © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o Blue. J Barnes|Kölling
Dois objetos c/ estados diferentes slide 42 © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o Blue. J Barnes|Kölling
Estado Alguns métodos, quando invocados, alteram o estado de um objeto. Ex. círculo. Verde. mover. Direita(5) Estado do objeto “círculo. Verde” • Cor: “Verde” • Posição x: 0 • Posição y: 0 • Diâmetro: 2 Estado do objeto “círculo. Verde” • Cor: “Verde” • Posição x: 5 • Posição y: 0 • 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 get. Name()” A palavra “String” antes do nome de método (“get. Name”) especifica o tipo de retorno. Esse método retorna um valor do tipo “String”. O valor é o nome do objeto.
Perguntas?
- Slides: 45