Você está na página 1de 17

1.

Introduo Programao Orientada a Objetos Introdu Programa Existem duas formas importantes de programao de computadores: A programao estruturada (PE) A programao orientada a objetos (POO) Na programao estruturada, a preocupao maior com as estruturas de controle, ou seja, como construir programas usando as estruturas de sequncia, seleo e repetio. Assim, na programao estruturada, preocupa-se com os algoritmos e cada mdulo que compe um programa um algoritmo especfico. Foi o que se estudou em PC-I, usando a linguagem C. Na programao orientada a objetos, a preocupao maior com os dados que o programa ir tratar. Assim, na programao orientada a objetos, preocupa-se com as estruturas de dados e com as operaes que podem ser executadas sobre estes dados. Na POO, cada estrutura de dados e suas operaes associadas denominada classe. Assim, na POO, cada mdulo que compe um programa uma classe. Em PC-II, vamos usar a linguagem Java.
1

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Exemplo. Programao estruturada (linguagem C)

Define um novo tipo de dados

Podem existir operaes sobre outros tipos de dados.

Cada operao possvel sobre o novo tipo de dados uma funo independente.

A manipulao de dados do novo tipo pode ser feita em qualquer funo do programa.
2

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Exemplo. Programao orientada a objetos (linguagem Java)
Fracao.java

A classe Fracao define a estrutura de dados e as operaes possveis sobre essa estrutura.

Exemplo.java

A classe Exemplo constroi objetos da classe Fracao e usa esses objetos como desejar.

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Na programao orientada a objetos, o principal conceito o de objeto. Mas o que um objeto?
Programao Estruturada int x, y; fracao a, b; x = 5; a.num = 3; a.den = 2;
x e y so variveis do tipo primitivo int, ou seja, x e y so exemplares do tipo int. a e b so variveis de um novo tipo fracao, definido pelo usurio, ou seja, a e b so exemplares do tipo fracao.

Programao Orientada a Objetos int x, y; Fracao a, b; x = 5; a = new Fracao(3,2);

x e y so objetos da classe primitiva Integer, ou seja, x e y so exemplares da classe Integer. a e b so objetos de uma nova classe Fracao, definida pelo usurio, ou seja, a e b so exemplares da classe Fracao. Uma classe define todas as operaes (mtodos) possveis sobre seus objetos.
4

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Um programa Java constitudo por um conjunto de classes. Essas classes podem ser primitivas (Java API) ou construdas pelo usurio. O programa corresponde uma classe executvel: classe que contm o mtodo main().
public class Primeira { public void saudar() { System.out.println("Programao em Java"); } }
Primeira.java

Esta uma classe no executvel.

Programa1.java

public class Programa1 Esta a { classe public static void main(String[] args) executvel, { ou seja, o Primeira p = new Primeira(); programa p.saudar(); em si. } } A execuo do mtodo main() cria um objeto p da classe Primeira. Este objeto chama seu mtodo saudar().
ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Este programa Java constitudo por 2 classes: Primeira e Programa1. Cada uma destas classes deve ser escrita em um arquivo separado. Os nomes dos arquivos devem ser exatamente iguais aos nomes das classes, acrescentando-se a extenso .java, ou seja: Primeira.java e Programa1.java Primeira e Programa1 so identificadores (nomes escolhidos pelo prprio programador). Identificadores podem ser constitudos por letras, dgitos, sublinhados (_) e smbolos de cifro ($) mas no podem iniciar com dgito e no podem conter espaos. Lembrar que Java faz distino entre letras maisculas e minsculas. Uma das classes do programa (a classe executvel, ou seja, a classe que corresponde ao programa em si) deve conter a declarao:
public static void main(String[] args) { ... }

ELFS

A execuo do programa a execuo deste mtodo main().


6

1. Introduo Programao Orientada a Objetos Introdu Programa Cada classe define: Uma estrutura de dados: constituda por um conjunto de campos que caracterizam um particular tipo de dado. Operaes possveis: um conjunto de funes (denominadas mtodos) que implementam as operaes possveis sobre os dados armazenados nos campos. Assim, uma classe rene em uma nica entidade os possveis dados (valores dos campos) e instrues (funes que estabelecem o comportamento computacional) dos objetos da classe. A esta caracterstica especial das classes d-se o nome de encapsulamento. Para facilitar a descrio de classes, vamos adotar a seguinte notao grfica para representar uma classe:
Nome da classe Campos que compem a estrutura de dados da classe Mtodos que estabelecem o comportamento computacional da classe
ELFS

Exemplo: Ponto int CoordX int CoordY + void mostrar()

A classe Ponto compreende os campos CoordX e CoordY, do tipo int (o sinal indica que esses campos so privados) e o mtodo mostrar(), do tipo void (o sinal + indica que esse mtodo pblico).
7

1. Introduo Programao Orientada a Objetos Introdu Programa Um objeto um exemplar de uma classe. Quantos exemplares uma classe pode ter? Exemplo: Ponto p1, p2; Os objetos p1 e p2 so A classe Ponto define
um novo tipo de dado.

exemplares da classe Ponto.

Portanto, se uma classe uma entidade genrica, cada objeto desta classe uma entidade especfica, caracterizado por: Seu estado: o conjunto dos valores especficos atribudos aos campos do objeto; Seu comportamento: o conjunto de mtodos (determinados pela classe) que tratam os dados especficos do objeto.
A partir de uma classe possvel construir um nmero qualquer de objetos, todos com as mesmas caractersticas, ou seja, os mesmos campos e os mesmos mtodos. No entanto, cada objeto possui seu prprio estado e, consequentemente, seu prprio comportamento.
ELFS

Ponto p1: CoordX = 10 CoordY = 15 mostrar()

Ponto p2: CoordX = 5 CoordY = 30 mostrar()


8

1. Introduo Programao Orientada a Objetos Introdu Programa As classes podem formar uma hierarquia (superclasses, classes, subclasses). A construo de uma nova classe faz uso do mecanismo de herana: a nova classe herda campos e mtodos de sua superclasse, podendo possuir, no entanto, caractersticas (campos e mtodos) que lhe so prprias. Por exemplo:
Ponto int CoordX int CoordY + void mostrar()

Circulo int Raio + double area() + void mostrar()

Neste caso, a classe Ponto superclasse de Circulo, que superclasse de Cilindro (ou seja, Cilindro subclasse de Circulo, que subclasse de Ponto). A classe Circulo herda da classe Ponto os campos CoordX e CoordY e o mtodo mostrar(). Mas a classe Circulo tem suas caractersticas prprias: o campo Raio e o mtodo mostrar(), que redefine o mtodo mostrar() herdado. A classe Cilindro possui os campos: CoordX, CoordY, Raio (herdados de Circulo) e Altura (prprio da classe), e os mtodos: area() e mostrar() (herdados de Circulo), alm de volume() e mostrar() (que lhe so prprios). Observar novamente que o mtodo mostrar() da classe Cilindro redefine o mtodo mostrar() herdado da classe Circulo.
9

Cilindro int Altura + double volume() + void mostrar()


ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Voc notou que, nas classes, os campos so privados e os mtodos so pblicos. Por que? As classes so constitudas de uma parte privada (no acessvel fora da classe) e de uma parte pblica (acessvel fora da classe). Um programa pode usar objetos de uma classe, mas este uso controlado pois existem detalhes da classe (pertencentes sua parte privada) que permanecem protegidos de acessos no-autorizados. Esta abordagem de ocultar informaes facilita a reusabilidade das classes: capacidade de desenvolver classes e, com um bom desenvolvimento de suas interfaces (partes pblicas), torn-las disponveis a vrias aplicaes.
Um programa que usa a classe Ponto pode usar o mtodo mostrar(), mas no pode acessar os campos CoordX e CoordY. Por exemplo: Ponto p = new Ponto(5,30); p.mostrar(); p.CoordX = 3;
ELFS

Pode ser necessrio alterar a implementao da classe, por exemplo, modificar o tipo dos campos de int para float, ou modificar a implementao do mtodo mostrar(). Se no houver alterao na forma de acessar a parte pblica da classe, no haver necessidade de alterao nos programas que usam essa classe.
10

1. Introduo Programao Orientada a Objetos Introdu Programa Desenvolvimento de programas Java A linguagem Java est disponvel nas seguintes plataformas de desenvolvimento: Java Standard Edition (JavaSE): plataforma para o desenvolvimento de aplicaes desktop. a plataforma que contm as classes necessrias para o desenvolvimento de qualquer aplicao Java. Java Enterprise Edition (JavaEE): plataforma dedicada ao desenvolvimento de aplicaes para a Internet (aplicaes web). Java Micro Edition (JavaME): plataforma voltada para o desenvolvimento de aplicaes para dispositivos mveis (telefones celulares, palmtops, televisores e aparelhos eletrnicos em geral). Esta plataforma um subconjunto da JavaSE.

ELFS

Neste curso vamos usar o JavaSE.


11

1. Introduo Programao Orientada a Objetos Introdu Programa Para desenvolver programas Java: Passo 1: Instalar a plataforma Java (JavaSE) http://java.sun.com/javase/downloads/ Opo: JDK 6, que corresponde ao JDK (Java Development Kit ) e ao JRE (Java Runtime Environment ).
A pasta docs ser criada quando a documentao for instalada (passo 2).
jdk<version> __________________|____________________ | | | | | | bin demo docs include jre lib ... ___|___ | | bin lib

Passo 2: Instalar a documentao Java http://java.sun.com/javase/downloads/ Opo: Java SE 6 Documentation, que deve ser descompactada na raiz e ir criar a pasta docs, como mostrado acima. Passo 3: Instalar o ambiente de desenvolvimento (JCreator) http://www.jcreator.com importante que o ambiente de desenvolvimento
seja o ltimo a ser instalado, pois depende da plataforma e da documentao.
12

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa JCreator IDE (Integrated Development Environment )

Prestar ateno nesse boto: procurar pela documentao de qualquer classe disponvel na Java API.

Arquivos rea de edio de programas. Notar, pelas abas acima, que pode conter vrios arquivos. Classes

Documentao sobre como usar o IDE e documentao da Java API (Applications Programming Interface)

rea de sada padro

ELFS

13

1. Introduo Programao Orientada a Objetos Introdu Programa Botes importantes da barra de ferramentas:
Executar o programa Parar a execuo do programa ativo

Compilar o arquivo ativo

A opo File | New | File... deve ser usada para criar um novo arquivo-fonte (*.java). Ser preciso escolher (na janela seguinte) uma das Java Classes: Java Class (classe no executvel) Main Class (classe executvel) e, em seguida, o nome do arquivo.
ELFS

14

1. Introduo Programao Orientada a Objetos Introdu Programa O processo de desenvolvimento:


Edio prog.java Compilao (javac) prog.class Carga arquivos .class Verificao arquivos .class Interpretao (java) prog

O compilador corresponde ao programa java.exe, presente na pasta bin da instalao da plataforma JavaSE. Com a compilao so criados arquivos .class (a compilao de um arquivo-fonte pode gerar vrios arquivos .class) O carregador de classes transfere para a memria os arquivos .class, a partir do computador local ou de uma rede (local ou Internet). O verificador assegura que os arquivos .class so vlidos e no violam restries de segurana impostas pela linguagem Java. O interpretador (JVM) executa o arquivo .class referente classe executvel da aplicao.
15

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Um programa Java no executado diretamente pelo hardware de um computador (como um programa executvel em C). Um programa Java executado pela Mquina Virtual Java (JVM-Java Virtual Machine), um programa conhecido como interpretador. Isto d portabilidade ao cdigo do programa, ou seja, o mesmo programa Java pode ser executado em diferentes mquinas sob diferentes sistemas operacionais, pois existem implementaes da JVM para cada plataforma computacional (Linux, Solaris, Windows, etc). A compilao de um programa Java gera instrues em uma linguagem intermediria (conhecida como bytecode) reconhecida pela JVM, em vez de instrues em linguagem de mquina como ocorre para outras linguagens (C, C++, Pascal, etc). A JVM executa os bytecodes numa plataforma computacional especfica.

ELFS

16

1. Introduo Programao Orientada a Objetos Introdu Programa Resumindo:


O programa escrito e armazenado no disco O verificador certifica que os bytecodes so vlidos e no violam restries Java

Editor

Disco

Verificador de Bytecode M

O compilador javac cria os bytecodes e os armazena no disco

Memria Principal

Compilador

Disco
A JVM (que est sendo executada em uma mquina real) interpreta os bytecodes e os executa.

O carregador coloca os bytecodes na memria

Carregador de Classes M

Interpretador M

Disco
ELFS

Memria Principal Memria Principal


17

1. Introduo Programao Orientada a Objetos Introdu Programa Erros muito comuns Erros de Compilao
Primeira.java: cannot resolve symbol symbol: method printl (java.lang.String) location: class java.io.PrintStream System.out.printl("Programao em Java");

O nome do mtodo println foi digitado incorretamente. Quando houver dvidas deve-se consultar a API. Se um arquivo .java contm uma classe pblica os nomes do arquivo e da classe devem ser iguais. O arquivo .class no foi encontrado (possivelmente esteja em um outra pasta). Tentativa de executar uma classe no executvel.
18

Prog1.java: Public class Prog1 must be defined in a file called "Prog1.java"

Can't find class Primeira

Erro de Execuo (Runtime )


java.lang.NoSuchMethodError: main Exception in thread "main"

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Um dos pontos fortes da linguagem Java seu conjunto de classes predefinidas: a Java API (Applications Programming Interface). A Java API est organizada em pastas (denominadas pacotes) e precisa ser constantemente consultada para que se conhea os campos e os mtodos de cada uma das classes predefinidas. Alguns exemplos:
Pacote java.lang java.io java.math javax.swing java.util Descrio Classes muito comuns (este pacote importado automaticamente pelo compilador em todos os programas Java). Classes que permitem a entrada e a sada de dados em arquivos. Classes para executar aritmtica de preciso arbitrria. Classes de componentes GUI Swing para criao e manipulao de sofisticadas interfaces grficas de usurio. Classes de utilitrios como: manipulaes de datas e horas, processamento de nmeros aleatrios, armazenamento e processamento de grandes volumes de dados, quebra de strings em unidades lxicas (tokens).
19

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa A Java API est em: JAVA_HOME\docs\api\index.html
C:\Arquivos de programas\Java\jdk1.6.0

ELFS

20

1. Introduo Programao Orientada a Objetos Introdu Programa Conveno de nomes em um programa Java Nome de Classe: Escrito com a primeira letra em maiscula. Se o nome for composto de vrias palavras, a primeira letra de cada palavra deve ser maiscula (Exemplos: Primeira, TestePrimeira). Nome de Campo: Deve comear com uma palavra escrita em minsculas. Se contiver outras palavras, a primeira letra de cada palavra deve ser maiscula (Exemplos: nome, contaCorrente). Nome de Constante: Deve ser escrito somente em letras maisculas, com as palavras separadas por sublinhados (Exemplos: MAX_TAMANHO, ALTURA_MINIMA, JAVA_HOME). Nome de Mtodo: Deve comear com um verbo no infinitivo, escrito em minsculas. Se contiver outras palavras, a primeira letra de cada palavra deve ser maiscula (Exemplos: saudar, fazerConexao).

ELFS

21

1. Introduo Programao Orientada a Objetos Introdu Programa Exemplo:


Somar.java

import javax.swing.JOptionPane; O programa utiliza mtodos da classe JOptionPane,


que precisa ser importada da Java API.

public class Somar { public static void main( String[] args ) { String pNum,sNum; // nmeros fornecidos int num1,num2,soma; // nmeros convertidos pNum = JOptionPane.showInputDialog("Primeiro inteiro"); sNum = JOptionPane.showInputDialog("Segundo inteiro"); // converter do tipo String para o tipo Integer e somar num1 = Integer.parseInt(pNum); Os mtodos showInputDialog e num2 = Integer.parseInt(sNum); showMessageDialog implementam soma = num1 + num2; caixas de dilogo. JOptionPane.showMessageDialog(null,"A soma " + soma, "Resultado",JOptionPane.PLAIN_MESSAGE); System.exit(0); // terminar a execuo do programa } }
ELFS

O terceiro parmetro do mtodo showMessageDialog o ttulo da caixa de dilogo e o quarto parmetro o tipo de caixa de dilogo.
22

1. Introduo Programao Orientada a Objetos Introdu Programa Algumas classes da Java API A classe Math Contm valores de constantes e vrias funes matemticas. Faz parte do pacote java.lang (includo automaticamente). A classe apresenta duas constantes: Math.PI (com o valor 3.14159265358979323846) Math.E (com o valor 2.71828182845904523536) Alguns mtodos da classe:
Mtodo Math.abs(x) Math.ceil(x) Math.cos(x) Math.exp(x) Math.floor(x)
ELFS

Descrio valor absoluto de x arredonda x para o menor inteiro no menor que x cosseno trigonomtrico de x (x em radianos) exponencial de x (ou seja, ex) arredonda x para o maior inteiro no maior que x
23

1. Introduo Programao Orientada a Objetos Introdu Programa Outros mtodos da classe:


Mtodo Math.log(x) Math.log10(x) Math.max(x, y) Math.min(x, y) Math.pow(x, y) Math.random() Math.round(x) Math.sin(x) Math.sqrt(x) Math.tan(x) Descrio logaritmo natural de x (base e) logaritmo decimal de x (base 10) maior valor entre x e y menor valor entre x e y x elevado potncia y (isto , xy) nmero aleatrio maior ou igual a 0 e menor do que 1 valor de x arredondado para o inteiro mais prximo seno trigonomtrico de x (x em radianos) raiz quadrada de x tangente trigonomtrica de x (x em radianos)

ELFS

24

1. Introduo Programao Orientada a Objetos Introdu Programa A Classe String Os objetos da classe String so imutveis (uma vez criado, um objeto String no pode ser alterado). Toda operao sobre um objeto String gera um novo objeto String. Com a classe String, pode-se criar um objeto diretamente, sem usar o operador new. Exemplo: String nome = "Thais Helena"; A classe oferece diversos mtodos que podem ser usados para manipulao de sequncias de caracteres. Os mtodos devem ser chamados por objetos da classe.

Alguns mtodos da classe:


Mtodo ob.concat(s) ob.replace(x, y) ob.substring(i, j)
ELFS

Descrio concatena o objeto ob ao String s substitui, no objeto ob, todas as ocorrncias do char x pelo char y constroi novo string de ob, com os caracteres de ndices i at j-1
25

1. Introduo Programao Orientada a Objetos Introdu Programa Outros mtodos da classe String:
Mtodo ob.toLowerCase() ob.toUpperCase() ob.endsWith(s) ob.startsWith(p) ob.indexOf(c) ob.lastIndexOf(c) ob.equals(s) ob.compareTo(s) ob.charAt(i) ob.trim() ob.format(s, a) ob.length() ob.isEmpty() Descrio transforma os caracteres alfabticos de ob em letras minsculas transforma os caracteres alfabticos de ob em letras maisculas verifica se o objeto ob termina com o sufixo s verifica se o objeto ob comea com o prefixo p retorna o ndice da primeira ocorrncia do char c no objeto ob retorna o ndice da ltima ocorrncia do char c no objeto ob compara o objeto ob ao String s compara, lexicograficamente, o objeto ob com o String s retorna o caractere de ndice i presente no objeto ob remove caracteres branco do incio e do final do objeto ob retorna ob formatado segundo o formato f e argumentos a retorna o comprimento do objeto ob retorna True, se o comprimento do objeto ob for igual a zero

ELFS

26

1. Introduo Programao Orientada a Objetos Introdu Programa A classe Scanner A classe Scanner permite a leitura de dados (de tipos primitivos ou Strings) a partir de arquivos. System.in o arquivo padro de entrada (teclado) e System.out o arquivo padro de sada (rea de sada do IDE) Um objeto da classe Scanner quebra o contedo do arquivo em tokens (o delimitador padro o espao em branco). possvel mudar o delimitador usado com o mtodo useDelimiter(). O mtodo hasNext () indica se existe ou no um prximo token para ser lido. O mtodo next() retorna um token (ou seja, um objeto da classe String). Outros mtodos da classe Scanner so: hasNextXxx() (indica se o prximo token, caso exista, pode ser interpretado como do tipo Xxx, onde Xxx pode ser Int, Float, Double, Boolean) nextXxx() (retorna um token do tipo Xxx)
27

ELFS

1. Introduo Programao Orientada a Objetos Introdu Programa Exemplo:


Leitura.java

import java.util.*; public class Leitura { public static void main(String[] args) { Scanner in = new Scanner(System.in); System.out.println("Qual o seu nome?"); String nome = in.next(); // Uma nica palavra System.out.println(nome + ", qual sua idade?"); in.reset(); // Usar aps ler strings int idade = in.nextInt(); // L um inteiro System.out.println("Voc diz que tem " + idade + " anos."); System.out.println("Qual seu peso?"); float peso = in.nextFloat(); // L um float System.out.printf("Voc diz que pesa %5.1f kg", peso); } } A classe Scanner usa para um valor do tipo float, o ponto ou a vrgula decimal, dependendo de como est configurada a plataforma computacional usada.
ELFS

28

1. Introduo Programao Orientada a Objetos Introdu Programa Classes Wrapper (Invlucro) Em Java pode-se trabalhar com tipos primitivos (que no so objetos). Para facilitar a manipulao de dados destes tipos existem classes wrapper (do pacote java.lang) para cada tipo primitivo: Boolean (para boolean), Byte (para byte), Character (para char), Short (para short), Integer (para int), Long (para long), Float (para float) e Double (para double). Quase todas estas classes tm dois construtores definidos. Exemplo: Integer(String i) e Integer(int i). Classes wrapper constroem objetos imutveis: uma vez que um valor primitivo atribudo ao objeto esse valor no pode ser alterado. Classes wrapper so teis na converso de tipos pois disponibilizam diversos mtodos para isto (verificar API). Exemplos: int i = 77;
Integer i2 = new Integer(i); int j = i2.intValue(); String s = "77"; int k = Integer.valueOf(s).intValue(); int k = Integer.parseInt(s);
ELFS

29

1. Introduo Programao Orientada a Objetos Introdu Programa A ferramenta Javadoc Javadoc uma ferramenta para gerar APIs em formato HTML a partir de comentrios especiais includos no cdigo-fonte de uma classe. As informaes completas sobre essa ferramenta encontram-se em: http://java.sun.com/javase/6/docs/technotes/guides/javadoc Para gerar a API: Exemplo:
ExemploJavadoc.java import java.util.*; /** * Usado para testar a funcionalidade de <code>javadoc</code> num * arquivo contendo uma nica classe. * * Essa classe mostra muitas das convenes usadas na documentao * disponvel em: * <a href="http://java.sun.com/javase/6/docs/technotes/guides/javadoc"> Javadoc Technology</a>. * <p> * Visite esta pgina sempre que precisar obter mais informaes sobre o * Javadoc. * </p>
ELFS

javadoc [opes] arquivo.java

30

1. Introduo Programao Orientada a Objetos Introdu Programa


* Para que <code>javadoc</code> processe as informaes sobre autor e * verso, necessrio incluir as opes <b>-author</b> e <b>-version</b> * na linha de comando para o <code>javadoc</code>. * @author ELF Senne * @author <a href="mailto:elfsenne@feg.unesp.br">E-mail</a> * @author <a href="http://www.feg.unesp.br/~elfsenne">Internet</a> * @version 1.0 * @since SDK1.6.0 */ public class ExemploJavadoc { /** * Um objeto da classe Date usado para armazenar a data e a hora * em que esse objeto foi criado. Isso pode ser recuperado a partir * do mtodo {@link #getDate}. * <p> * Note que como esse membro da classe <code>private</code>, * <code>javadoc</code> no ir process-lo por default. * <p> * Para que <code>javadoc</code> processe membros privados da classe * necessrio incluir a opo <b>-private</b> na linha de comando * para o <code>javadoc</code>. */ private Date objectDate;

ELFS

31

1. Introduo Programao Orientada a Objetos Introdu Programa


/** * Representa o nmero de exemplares (objetos) dessa classe. * Esse atributo inteiro incrementado de 1 dentro do construtor. */ public static int numberOfInstances = 0; /** * Construtor usado para criar um objeto da classe. Responsvel * por estabelecer a data de criao do objeto, e incrementar o * nmero de exemplares dessa classe. * @param d Um objeto da classe Date que usado para estabelecer * a Data/Hora em que esse objeto foi criado. * @see #numberOfInstances */ public ExemploJavadoc(Date d) { this.objectDate = d; this.numberOfInstances++; } /** * O construtor sem argumentos (construtor padro) ir simplesmente * passar um novo objeto da classe Date para o construtor com * parmetro <i>Date</i>. * @see #ExemploJavadoc(Date) */ public ExemploJavadoc() { this(new Date()); }
ELFS

32

1. Introduo Programao Orientada a Objetos Introdu Programa


/** * Retorna a Data/Hora em que esse objeto foi criado. * @return <code>Date</code> indica quando o exemplar foi criado. * @see #ExemploJavadoc */ public Date getDate() { return this.objectDate; } /** * @param args Um vetor de Strings (parmetros de execuo). * @exception java.lang.InterruptedException * Thrown from the Thread class. */ public static void main(String[] args) throws InterruptedException { ExemploJavadoc jdoc1 = new ExemploJavadoc(); System.out.println("Objeto 1: criado em " + jdoc1.getDate()); System.out.println("Nmero de exemplares = " + numberOfInstances); System.out.println(); // Esperar 3 segundos Thread.sleep(3000); ExemploJavadoc jdoc2 = new ExemploJavadoc(new Date()); System.out.println("Objeto 2: criado em " + jdoc2.getDate()); System.out.println("Nmero de exemplares = " + numberOfInstances); } }
ELFS

33

1. Introduo Programao Orientada a Objetos Introdu Programa

ELFS

34