v
Upcoming SlideShare
Loading in...5
×
 

v

on

  • 939 views

java http://www.dm.ufscar.br/~waldeck/curso/java/

java http://www.dm.ufscar.br/~waldeck/curso/java/

Statistics

Views

Total Views
939
Views on SlideShare
938
Embed Views
1

Actions

Likes
0
Downloads
9
Comments
0

1 Embed 1

http://www.slideshare.net 1

Accessibility

Categories

Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

v v Presentation Transcript

  • Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000
  • 3a. Aula Programação Java Básica
  • Vimos na aula passada
    • Comandos de Decisão
    • Comandos de Repetição
    • Exercícios
  • Nesta aula veremos:
    • Programação Orientada a Objetos
      • Classes
      • Objetos
      • Atributos
      • Métodos
      • Variáveis locais e globais
    • Exercícios
  • Programação Orientada a Objetos
    • Em Java tudo é um objeto.
    • Características da POO:
      • Abstração
      • Modularidade
      • Encapsulamento
      • Reutilização de Componentes
  • Objetos e Classes de Objetos
  • Objetos e Classes de Objetos
    • Objetos são entidades em um sistema de software que representam instâncias de entidades do mundo real e de algum sistema.
    • Classes são templates (formas) de objetos. Elas são usadas para criar objetos.
    • Classes podem herdar atributos e serviços de outras classes.
  • Objetos
    • Um objeto é uma entidade que possui um estado e define um conjunto de operações que modificam este estado.
      • O estado é representado por um conjunto de atributos.
      • As operações associadas com o objeto provêm serviços para outros objetos (clientes), os quais requisitam serviço quando alguma computação é necessária.
  • Classes de objetos
    • Objetos são criados de acordo com uma definição feita por uma classe de objetos .
    • Uma definição de classe serve como forma ( template ) para os objetos. Ela inclui declarações para todos os atributos e serviços que devem estar associados a um objeto daquela classe.
    • Classes são Fábricas de objetos
  • Classe Empregado (UML)
  • Classes
    • Todo objeto pertence a uma classe.
    • Quando definimos uma classe de objetos, estamos na verdade definindo que propriedades e métodos o objeto possui, ou seja, que informações ele deve armazenar e que ações ele poderá executar.
    • Uma classe contém:
      • atributos e métodos
  • Classes - Exemplo moveForward() moveBackward() turnLeft() turnRight() stop() positionX : float positionY : float direction: short Robot
  • Declarando uma Classe
    • public class Robot {
    • public float positionX = 0;
    • public float positionY = 0;
    • public short direction = 0;
    • void moveForward() {
    • // Comandos
    • }
    • void moveBackward() {
    • // Comandos
    • }
    • ...
    • }
    Atributos Métodos
  • Atributos (ou Fields )
    • Atributos são variáveis em que o objeto armazena informações
    • Lembram:
      • os campos de dados de um banco de dados
      • os campos de uma estrutura ( struct em C ou record em Pascal).
  • Métodos
    • Um método é uma seqüência de declarações e comandos executáveis encapsulados como se fossem um mini-programa.
    • Em outras linguagens, são chamados de:
      • sub-rotinas
      • procedimentos
      • funções
  • Métodos (II)
    • Em Java, todo comando deve estar dentro de um método.
    • Métodos definem o que os objetos são capazes de fazer.
    • Características:
      • Podem receber uma lista de parâmetros
      • Podem retornar um valor.
  • Métodos - Exemplo
    • Sem retorno de valor, sem parâmetros
      • void limpaTela() {
      • }
    • Retorna um valor inteiro, com um parâmetro
      • int quadrado (int x) {
      • return ( x * x);
      • }
  • Usando um método: invocação de dentro da classe
    • Sem retorno de valor, sem parâmetros
      • ...
      • limpaTela();
      • ...
    • Retorna um valor inteiro, com um parâmetro
      • ...
      • z = quadrado (10);
      • ...
  • Usando um método: invocação de fora da classe
    • Retorna um valor inteiro, com um parâmetro
      • ...
      • z = objeto.quadrado (10);
      • ...
  • Objetos = Instância de uma Classe
    • Ao definirmos uma classe, estamos apenas criando uma descrição do que objetos daquela classe são capazes de fazer.
    • A partir desta definição podemos criar objetos que serão capazes de realizar o que foi definido
    • O ato de criar objetos a partir de uma classe é chamado instanciação.
  • Exemplo de Objeto
    • public class RoboticTeam {
    • Robot C3-PELE = new Robot();
    • Robot R2D-DUNGA = new Robot();
    • Robot ROBOMÁRIO = new Robot();
    • void ataque() {
    • }
    • void defesa() {
    • }
    • }
    Objetos
  • Comunicação entre Objetos (I)
    • Conceitualmente, objetos se comunicam através da troca de mensagens.
    • Mensagens definem:
      • O nome do serviço requisitado
      • A informação necessária para a execução do serviço
      • O nome do requisitante.
  • Comunicação entre Objetos (II)
    • Na prática, mensagens são implementadas como chamadas de função.
      • Nome = o nome do procedimento.
      • Informação = a lista de parâmetros.
      • Requisitante = o procedimento que realizou a chamada.
  • Exemplos de mensagens.
    • // Call a method associated with a buffer // object that returns the next value // in the buffer
    • v = circularBuffer.Get () ;
    • // Call the method associated with a // thermostat object that sets the // temperature to be maintained
    • thermostat.setTemp (20) ;
  • Exercício
    • Crie uma classe Termômetro, que possui um método que transforme graus Farenheigh em graus Celcius.
    • Um número complexo possui duas partes: a parte real e a imaginária:
      • A + B i
    • Crie uma classe de números complexos, com métodos de adição, subtração, encontrar o conjugado, ...
    • http://albert.math.uiuc.edu/complx1/complx1.htm
  • Variáveis Locais x Globais
    • Variável Local:
      • Definida dentro de um método.
      • Não pode ser usada por outros métodos.
    • Variável Global:
      • Definida como atributo de uma classe.
      • Pode ser usada dentro de qualquer método da classe e sub-classes.
    • Regra: Sempre que possível use variáveis locais!
  • Modificadores de Acesso
    • Palavras, que são colocadas na frente da definição de qualquer membro de uma classe (atributos ou métodos).
    • Especificam o acesso a uma definição em particular.
      • “ friend ”
      • public
      • private
      • protected
  • Tipos de modificadores
    • “ friend ”:
      • é o default , portanto, não precisa ser declarado.
      • Permite acesso a partir das classes do mesmo arquivo.
    • public :
      • Permite acesso irrestrito a partir de qualquer classe (mesmo que estejam em outros arquivos).
  • Tipos de modificadores
    • protected :
      • Permite acesso a partir de uma classe que é herdeira de outra
      • Igual a “friendly” para classes da mesma “família”.
    • private :
      • Somente os membros da classe específica possuem acesso.
      • Acesso negado a todos os outros!
  • Modificadores de Classes
    • Palavras, que são colocadas na frente da definição das classes.
    • Especificam o acesso a uma classe (como foi feito aos métodos)
    • Classes podem ser apenas:
      • public
      • abstract: não pode ser instanciada
      • final: não pode ter herdeiras
  • Observação
    • Em Java, pode haver apenas uma classe public por arquivo!
    • O nome do arquivo deve ser exatamente igual ao nome da classe public .
  • Inicialização e Finalização de objetos
    • Construtores:
      • Métodos usados para inicializar os atributos de um objeto recém criado
    • Finalizadores (Destrutores):
      • Métodos usados para “limpeza” ao final do uso do objeto.
  • Características dos Construtores
    • Possuem o mesmo nome da classe.
    • São chamados automaticamente quando declara-se um novo objeto.
    • Podem executar comandos.
    • Não retornam valores.
    • É um método “ public ”.
    • Pode haver mais de um construtor para uma mesma classe.
  • Exemplo - Construtores
    • public Robot(int posX, int posY) {
    • street = posX;
    • avenue = posY;
    • }
    • public Robot() {
    • street = avenue = 0;
    • }
    • Se instanciarmos o objeto desta forma:
    • Robot karel = new Robot(2,3);
    • o primeiro construtor é executado.
  • Exemplo de construtor
    • Ver programa Construtor.java
    • Exercício: use o ”for” para criar 10 pedras.
  • Finalizando um programa
    • Para finalizar um programa, podemos criar uma função especial:
    • finalize();
    • É executada quando o sistema realiza a “garbage collection”
    • É um método protected void
    • Usada para qualquer tipo de “limpeza” ao final da existência de um objeto (fechar arquivos, portas comm, ...)
  • Exercícios
    • Crie um objeto círculo. Quais os seus atributos e métodos? Implemente todos os métodos.
    • Crie um objeto polígono. Quais os seus atributos e métodos? Implemente todos os métodos.
    • Implemente um objeto calculadora.
  • Exercícios para entregar na próxima aula:
    • Exercícios de Programação do livro “Programming with Java” de John Hubbard:
    • Capítulo 5 (Métodos - página 98-100):
      • 5.1, 5.3, 5.7,
    • Capítulo 6 (Classes páginas 84 - 85):
      • 6.1, 6.2, 6.20, 6.21, 6.22, 6.23, 6.24