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,329

Published on

java

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,329
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

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>
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×