Você está na página 1de 8

Programao II TP

Objectos e Classes

Barnes, J.B. e Klling, M. Objects First with Java A Practical Introduction Using BlueJ CAPTULO 1

Objectos e Classes
Escrever um programa informtico numa linguagem orientada por objectos Criar um modelo de uma parte do mundo Construdo com base nos objectos que existem no contexto do problema Necessrio representar objectos no modelo Objectos e Classes
2

Objectos e Classes
Objectos = coisas com caractersticas Classes = descrevem, de forma abstracta, os objectos de um dado tipo (conceitos) Exemplo:
Carro Objecto ou Classe? Os carros tm uma cor, um depsito, O meu carro cinzento, est no parque,
3

Criar Objectos
Utilizar o BlueJ Exemplo
Abrir projecto Shapes Conjunto de classes Criar circle1, circle2 new circle()

Invocao de mtodos
Os objectos tm operaes que os podem manipular: os MTODOS Os mtodos podem ser invocados Como no BlueJ

Parmetros
Os mtodos podem requerer valores na invocao: os PARMETROS Cada mtodo indica que valores necessita
No BlueJ : pedido parmetro(s) numa janela de dilogo quando o mtodo invocado

Informao sobre o mtodo dada pela sua ASSINATURA Os parmetros indicados entre ( )
Para cada parmetro, indicado um tipo e um nome
6

Tipos de Dados
O TIPO define o tipo de dados do parmetro ASSINATURA indica que parmetros so necessrios para executar o mtodo Exemplos:
void moveHorizontal(int distance) void changeColor(String newColor)

Mtodos sem parmetros: ()


void moveLeft()

Java tem vrios tipos de dados


Tipos bsicos: 8 Tipos de objectos:
7

Instncias Mltiplas
No BlueJ Com uma classe, posso criar o n de objectos que quiser (todos do mesmo tipo) Cada objecto uma instncia de uma classe Cada objecto tem a sua posio, a sua cor, Os atributos de um objecto podem ser alterados invocando os mtodos (s altera um objecto) No BlueJ
8

Estado
Ao conjunto dos valores dos atributos de um objecto chama-se ESTADO
Circle: posio, dimetro, Visvel,

No BlueJ, opo Inspect permite inspeccionar estado de um objecto O estado pode ser mudado pelos mtodos Em Java: atributos so chamados campos No BlueJ: inspeccionar objectos da mesma classe
9

O que um objecto?
Todos os objectos da mesma classe tm os mesmos campos:
Quantidade, tipo e nome dos campos so iguais MAS valor dos campos em cada objecto podem ser diferentes

Campos so definidos pela classe


Quantidade, tipo e nome dos campos

Valores dos campos esto nos objectos


Quando objecto criado, este fica automaticamente com campos da classe Valores dos campos dependem do objecto (instncia)

Similar para os mtodos: todos os objectos da mesma classe tm os mesmos mtodos


Mtodos so definidos na classe MAS mtodos so invocados atravs dos objectos, e assim sabem que objecto alterar
10

Uma Classe e seus objectos


Classe define campos e mtodos Cada objecto tem os campos da classe com os seus prprios valores
BlueJ: exemplo de vrios objectos

11

Interaco entre Objectos


BlueJ: projecto picture Um objecto pode criar outros objectos e Os objectos podem invocar os mtodos uns dos outros Em Java, normalmente, o utilizador s manda executar o programa que cria um objecto, que depois cria os outros objectos (directa ou indirectamente)
12

Cdigo Fonte
Cada classe tem associado cdigo fonte, que define a classe:
Como se chama Que campos e mtodos tem O que fazem os mtodos

No BlueJ: opo Open Editor Programar ESCREVER cdigo fonte Vamos utilizar a linguagem de programao JAVA BlueJ: Compilar depois de alterar cdigo fonte

13

Valores de Retorno
BlueJ: projecto lab_classes (estudantes e turnos) Assinatura do mtodo indica se retorna ou no um resultado
String getName() void changeName(String)

VOID indica que mtodo no retorna resultado Assim mtodos servem para
ALTERAR valores dos campos SABER valores dos campos
14

Objectos como Parmetros


BlueJ:

Os objectos podem ser passados como parmetros de mtodos de outros objectos A assinatura do mtodo indica qual a classe que deve ter o objecto
void enrollStudent(Student newStudent)
15

Resumo
Objectos so criados a partir de classes Objectos tm valores em campos que definem o seu estado Os objectos tm mtodos que so utilizados para comunicarmos com eles (para alterar o objecto ou obter informao sobre o objecto) Mtodos podem ter parmetros e retornar resultados com tipos de dados pr-definidos Programar escrever a definio de classes em cdigo fonte (Java) Conceitos fundamentais:
Objecto, classe, mtodo, parmetro, tipo de dados
16