Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000
1a. Aula Desenvolvimento de Software Orientado a Objetos: Java
Aula de Hoje <ul><li>Programação Orientada a Objetos: </li></ul><ul><li>JAVA </li></ul>
Objetivos <ul><li>Apresentar a linguagem de Programação JAVA </li></ul><ul><li>Primeiros programas em Java </li></ul><ul><...
A Linguagem JAVA <ul><li>Criada pela Sun Microsystems nos anos 90 </li></ul><ul><li>Linguagem originalmente desenvolvida p...
JAVA - Histórico <ul><li>1991: a Linguagem Oak é projetada por James Gosling </li></ul><ul><li>1993: Com a explosão das re...
Principal Característica  <ul><li>JAVA é independente de plataforma. Isto significa que: </li></ul><ul><ul><li>um mesmo pr...
Outras características <ul><li>É uma linguagem de propósito geral com características modernas de programação: </li></ul><...
Funcionamento Java <ul><li>Quando um programa  fonte  Java é compilado, ele é traduzido em uma linguagem de máquina especi...
A Máquina Virtual Java <ul><li>A Máquina Virtual Java, ou  Java Virtual Machine (JVM)   é um programa que traduz dinamicam...
Funcionamento Java Compilador Java Programa em  bytecode Programa Java Interpretadores   específicos
Funcionamento detalhado
Java e a Internet (I) <ul><li>A Internet é uma grande aplicação da arquitetura cliente/servidor </li></ul><ul><ul><li>Serv...
Java e a Internet:  Applets   <ul><li>Java possibilita a construção de mini-programas -  Applets  - que podem ser executad...
Controle dos  Applets :  Java  Sandbox <ul><li>Applets  geram um problema de segurança ... </li></ul><ul><li>Um mecanismo ...
Sandbox: Funcionamento <ul><li>A sandbox é composta de três mecanismos de defesa: </li></ul><ul><ul><li>Byte Code Verifier...
Restrições ao funcionamento de um  Applet  (I) <ul><li>Quanto aos arquivos NÃO se pode: </li></ul><ul><ul><li>Ler, Escreve...
Restrições ao funcionamento de um  Applet (II) <ul><li>Quanto ao Acesso à Rede NÃO se pode: </li></ul><ul><ul><li>Criar um...
Restrições ao funcionamento de um  Applet (III) <ul><li>Propriedades do sistema: </li></ul><ul><ul><li>Executar qualquer p...
Porque Java? <ul><li>Adequado a Internet: </li></ul><ul><ul><li>A Internet é composta de computadores heterogêneos, portan...
Tipos de Programas Java <ul><li>Aplicações: </li></ul><ul><ul><li>Programas normais e autônomos </li></ul></ul><ul><ul><li...
Programando em JAVA Criando programas Autônomos  (e não os  Applets )
Meu Primeiro Programa <ul><li>O primeiro programa agente nunca esquece: </li></ul><ul><li>public class OlaMundo { </li></u...
Detalhes... <ul><li>O Nome do arquivo deve ser o mesmo da definida na linha 1: OlaMundo.java </li></ul><ul><li>A classe cr...
Para esperar o término do programa: <ul><li>System.out.println(&quot;Tecle &quot;Enter&quot; para terminar.&quot;); </li><...
Comentários em Java <ul><li>Em Java, comentários podem ser representados de duas formas: </li></ul><ul><li>//  - Significa...
Expressões <ul><li>Expressões avaliam (computam) o valor de uma seqüência de variáveis, valores, operadores e chamada de m...
Operadores <ul><li>Operadores para números e char: </li></ul><ul><li>Relacionais: </li></ul><ul><ul><li><  >  <=  >=  ==  ...
Operadores (II) <ul><li>Operadores lógicos: </li></ul><ul><li>Booleanos: </li></ul><ul><ul><li>= =  !=  (resultado lógico)...
Variáveis <ul><li>Local onde as informações são armazenadas dentro de um programa. </li></ul><ul><li>Uma variável tem este...
Declaração de variáveis <ul><li>Para ser utilizada, uma variável deve ser primeiro  declarada </li></ul><ul><li>Declarar u...
Tipos de dados primitivos <ul><li>Tipo  Tamanho  Valores Possíveis </li></ul><ul><li>byte  8 bits  -128 a 127 </li></ul><u...
Exercício Variáveis <ul><li>É meio complicado fazer um exercício sobre variáveis sem ter entrada de dados no programa. </l...
Entrada de dados via teclado <ul><li>Interface gráfica é muito bom, mas existem casos onde necessitamos a entrada de dados...
Entrada de dados via teclado <ul><li>Definindo o dispositivo de entrada: </li></ul><ul><ul><li>BufferedReader teclado = ne...
“ Jogando” exceções <ul><li>Para usar a entrada via teclado precisamos definir que se algo der errado na leitura, este mét...
Exemplo OlaFulano <ul><li>Ver exemplo OlaFulano.java </li></ul>
E para ler dados numéricos? <ul><li>JAVA só lê strings do teclado. Para ler um dado numérico é necessário ler a string e c...
Exercício <ul><li>Faça um programa que transforme uma temperatura em graus Celsius para Farenheight. </li></ul><ul><li>Faç...
Conclusão <ul><li>A linguagem Java foi criada pela Sun Microsystems no início dos anos 90. </li></ul><ul><li>Os programas ...
Conclusão (II) <ul><li>Os programas criados em  Java  podem ser aplicações normais ou  Applets. </li></ul><ul><li>Applets ...
Exemplos de Applets <ul><li>A 3 dimensional Life System: </li></ul><ul><ul><li>http://www.biocrawler.com/reallife/ </li></...
Links <ul><li>Sociedade de Usuários Java (SouJava) </li></ul><ul><ul><li>www.soujava.com.br </li></ul></ul><ul><li>JavaWor...
Upcoming SlideShare
Loading in …5
×

ptt

1,592 views

Published on

java

Published in: Technology
  • Be the first to comment

  • Be the first to like this

ptt

  1. 1. Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000
  2. 2. 1a. Aula Desenvolvimento de Software Orientado a Objetos: Java
  3. 3. Aula de Hoje <ul><li>Programação Orientada a Objetos: </li></ul><ul><li>JAVA </li></ul>
  4. 4. Objetivos <ul><li>Apresentar a linguagem de Programação JAVA </li></ul><ul><li>Primeiros programas em Java </li></ul><ul><li>JBuilder </li></ul><ul><li>Entrada e Saída de Dados </li></ul>
  5. 5. A Linguagem JAVA <ul><li>Criada pela Sun Microsystems nos anos 90 </li></ul><ul><li>Linguagem originalmente desenvolvida para programar eletrodomésticos como vídeo-cassetes, torradeiras, etc, e por isso deveria ser: </li></ul><ul><ul><li>Independente de plataforma </li></ul></ul><ul><ul><li>Simples, confiável e compacta </li></ul></ul>
  6. 6. JAVA - Histórico <ul><li>1991: a Linguagem Oak é projetada por James Gosling </li></ul><ul><li>1993: Com a explosão das redes, o projeto foi direcionado à aplicações Internet </li></ul><ul><li>1994: A linguagem Oak passa a se chamar Java </li></ul>
  7. 7. Principal Característica <ul><li>JAVA é independente de plataforma. Isto significa que: </li></ul><ul><ul><li>um mesmo programa escrito em Java funciona em qualquer outro tipo de computador, independentemente de sua linguagem de máquina, e em qualquer outro sistema operacional </li></ul></ul><ul><ul><li>“ Escreva uma vez, execute em qualquer lugar” </li></ul></ul>
  8. 8. Outras características <ul><li>É uma linguagem de propósito geral com características modernas de programação: </li></ul><ul><ul><li>Orientada a objetos e fortemente tipada. </li></ul></ul><ul><ul><li>Robusta. </li></ul></ul><ul><ul><li>Sem ponteiros e alocação direta de memória. </li></ul></ul><ul><ul><li>Com tratamento de exceções </li></ul></ul><ul><ul><li>Concorrente. </li></ul></ul>
  9. 9. Funcionamento Java <ul><li>Quando um programa fonte Java é compilado, ele é traduzido em uma linguagem de máquina especial, chamada bytecode </li></ul><ul><li>O bytecode não é executado diretamente por nenhum computador real, mas por uma Máquina Virtual específica. </li></ul>
  10. 10. A Máquina Virtual Java <ul><li>A Máquina Virtual Java, ou Java Virtual Machine (JVM) é um programa que traduz dinamicamente o bytecode para a linguagem de máquina correspondente à plataforma em que ele está sendo executado </li></ul><ul><li>Assim, cada tipo de computador possui sua própria Java Virtual Machine </li></ul>
  11. 11. Funcionamento Java Compilador Java Programa em bytecode Programa Java Interpretadores específicos
  12. 12. Funcionamento detalhado
  13. 13. Java e a Internet (I) <ul><li>A Internet é uma grande aplicação da arquitetura cliente/servidor </li></ul><ul><ul><li>Servidores: softwares que provêm informação </li></ul></ul><ul><ul><li>Clientes: softwares que buscam informação e, preferencialmente, realizam localmente alguma tarefa do sistema. </li></ul></ul><ul><li>A Web facilita a conexão mas limita as funções do cliente (páginas HTML) </li></ul>
  14. 14. Java e a Internet: Applets <ul><li>Java possibilita a construção de mini-programas - Applets - que podem ser executados no browser do cliente: </li></ul><ul><ul><li>Applets são automaticamente carregados da rede, dispensando a instalação de softwares no cliente. </li></ul></ul><ul><ul><li>Os Applets são incorporados em páginas HTML adicionando: </li></ul></ul><ul><ul><ul><li>animações, sons, entrada/consistência de dados, acesso a bancos de dados, segurança, ... </li></ul></ul></ul>
  15. 15. Controle dos Applets : Java Sandbox <ul><li>Applets geram um problema de segurança ... </li></ul><ul><li>Um mecanismo chamado Sandbox limita o que um Applet Java pode fazer. </li></ul><ul><li>Como o programa é executado dentro de um ambiente controlado, isto dá segurança ao sistema. </li></ul>
  16. 16. Sandbox: Funcionamento <ul><li>A sandbox é composta de três mecanismos de defesa: </li></ul><ul><ul><li>Byte Code Verifier </li></ul></ul><ul><ul><li>Class Loader </li></ul></ul><ul><ul><li>Security Manager </li></ul></ul><ul><li>Os mecanismos de defesa executam verificações em tempo de carga e em tempo de execução para restringir a atuação do Applet. </li></ul>
  17. 17. Restrições ao funcionamento de um Applet (I) <ul><li>Quanto aos arquivos NÃO se pode: </li></ul><ul><ul><li>Ler, Escrever, Apagar e Renomear arquivos no sistema cliente. </li></ul></ul><ul><ul><li>Criar um diretório no sistema cliente. </li></ul></ul><ul><ul><li>Listar o conteúdo de um diretório. </li></ul></ul><ul><ul><li>Verificar se um arquivo existe. </li></ul></ul><ul><ul><li>Obter informações sobre um arquivo, como tamanho, tipo e data da última modificação. </li></ul></ul>
  18. 18. Restrições ao funcionamento de um Applet (II) <ul><li>Quanto ao Acesso à Rede NÃO se pode: </li></ul><ul><ul><li>Criar uma conexão com qualquer outro computador que não seja o computador que originou a Applet. </li></ul></ul><ul><ul><li>Esperar ou aceitar conexões em qualquer porta no sistema cliente. </li></ul></ul><ul><ul><li>Obter o username do usuário ou o nome do seu diretório home. </li></ul></ul>
  19. 19. Restrições ao funcionamento de um Applet (III) <ul><li>Propriedades do sistema: </li></ul><ul><ul><li>Executar qualquer programa no sistema cliente usando o método Runtime.exec() </li></ul></ul><ul><ul><li>Fazer com que o interpretador Java seja finalizado. </li></ul></ul><ul><ul><li>Carregar dinamicamente bibliotecas no sistema cliente usando os métodos load() ou loadLibrary() das classes Runtime ou System. </li></ul></ul>
  20. 20. Porque Java? <ul><li>Adequado a Internet: </li></ul><ul><ul><li>A Internet é composta de computadores heterogêneos, portanto ser independente de plataforma é importante. </li></ul></ul><ul><ul><li>A possibilidade de executar um programa diretamente de um browser diminui o custo da distribuição, instalação e atualização de programas </li></ul></ul><ul><ul><li>Os mecanismos de segurança do Java permitem a execução segura de programas </li></ul></ul>
  21. 21. Tipos de Programas Java <ul><li>Aplicações: </li></ul><ul><ul><li>Programas normais e autônomos </li></ul></ul><ul><ul><li>São executados diretamente pela máquina virtual </li></ul></ul><ul><ul><li>Não existem restrições de segurança </li></ul></ul><ul><li>Applets. </li></ul>
  22. 22. Programando em JAVA Criando programas Autônomos (e não os Applets )
  23. 23. Meu Primeiro Programa <ul><li>O primeiro programa agente nunca esquece: </li></ul><ul><li>public class OlaMundo { </li></ul><ul><li>public static void main(String[] args) </li></ul><ul><li>{ </li></ul><ul><li>System.out.println(&quot;Ola Mundo!&quot;); </li></ul><ul><li>} </li></ul><ul><li>} </li></ul>
  24. 24. Detalhes... <ul><li>O Nome do arquivo deve ser o mesmo da definida na linha 1: OlaMundo.java </li></ul><ul><li>A classe criada será chamada: OlaMundo.class </li></ul><ul><li>A tela branca na parte de baixo é o interpretador JVM rodando. </li></ul>
  25. 25. Para esperar o término do programa: <ul><li>System.out.println(&quot;Tecle &quot;Enter&quot; para terminar.&quot;); </li></ul><ul><li>try{ </li></ul><ul><li>System.in.read(); </li></ul><ul><li>} catch (Exception erro) { </li></ul><ul><li>erro.printStackTrace(); </li></ul><ul><li>} </li></ul>
  26. 26. Comentários em Java <ul><li>Em Java, comentários podem ser representados de duas formas: </li></ul><ul><li>// - Significa que o restante da linha é um comentário </li></ul><ul><ul><li>// Imprime mensagem </li></ul></ul><ul><li>/* */ - Significa que o texto entre /* e */ é um comentário </li></ul><ul><ul><li>/* A linha abaixo imprimirá na tela a mensagem Hello World */ </li></ul></ul>
  27. 27. Expressões <ul><li>Expressões avaliam (computam) o valor de uma seqüência de variáveis, valores, operadores e chamada de métodos. </li></ul><ul><li>Exemplos: </li></ul><ul><ul><li>2 </li></ul></ul><ul><ul><li>2 * 4 </li></ul></ul><ul><ul><li>a = 3 </li></ul></ul><ul><ul><li>5 + 2 * 3 - a </li></ul></ul><ul><ul><li>2 * Math.sqrt(9) </li></ul></ul>
  28. 28. Operadores <ul><li>Operadores para números e char: </li></ul><ul><li>Relacionais: </li></ul><ul><ul><li>< > <= >= == != (result booleano) </li></ul></ul><ul><li>Aritméticos: </li></ul><ul><ul><li>+ - * / % (resultado numérico) </li></ul></ul><ul><ul><li>++ -- (incremento/decremento) </li></ul></ul><ul><ul><li>& (and) ^ (xor) | (or) (para bits) </li></ul></ul>
  29. 29. Operadores (II) <ul><li>Operadores lógicos: </li></ul><ul><li>Booleanos: </li></ul><ul><ul><li>= = != (resultado lógico) </li></ul></ul><ul><ul><li>&& (and) || (or) (resultado lógico) </li></ul></ul><ul><li>Atribuição: </li></ul><ul><ul><li>= += -= </li></ul></ul>
  30. 30. Variáveis <ul><li>Local onde as informações são armazenadas dentro de um programa. </li></ul><ul><li>Uma variável tem este nome porque o seu valor pode mudar durante a execução do programa. </li></ul><ul><li>Cada variável possui um tipo que define que tipos de valores ela é capaz de armazenar </li></ul>
  31. 31. Declaração de variáveis <ul><li>Para ser utilizada, uma variável deve ser primeiro declarada </li></ul><ul><li>Declarar uma variável significa criar um local para armazenar o seu valor </li></ul><ul><li>Declaração em Java: </li></ul><ul><ul><li>int numDeSinalizadores = 0; </li></ul></ul>Tipo da variável Valor Inicial Nome da variável
  32. 32. Tipos de dados primitivos <ul><li>Tipo Tamanho Valores Possíveis </li></ul><ul><li>byte 8 bits -128 a 127 </li></ul><ul><li>short 16 bits -32768 a 32767 </li></ul><ul><li>int 32 bits -2147483648 a 2147483647 </li></ul><ul><li>long 64 bits -9223372036854775808 a ... </li></ul><ul><li>float 32 bits -10 38 a 10 38 </li></ul><ul><li>double 64 bits -10 308 a 10 308 </li></ul><ul><li>char 8 bits Qualquer caracter </li></ul><ul><li>boolean 1 byte true ou false </li></ul>
  33. 33. Exercício Variáveis <ul><li>É meio complicado fazer um exercício sobre variáveis sem ter entrada de dados no programa. </li></ul><ul><li>Por isso, veremos agora... </li></ul>
  34. 34. Entrada de dados via teclado <ul><li>Interface gráfica é muito bom, mas existem casos onde necessitamos a entrada de dados diretamente via teclado: </li></ul><ul><ul><li>eletrônica embarcada (microondas, video, TV,...) </li></ul></ul><ul><li>JAVA não é muito bom para isso, pois prioriza interface gráfica. </li></ul>
  35. 35. Entrada de dados via teclado <ul><li>Definindo o dispositivo de entrada: </li></ul><ul><ul><li>BufferedReader teclado = new BufferedReader (new InputStreamReader (System.in)); </li></ul></ul><ul><li>Realizando a leitura do teclado: </li></ul><ul><ul><li>String nome = teclado.readLine(); </li></ul></ul><ul><li>Sempre lê uma string </li></ul><ul><li>Precisa ter exceção “jogada” </li></ul>
  36. 36. “ Jogando” exceções <ul><li>Para usar a entrada via teclado precisamos definir que se algo der errado na leitura, este método retornará uma exceção: </li></ul><ul><ul><li>public static void main(String[] args) </li></ul></ul><ul><ul><li>throws java.io.IOException </li></ul></ul><ul><ul><li>{ </li></ul></ul><ul><ul><li>// aqui vai o programa </li></ul></ul><ul><ul><li> } </li></ul></ul>
  37. 37. Exemplo OlaFulano <ul><li>Ver exemplo OlaFulano.java </li></ul>
  38. 38. E para ler dados numéricos? <ul><li>JAVA só lê strings do teclado. Para ler um dado numérico é necessário ler a string e converter o valor para um número: </li></ul><ul><li>Transformando string em int e float: </li></ul><ul><ul><li>int valorInteiro = Integer.parseInt(stringEntrada); </li></ul></ul><ul><ul><li>float x = new Float(stringEntrada).floatValue(); </li></ul></ul>
  39. 39. Exercício <ul><li>Faça um programa que transforme uma temperatura em graus Celsius para Farenheight. </li></ul><ul><li>Faça um programa que calcule quantos dias você viveu até hoje. </li></ul>
  40. 40. Conclusão <ul><li>A linguagem Java foi criada pela Sun Microsystems no início dos anos 90. </li></ul><ul><li>Os programas escritos em Java podem ser executados em diferentes plataformas: </li></ul><ul><ul><li>“ Write Once - Run Anywhere” </li></ul></ul><ul><li>Um compilador java gera um código chamado Byte Code que é executado pela Máquina Virtual. </li></ul>
  41. 41. Conclusão (II) <ul><li>Os programas criados em Java podem ser aplicações normais ou Applets. </li></ul><ul><li>Applets podem ser executadas diretamente em browsers. </li></ul><ul><li>Entrada e saída via teclado </li></ul><ul><li>Operadores e Variáveis </li></ul>
  42. 42. Exemplos de Applets <ul><li>A 3 dimensional Life System: </li></ul><ul><ul><li>http://www.biocrawler.com/reallife/ </li></ul></ul><ul><li>Visible Human: </li></ul><ul><ul><li>http://www.npac.syr.edu/projects/vishuman/VisibleHuman.html </li></ul></ul><ul><ul><li>ou </li></ul></ul><ul><ul><li>http://www.dhpc.adelaide.edu.au/projects/vishuman2/ </li></ul></ul><ul><li>Dicom Viewer: </li></ul><ul><ul><li>http://wwwusers.imaginet.fr/~sderhy/DicomApplet.html </li></ul></ul><ul><li>Projectile Motion: </li></ul><ul><ul><li>http://www.phys.virginia.edu/classes/109N/more_stuff/Applets/ProjectileMotion/jarapplet.html </li></ul></ul><ul><li>Voxel: </li></ul><ul><ul><li>http://www.javapowered.com/flight.html </li></ul></ul>
  43. 43. Links <ul><li>Sociedade de Usuários Java (SouJava) </li></ul><ul><ul><li>www.soujava.com.br </li></ul></ul><ul><li>JavaWorld </li></ul><ul><ul><li>www.javaworld.com </li></ul></ul><ul><li>JavaSoft (Site oficial do Java) </li></ul><ul><ul><li>www.javasoft.com </li></ul></ul><ul><li>Thinking in Java (On-Line Book) </li></ul><ul><ul><li>http://www.eckelobjects.com/TIJ2/ </li></ul></ul>

×