Sie sind auf Seite 1von 74

Introduo ao uso de classes Prof.

Ricardo Linden

Classes e Objetos

Voltando ao passado...
Vamos rever os conceitos de orientao a objetos, de forma genrica, mas nos preparando para implement-los em Java. Seria interessante ler o captulo 4 do livro texto Core Java 2 - V.1 - Fundamentos Cornell, Gary; Horstmann, Cay Ed. Makron Books

Classes e Objetos

Programao Orientada a Objetos


A POO surgiu a partir da idia de identificar dentro de um problema as suas partes componentes, que seriam os objetos. Cada objeto realiza uma srie de atividades e expe para o mundo somente uma pequena interface. Isto quer dizer que o objeto uma abstrao de um determinado processo/entidade.

Classes e Objetos

Abstrao
Abstrao o termos que descreve escolher o que importante sobre nossos objetos quando temos o objetivo de resolver um determinado problema. o processo de descrever as caractersticas essenciais de um objeto no mundo

A cor de um carro no importante quando estamos desenvolvendo um modelo de direo

Entretanto, a cor extremamente importante quando estamos determinando um modelo de fabricao.

Classes e Objetos

Definio Formal
Abstrao Uma abstrao descreve as caractersticas essenciais de um objeto; aquelas que o distinguem de todos os outros tipos de objeto e fornece assim para aquele que analisa um sistema fronteiras conceituais bem definidas. --Booch, 1994

Isto : a abstrao descreve o que ns pensamos que importante em um objeto, os aspectos que nos fazem inclu-lo em nossos sistemas.
Classes e Objetos 5

Classes
O que uma classe? Uma classe um conjunto de objetos que possuem uma estrutura e um comportamento em comum. --Booch 1994 Lula, Fernando Henrique, Itamar e Collor so todos membros da mesma classe Todas as TVs Sony XPD-4582 TVs so da mesma classe

Classes e Objetos

Classes
Ser que Lula e Fernando Henrique so da mesma classe?

Se a abstrao em que estamos pensando presidentes da repblica ento sim. Se a abstrao em que estamos pensando diferencia entre presidentes de partidos distintos, ento no.

O processo de abstrao define se o que uma classe e que objetos fazem parte dela.

Classes e Objetos

Classe
A classe de um objeto tambm chamada s vezes de seu tipo. Em Java, assim como em outras linguagens OO, uma classe um modelo que descreve o que os objetos desta classe podem fazer.

Por exemplo, a classe TV informa quais estados um objeto desta classe pode assumir e a que mtodos ele vai responder.

Cada instncia de uma classe (objeto) possui suas prprias cpias das variveis de estado.

Exceto no caso das variveis estticas (membros de classe)

Classes e Objetos

O que um objeto?
Um objeto no mundo - seja um carro, um avio ou um computador, normalmente so coisas que associamos a substantivos. No necessariamente associamos objetos a coisas concretas. Outros objetos possveis so conta corrente, mensagem de e-mail, um pedido, uma conexo telefnica, etc.

Para qualificar um objeto normalmente precisamos de trs coisas:


Um estado Um comportamento Uma identidade

Classes e Objetos

Objetos
O estado consiste do valor das propriedades de um objeto:

Um avio pode ter seus motores ligados ou desligados, pode estar a uma determinada altura, velocidade e direo, ter assentos ocupados, etc. Uma conexo via internet pode estar ativa ou no, ter mandado e recebido n bytes, estar estabelecida a uma certa velocidade, com um certo protocolo, etc.

Classes e Objetos

10

Classes e Objetos
A classe um molde que podemos usar para criar novas isntncias de objetos (como se fosse uma receita ou uma planta). A partir das receitas, podemos construir novos porta-avies, novas TVs, novos projetores, etc.

Classes e Objetos

11

Classes e Objetos
Receita Classe AircraftCarrier pode possui setVelocidade velocidade setNumAvioes nm. de avies setLeme leme

Instncias (Objetos) Nimitz


setNumAvioes

Vinson
setNumAvioes

setVelocidade

Velocidade NumAvioes Leme


setLeme

setVelocidade

Velocidade NumAvioes Leme


setLeme

Classes e Objetos

12

Relacionamentos entre objetos


Objetos podem ter trs tipos de relacionamentos:

is-a relacionamento do tipo herana. Exemplo : cadeira isa mvel. has-a relacionamento em que um objeto contm outro como parte de seus atributos. Exemplo : pedido has-a item. uses-a relacionamento em que um objeto faz uso de servios providos por outra classe ou objeto. Exemplo: nossos programas at agora uses-a classe JDOptionPane.

Classes e Objetos

13

Mtodos
Mtodos podem ser pensados como sendo os verbos associados aos nossos objetos:

Um pedido pode ser enviado, cancelado, atualizado, etc.


Uma conexo pode ser desfeita, desacelerada, etc. Um avio pode decolar, aterrisar, virar esquerda, etc.

Um mtodo tambm pode ser pensado como uma forma de alterar o estado de um objeto:

Pressionar o boto de liga/desliga muda o estado de uma TV. Move o leme de um navio altera sua direo.The Roosevelt has

Classes e Objetos

14

Mtodos
Mtodos, em uma programao OO bem feita, so a epiderme de um objeto Para acessar ou alterar um estado dentro de um objeto, precisamos usar um mtodo Objeto Projetor setFora Fora Resoluo Brilho setResoluo

setBrilho
Classes e Objetos 15

Encapsulamento
Quando s podemos acessar o estado de um objeto atravs de seus mtodos, dizemos que estamos usando encapsulamento. Por que usar isto?

Impede que outros atribuam valores invlidos para o estado do objeto, como colocar uma resoluo invlida para o projetor ou tentar acelerar o avio para uma velocidade que ele no alcana
Permite que alteremos as estruturas de dados internas de um objeto sem afetar os outros mtodos que o acessam. Por exemplo, imagine que 500 objetos mudassem o valor do canal da TV e ns mudssemos o seu armazenamento de um byte para dois.

Isto tambm chamado de information hiding

Classes e Objetos

16

Encapsulamento
O encapsulamento a base da boa programao orientada a objetos. Fazendo objetos bem encapsulados, ns garantimos sua reusabilidade e a boa manutenibilidade de todos nossos sistemas. Muitos diro que uma boa programao estruturada tambm bem encapsulada e tambm atinge os objetivos de se fazer bons cdigos. Isto verdade, mas a programao imperativa fornece vrios mecanismos para se burlar este tipo de boa prtica, especialmente quando falamos de grandes projetos em que muitos programadores esto envolvidos.

Classes e Objetos

17

Definio Formal
Encapsulamento

Encapsulamento o processo de compartimentalizao dos elementos que constituem a estrutura e o comportamento de um objeto, servindo para separar a interface contratual da sua implementao --Booch 1994
Isto : a forma de garantir que podemos mudar a vontade o funcionamento interno de um objeto sem alterar sua face externa (interface com o mundo)

Classes e Objetos

18

Encapsulamento
Um objeto encapsulado deve ser pensado como uma caixa preta Seus algoritmos internos so escondidos do cliente (aquele que o usa), que apenas pode invocar os mtodos definidos na interface.

Cliente

Mtodos

Dados

Classes e Objetos

19

Encapsulamento
Tendo em vista que nosso objetivo sempre fazer os melhores sistemas possveis, ns vamos sempre procurar criar classes e objetos que respeitem o preceito bsico do encapsulamento.

Todos os slides a seguir partem deste pressuposto!

Classes e Objetos

20

Abstrao e Encapsulamento
A abstrao diz como um objeto deve se relacionar com o mundo.

Uma boa abstao garante que nossas classes fazem aquilo que necessrio para resolver o problema que temos em mos.

O Encapsulamento garante que o mundo no tem nenhuma relao ou conhecimento do que acontece dentro de um objeto.

Um bom encapsulamento garante que nosso cdigo de boa qualidade e pode ser reutilizado.

Classes e Objetos

21

Quais Mtodos?
Como decidir quais mtodos vamos colocar em uma classe? Os mtodo definem o comportamento de um objeto, isto , o que ele capaz de fazer. Os mtodos tambm representam a interface de um objeto com o mundo, ou seja, o que o mundo pode pedir ao objeto. Por exemplo

Uma conta bancria tem uma lista de coisas que podem ser realizadas com ela, como abrir, fechar, depositar, sacar, etc.

Classes e Objetos

22

Identidade
Nem todos os objetos so iguais, mesmo que pertenam a uma mesma classe:

O retroprojetor que estamos usando no o mesmo que est sendo usado em outra turma, mesmo que seja da mesma marca e modelo.

Minha conta bancria no igual do Bill Gates

Classes e Objetos

23

Identidade
Nimitz
setVelocidade Velocidade NumAvioes Leme
setLeme setNumAvioes

Roosevelt
setNumAvioes

Vinson
setNumAvioes

setVelocidade

Velocidade NumAvioes Leme


setLeme

setVelocidade

Velocidade NumAvioes Leme setLeme

Classes e Objetos

24

Definio Formal
Identidade Identidade a propriedade de um objeto que o distingue de forma inequvoca de outro objeto --Booch 1994

De forma geral objetos so identificados de forma unvoca pelas suas variveis de referncia, que so usualmente chamadas de seus nomes Entretanto, cuidado ao chamar assim, pois elas s se apontam para um objeto, no sendo iguais a ele.
Classes e Objetos 25

Resumo de objetos
Objetos possuem

estados um conjunto de caractersticas de cada objeto. Mudar o estado de um objeto no altera o estado de outro objeto. comportamento define o que o objeto capaz de fazer

identidade o que permite que nos referenciemos separadamente a cada objeto.

Encapsulamento esconde do mundo como implementamos o estado que alterado pelo comportamento que lhe apresentamos.

Classes e Objetos

26

Escrevendo as classes...
Agora vamos comear a aplicar estes conceitos dentro do Java. Seria interessante ler o captulo 4 do livro texto Core Java 2 - V.1 - Fundamentos

Cornell, Gary; Horstmann, Cay


Ed. Makron Books

No estou insistindo s por teimosia. Comear a trabalhar com orientao a objetos no fcil! Os conceitos podem ser extremamente confusos primeira vista.
Classes e Objetos 27

Lembrando : Classes
So o elemento bsico da programao orientada a objeto, tanto em Java quanto em qualquer outra LPOO.

A classe define as estruturas (variveis de instncia) de um objeto e sua interface funcional (mtodos).
Uma classe a planta/receita de um objeto

o modelo a partir do qual cada objeto criado.

Por exemplo, a classe String usada para definir objetos String Cada objeto String contem caracteres especficos (seu estado). Cada objeto String pode realizar servios (ter comportamentos) tais como toUpperCase,length, concant, etc.

Classes e Objetos

28

Lembrando : Objetos
Um objeto tem:

estado - caractersticas descritivas (atributos)


comportamento - o que ele pode fazer ou o que pode ser feito com ele (mtodos)

Por exemplo, seja uma moeda que pode ser jogada para cima de forma que resulte em cara ou coroa

O estado o ltimo resultado


O comportamento o fato de poder ser jogada. Note que apenas o comportamento pode mudar o seu estado!
Classes e Objetos 29

Classes
Algumas classes, como a classe String j existem dentro da biblioteca padro de classes do Java.

Ns podemos querer escrever nossas prprias clases para definir objetos especficos para nossas necessidades. Por exemplo, poderamos querer escrever uma classe que simule uma moeda. A partir desta classe ns poderamos criar muitos objetos diferentes representando vrias moedas (mais ou menos como a casa da moeda, que faz um molde e depois funde vrias cpias).
Classes e Objetos 30

Classes
Uma classe contm declaraes de atributos e declaraes de mtodos.
int x, y; char ch;

Declaraes de atributos (dados)

Declaraes de Mtodo

Classes e Objetos

31

Classes
Um dos atributos de uma classe pode ser um objeto de outra classe
String s; int a[];

Declaraes de atributos. Note que ambos so objetos de outras classes

Isto representa um tipo relacionamento especial chamado has-a (possui), que ser discutido com todo o cuidado mais adiante.

Classes e Objetos

32

Escrevendo mtodos
Uma declarao de mtodo especifica o cdigo que ser executado quando o mtodo invocado (chamado) Quando um mtodo invocado, o flxuo de controle vai para dentro dele e executa seu cdigo (exatamente igual a um procedimento ou funo em linguagem imperativa) Quando o mtodo termina, o fluxo retorna para a instruo seguinte quela que chamou-o. A invocao pode retornar um valor ou no, dependendo de como o mtodo foi definido.
Classes e Objetos 33

Fluxo de Controle em um Mtodo


O mtodo chamado pode ser dentro da mesma classe. Neste caso, somente o nome do mtodo necessrio.
compute myMtodo

myMtodo();

Classes e Objetos

34

Fluxo de Controle em um Mtodo


O mtodo chamado pode ser parte de outra classe ou objeto. Neste caso temos que qualificar o nome do mtodo chamado usando o nome do objeto que o possui e o ponto (o chamado dot operator).
main doIt helpMe

obj.doIt();

helpMe();

Classes e Objetos

35

Declarao de Mtodo
Toda declarao de um mtodo comea com o cabealho do mtodo
char calc (int num1, int num2, String message)

Nome do Mtodo Tipo de retorno

Lista de parmetros

A lista de parmetros especifica o tipo e o nome de cada parmetro. O nome de cada parmetro na declarao do mtodo chamado de argumento formal Nenhuma diferena para funes em programao imperativa.
Classes e Objetos 36

Declarao de Mtodo
O cabealho do mtodo seguido pelo corpo do mtodo
char calc (int num1, int num2, String message) { int sum = num1 + num2; char result = message.charAt (sum); return result; } sum e result variveis locais so

A expresso retornada deve ser consistente com o tipo de retorno definido no cabealho.

Elas so criadas cada vez que o mtodo chamado, e so destrudas quando ele termina sua execuo.
37

Classes e Objetos

Statement return
O tipo de retorno de um mtodo indica o tipo do valor que o mtodo retorna para a instruo que o chamou. Um mtodo que no retorna valor nenhum tem um tipo de retorno void O statement return especifica o valor que ser retornado. A expresso deve ser conforme com o tipo definido no cabealho.

Classes e Objetos

38

Retornando objetos
Um mtodo pode retornar qualquer tipo de dados, incluindo de classes que sejam criados por ns.

Dado que todos os objetos so alocados dinamicamente usando o new, um objeto continua a existir mesmo quando o mtodo no qual ele foi criado termina.
Quem morre ao fim do escopo a varivel de referncia. O objeto s vai morrer quando ningum mais faz referncia a ele (automatic garbage collection).

Classes e Objetos

39

Parmetros
Cada vez que um mtodo chamado, os argumentos reais na chamada so copiados para os argumentos formais: ch = obj.calc (25, count, "Hello");

char calc (int num1, int num2, String message) { int sum = num1 + num2; char result = message.charAt (sum); return result; }

Classes e Objetos

40

Escrevendo classes
s vezes um objeto deve interagir com outros objetos do mesmo tipo. Por exemplo, quando queremos comparar duas strings, ns fazemos o seguinte:

if s1.equals(s2);
Um objeto (s1) executa o mtodo e o outro (s2) passado como parmetro

Classes e Objetos

41

Exemplo de Classe
public class Moeda { public final int HEADS = 0; public final int TAILS = 1; private int face; public Moeda () public void flip() public int getFace() {flip();} {face = (int) (Math.random() * 2);} {return face; }

public String toString() {


String faceName; if (face == HEADS) { faceName = "Heads";} else {faceName = "Tails";} return faceName; } }
Classes e Objetos 42

Sobrecarga de Mtodos
A sobrecarga de mtodos o processo de usar o mesmo nome de mtodo em vrios mtodos diferentes. A assinatura de cada verso do mtodo sobrecarregado deve ser nica. A assianatura inclui o nmero, o tipo e a ordem dos parmetros, mas no o tipo de retorno. O compilador deve ser capaz de determinar qual verso do mtdo ser chamada apenas analisando os parmetros que lhe so passados
Classes e Objetos 43

Sobrecarga de Mtodos
Verso 1 float tryMe (int x) { return x + .375; } Verso 2

float tryMe (int x, float y) { return x*y; }

Chamada result = tryMe (25, 4.32)

Classes e Objetos

44

Sobrecarga de Mtodos
Um mtodo que usamos sempre, o println sobrecarregado:
println (String s) println (int i) println (double d)

etc. As linhas a seguir chamam as diferentes verses do mtodo println:


System.out.println ("The total is:"); System.out.println (total);
Classes e Objetos 45

Sobrecarga de Mtodos
Construtores tambm podem ser sobrecarregados. Um construtor sobrecarregado permite que tenhamos vrias maneiras de inicializar um objeto de acordo com o contexto. Como em todos os mtodos, a assinatura de cada construtor deve ser distinta de todos os outros.

Classes e Objetos

46

Lembrando : Construtores
Como vimos na aula 1, um construtor um mtodo especial que chamado para configurar um objeto quando da sua criao. Quando escrever um construtor, lembre-se:

ele te o nome da classe. Ele no retorna valor Ele no tem tipo de retorno, nem mesmo void

nele onde se inicializam as variveis das instncias.

No obrigatrio definir um construtor para uma classe.


Classes e Objetos 47

Construtor
O construtor chamado quando executamos o operador new. Ele um mtodo que inicializa um objeto imediatamente aps a sua criao. Construtores no tem nenhum tipo de retorno (nem mesmo void). A maioria das classes define seus prprios construtores, mas o Java fornece um construtor padro se um no for definido.

Classes e Objetos

48

O operador new
O operador new cria uma nica instncia de uma classe nomeada e retorna uma referncia para este objeto.
Classvariable objectreference = new classname()

O statement composto de dua partes:

(1)

objeto daquela classe (referncia esta que tem valor null)

Classvariable objectreference declara uma varivel de referncia para um

(2) objectreference = new classname() aloca memria para o objeto e atribui aquele endereo varivel de referncia.

Classes e Objetos

49

Variveis de Instncia
A varivel face na classe Moeda denominada varivel de instncia pois cada instncia (objeto) da classe Moeda ter uma cpia separada dele. Uma declarao da classe simplesmente declara o tipo do dado, mas no reserva espao para ele. Cada vez que um objeto da classe Moeda criado, um anova varivel face tambm criada.

Os objetos da classe tm as mesmas definies de mtodos, mas tm espaos de memria prprios.

S assim eles podem ter estados diferentes!


Classes e Objetos 50

Variveis de Instncia
Os dados so parte da declarao dentro de uma classe se sua declarao estiver dentro das chaves ( { } ) da declarao da classe. As declaraes devariveis de instncia tm a mesma sintaxe da declarao de variveis locais. A diferena que as variveis de instncia so declaradas fora do escopo de todos os mtodos de uma classe.

Classes e Objetos

51

Variveis de Instncia
classe moeda
int face;

moeda1
face 0

moeda2
face 1

Classes e Objetos

52

Lembrando : Encapsulamento
Podemos ter duas vistas de um objeto :

interna - a estrutura de seus dados e os algoritmos de seus mtodos. externa - a interao do objeto com outros objetos do sistema.

Do ponto de vista externo, um objeto deve ser uma entidade encapsulada que prov servios especficos, que definem a interface do objeto. Tudo que no for visvel na interface deve ser escondido do resto do sistema.
Classes e Objetos 53

Lembrando : Encapsulamento
Os mtodos de um objeto deve ser os nicos autorizados a modificar seu estado. Devemos fazer com que seja difcil, se no impossvel, que outro objeto possa alterar o objeto sem passar pelos seus mtodos. O usurio, ou cliente, de um objeto deve poder requisitar seus servios (chamar seus mtodos), mas no deve saber como estes servios so realizados.

Classes e Objetos

54

Modificadores de Visibilidade
No Java, ns fazemos o encapsulamento atravs do uso dos modificadores de visibilidade apropriados. Um modificador uma palavra reservada do Java que especifica uma caracterstica particular de um mtodo ou atributo.
Por exemplo, ns usamos o modificador final para definir uma constante.

Java tem trs modificadores de visibilidade bsicos:


public private protected
Classes e Objetos 55

Modificadores de Visibilidade
Membros de uma classe que so declarados com visibilidade public podem ser acessados de qualquer ponto. Membros de uma classe que so declarados com visibilidade private s podem acessados de dentro da prpria classe. Membros declarados sem modificadores de visibilidade tm a chamada visibilidade padro (default), que consiste em poder ser acessados por qualquer classe dentro do mesmo pacote.

Classes e Objetos

56

Modificadores de Visibilidade
De forma geral, nenhum atributo deveria ser declarado como pblico. Mtodos que realizam os servios do objeto devem ser declarados como pblicos, para que possam ser invocados pelos clientes. Estes mtodos pblicos so muitas vezes chamados de mtodos de servio.

Um mtodo criado simplesmente para modularizar seu cdigo e ajudar um mtodo de servio chamado de mtodo de suporte e no deve ter visibilidade publica.
Classes e Objetos 57

Decompondo mtodos
Um mtodo deve ser relativamente pequeno, ou pelo menos, o mais compreesvel possvel. Um mtodo potencialmente grande ou de cdigo compelxo pode ser decomposto em vrios mtodos menores para aumentar sua clareza. Logo, um mtodo de servio pode chamar um ou mais mtodos de apoio para obtermos este resultado.

Classes e Objetos

58

Modificadores de Visibilidade
O ltimo destes modificadores o protected, que impede que qualquer outro objeto que no o dono e suas sub-classes acessem aquele elemento. Suas vantagens vo ficar mais claras quando discutirmos herana, mais adiante. Este modificador e o modificador private garantem encapsulamento, no dependendo da boa vontade de ningum. o

Por isto ns o usamos na classe Moeda. Dado que ns o usamos, precisamos de mtodos para pegar os valores dos atributos. Da a existncia do getFace
Classes e Objetos 59

static
Este modificador faz com que um membro de uma classe seja definido como part da classe, sendo independente de todos os objetos da classe. Ns j vimos isto aplicado a variveis, mas pode ser usado tambm em mtodos (vide o mtodo main) Este modificador faz com que se crie um membro de classe (atributo ou mtodo) que pode ser referenciado sem chamar um objeto, mas sim uma classe. Exemplo: Math.abs

Classes e Objetos

60

main()
O mtodo main() a primeira coisa, aps o construtor da classe, que chamado quando iniciamos um aplicativo Java. O seu formato : public static void main(String args[ ]) Public significa que outras classes e objetos podem cham-lo. Static significa que um mtodo de classe. Void significa que o mtodo main() no retorna um valor. O parmetro do mtodo main() consiste nos valores que lhe so passados por linha de comando.

Classes e Objetos

61

main()
O mtodo main recebe um parmetro, que consiste em um array contendo os parmetros digitados aps o nome da classe sendo executada. O parmetro args tem um comportamento idntico a todos os outros arrays de strings em Java. Exemplo: ao executar java classe1 x y 2.3, temos o seguinte:
args.length=3 args[0]=x args[1]=y args[2]=2.3
Classes e Objetos 62

Dot (.) Operator


O dot(.) operator usado para acessar vaiveis e mtodos dentro de um objeto (se forem de instncia) ou classe (se forem estticos)

NomeObjetoouClasse.nomedavarivel NomeObjetoouClasse.mtodo(lista-de-parmetros)

Pense nisso como um nome e sobrenome. Dentro da famlia todos so conhecidos pelo nome (dentro da prpria classe um avarivel/mtodo conhecido s pelo seu nome), mas fora da famlia precisamos do nome e do sobrenome (fora da classe/objeto precisamos do dot operator)
Classes e Objetos 63

Manipulando uma Pessoa


Vamos analisar os conceitos que vimos at agora analisando a classe Pessoa. Em uma abstrao possvel, um objeto da classe pessoa poderia ser da seguinte forma:

nome

age

Sobrenome
Classes e Objetos 64

Manipulando uma Pessoa


Barreira de encapsulamento nome

idade

Sobrenome

A barreira do encapsulamento protege os atributos da classe Pessoa de interferncia externa indevida


Classes e Objetos 65

Manipulando uma Pessoa


Criamos ento mtodos para que possamos alterar atributos dentro de um objeto encapsulado.

Alteradores (Mutators)

setnome

setIdade setSobrenome

Classes e Objetos

66

Manipulando uma Pessoa


Mtodos so criados para permitir leitura de fora de um objeto encapsulado.

Leitores (Getters) getnome

getIdade getSobrenome

Classes e Objetos

67

Manipulando uma Pessoa


Para criar uma instncia da classe Pessoa, ns podemos executar a seguinte instruo dentro de qualquer mtodo, como por exemplo o mtodo main ( ): Person person1 = new Person( ) ;

person1 uma varivel de referncia para um objeto da classe Pessoa, ou para simplificar, um objeto da classe Pessoa.

Classes e Objetos

68

Manipulando uma Pessoa


getIdade getnome

setIdade

setnome

getSobrenome

setSobrenome

Person1
Classes e Objetos 69

Manipulando uma Pessoa


Lembre-se : o operador new cria uma nica instncia de uma classe nomeada e retorna uma referncia a este objeto Sua sintaxe : Classname variable = new Classname( ) A varivel de referncia criada de escopo local, mas o objeto para o qual ela aponta no!

Classes e Objetos

70

Manipulando uma Pessoa


O dot (.) operator usado para acessar mtodos dentro de um objeto (isto , mtodos que pertencem a um objeto e a ele se aplicam) Sua sintaxe : NomedoObjeto.mtodo (lista-de-parmetros)

Classes e Objetos

71

Exemplo de alteradores:Classe Pessoa


getIdade setnome

setIdade

getnome person1.setnome (John); person1.setSobrenome (Smith); person1.setIdade (21); setSobrenome


Classes e Objetos 72

getSobrenome

Exemplo de leitores: Classe Pessoa


getIdade setnome

setIdade

getnome

getSobrenome

setSobrenome
String s=person1.getnome; String s2=person1.getSobrenome; int i=person1.getIdade;
Classes e Objetos 73

Exemplo de Classe
public class Ponto {

Propriedades encapsuladas dentro do objeto. S com mtodos protected int x, y; apropriados elas podem ser acessadas de fora do objeto.
public Ponto() {setPonto( 0, 0 );}
public Ponto( int xCoordinate, int yCoordinate ) {setPonto( xCoordinate, yCoordinate );} public void setPonto( int xCoordinate, int yCoordinate ) { x = xCoordinate; y = yCoordinate; } public int getX() public int getY() {return x;} {return y;}

Construtor polimrfico como as assinaturas so diferentes, durante a execuo o construtor apropriado chamado. Mtodos alteradores nica maneira de alterar o valor de x e y de fora do objeto

Mtodos leitores so pblicos e do mesmo tipo de x e y. nica maneira de um objeto externo classe Ponto obter o valor de x e y.

Classes e Objetos

74

Das könnte Ihnen auch gefallen