• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
v
 

v

on

  • 887 views

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

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

Statistics

Views

Total Views
887
Views on SlideShare
886
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