v

38
Inteligência Artificial Reinaldo Bianchi FEI - Elétrica 2000

description

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

Transcript of v

Page 1: v

Inteligência Artificial

Reinaldo Bianchi

FEI - Elétrica

2000

Page 2: v

3a. Aula

Programação Java Básica

Page 3: v

Vimos na aula passada

Comandos de Decisão Comandos de Repetição Exercícios

Page 4: v

Nesta aula veremos:

Programação Orientada a Objetos– Classes – Objetos– Atributos– Métodos– Variáveis locais e globais

Exercícios

Page 5: v

Programação Orientada a Objetos

Em Java tudo é um objeto. Características da POO:

– Abstração– Modularidade– Encapsulamento – Reutilização de Componentes

Page 6: v

Objetos e Classes de Objetos

Page 7: v

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.

Page 8: v

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.

Page 9: v

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

Page 10: v

Classe Empregado (UML)

Employee

name: stringaddress: stringdateOfBirth: DateemployeeNo: integersocialSecurityNo: stringdepartment: Deptmanager: Employeesalary: integerstatus: {current, left, retired}taxCode: integer. . .

join ()leave ()retire ()changeDetails ()

Page 11: v

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

Page 12: v

Classes - Exemplo

moveForward()moveBackward()turnLeft()turnRight()stop()

positionX : floatpositionY : floatdirection: short

Robot

Page 13: v

Declarando uma Classepublic class Robot {

public float positionX = 0; public float positionY = 0;

public short direction = 0;

void moveForward() {// Comandos

}

void moveBackward() {// Comandos

} ...}

Atributos

Métodos

Page 14: v

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).

Page 15: v

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

Page 16: v

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.

Page 17: v

Métodos - Exemplo

Sem retorno de valor, sem parâmetrosvoid limpaTela() {

} Retorna um valor inteiro, com um

parâmetroint quadrado (int x) {

return ( x * x);

}

Page 18: v

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);

...

Page 19: v

Usando um método: invocação de fora da classe Retorna um valor inteiro, com um

parâmetro

...

z = objeto.quadrado (10);

...

Page 20: v

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.

Page 21: v

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

Page 22: v

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.

Page 23: v

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.

Page 24: v

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) ;

Page 25: v

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 + Bi

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

Page 26: v

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!

Page 27: v

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

Page 28: v

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).

Page 29: v

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!

Page 30: v

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

Page 31: v

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.

Page 32: v

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.

Page 33: v

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.

Page 34: v

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.

Page 35: v

Exemplo de construtor

Ver programa Construtor.java

Exercício: use o ”for” para criar 10 pedras.

Page 36: v

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, ...)

Page 37: v

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.

Page 38: v

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