Você está na página 1de 76

1

3
Introduo a classes e objetos

2005 by Pearson Education do Brasil

OBJETIVOS
Neste captulo, voc aprender: O que so classes, objetos, mtodos e variveis de instncia. Como declarar uma classe e utiliz-la para criar um objeto. Como declarar mtodos em uma classe para implementar os comportamentos da classe. Como declarar variveis de instncia em uma classe para implementar os atributos da classe. Como chamar o mtodo de um objeto para fazer esse mtodo realizar sua tarefa. As diferenas entre variveis de instncia de uma classe e variveis locais de um mtodo. Como utilizar um construtor para assegurar que os dados de um objeto sejam inicializados quando o objeto for criado. As diferenas entre tipos por referncia primitivos.
2005 by Pearson Education do Brasil

3.1 Introduo

Classes Nmeros de ponto flutuante

2005 by Pearson Education do Brasil

3.2 Classes, objetos, mtodos e variveis de instncia


Classes fornecem um ou mais mtodos. Mtodos representam tarefas em um programa:
O mtodo descreve os mecanismos que realmente realizam suas tarefas. Oculta do usurio as tarefas complexas que ele realiza. Chamada de mtodo instrui o mtodo a realizar sua tarefa.

2005 by Pearson Education do Brasil

3.2 Classes, objetos, mtodos e variveis de instncia (Continuao)

Classes contm um ou mais atributos:


Especificados pelas variveis de instncia. Transportados com o objeto medida que so utilizados.

2005 by Pearson Education do Brasil

3.3 Declarando uma classe com um mtodo e instanciando um objeto de uma classe
Cada declarao de classe que inicia com a palavra-chave public deve ser armazenada em um arquivo que tenha o mesmo nome da classe e terminar com a extenso de nome do arquivo .java.

2005 by Pearson Education do Brasil

Classe GradeBook A palavra-chave public um modificador de acesso. Declaraes de classe incluem:


Modificador de acesso. Palavra-chave class. Par de chaves esquerda e direita.

2005 by Pearson Education do Brasil

Class GradeBook

Declaraes de mtodo:
Palavra-chave public indica o mtodo disponvel ao pblico. Palavra-chave void indica nenhum tipo de retorno. Modificador de acesso, tipo de retorno, nome do mtodo e parnteses compem o cabealho do mtodo.
2005 by Pearson Education do Brasil

Erro comum de programao 3.1

Declarar mais de uma classe public no mesmo arquivo um erro de compilao.

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11

// Fig. 3.1: GradeBook.java // Declarao de classe com um mtodo.

10

Resumo
GradeBook.jav a Imprime linha do texto na sada

public class GradeBook {

// exibe uma mensagem de boas-vindas para o usurio GradeBook public void displayMessage() { System.out.println( "Welcome to the Grade Book!" ); } // fim do mtodo displayMessage

12 } // fim da classe GradeBook

2005 by Pearson Education do Brasil

11

Classe GradeBookTest
O Java extensvel:
Os programadores podem criar novas classes.

Expresso de criao de instncia de classe:


Palavra-chave new. Ento, nome da classe a criar e os parnteses.

Chamando um mtodo:
Nome de objeto, da o separador ponto (.). Depois, o nome e os parnteses do mtodo.

2005 by Pearson Education do Brasil

12

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

// Fig. 3.2: GradeBookTest.java // Cria um objeto GradeBook e chama seu mtodo displayMessage.

Resumo
GradeBookTest.Java

public class GradeBookTest { // mtodo main inicia a execuo de programa public static void main( String args[] ) { // cria um objeto GradeBook e o atribui a

Utiliza a expresso de criao de instncia de classe para criar o objeto da classe GradeBook myGradeBook Chama o mtodo displayMessage utilizando o objeto GradeBook

GradeBook myGradeBook = new GradeBook();

// chama mtodo displayMessage de myGradeBook myGradeBook.displayMessage(); } // fim de main

16 } // fim da classe GradeBookTest Welcome to the Grade Book!

2005 by Pearson Education do Brasil

Compilando um aplicativo com mltiplas classes Compilando mltiplas classes:


Lista cada arquivo .java separadamente, divididos por espaos. Compila com *.java para compilar todos os arquivos .java nesse diretrio.

13

2005 by Pearson Education do Brasil

Diagrama de classe UML para a classe GradeBook

14

Diagramas de classe UML:


Compartimento superior contm o nome da classe. Compartimento intermedirio contm atributos ou variveis de instncia da classe. Compartimento inferior contm operaes ou mtodos da classe.
Sinal de adio indica os mtodos public.

2005 by Pearson Education do Brasil

15

Figura 3.3 | Diagrama de classe UML indicando que a classe GradeBook tem uma

operao public displayMessage.

2005 by Pearson Education do Brasil

3.4 Declarando um mtodo com um parmetro Parmetros de mtodo:


Informaes adicionais passadas para um mtodo. Informaes adicionais fornecidas na chamada de mtodo com argumentos.

16

2005 by Pearson Education do Brasil

3.4 Declarando um mtodo com um parmetro (Continuao) Mtodos Scanner:


nextLine l a prxima linha da entrada. next l a prxima palavra da entrada.

17

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11 12

// Fig. 3.4: GradeBook.java // Declarao de classe com um mtodo que tem um parmetro.

18

Resumo
GradeBook .java

public class GradeBook { // exibe uma mensagem de boas-vindas para o usurio GradeBook public void displayMessage( String courseName ) { System.out.printf( "Welcome to the grade book for\n%s!\n", courseName ); } // fim do mtodo displayMessage

Chama o mtodo printf com o argumento courseName

13 } // fim da classe GradeBook

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27

// Fig. 3.5: GradeBookTest.java // Create GradeBook object and pass a String to // its displayMessage method. import java.util.Scanner; // program uses Scanner public class GradeBookTest { // main method begins program execution public static void main( String args[] ) { // create Scanner to obtain input from command window Scanner input = new Scanner( System.in );

19

Resumo
GradeB \ ookTes t.Java

// create a GradeBook object and assign it to myGradeBook Chama o mtodo nextLine para GradeBook myGradeBook = new GradeBook(); ler uma linha de entrada // prompt for and input course name System.out.println( "Please enter the course name:" ); String nameOfCourse = input.nextLine(); // read a line of text Chama displayMessage System.out.println(); // outputs a blank line

com um

argumento

// call myGradeBook's displayMessage method // and pass nameOfCourse as an argument myGradeBook.displayMessage( nameOfCourse ); } // end main } // end class GradeBookTest

Please enter the course name: CS101 Introduction to Java Programming Welcome to the grade book for CS101 Introduction to Java Programming!

2005 by Pearson Education do Brasil

20

Observao de engenharia de software 3.1


Normalmente, os objetos so criados com new. Uma exceo um literal de string que est entre aspas, como hello. Os literais de string so referncias a objetos String que so criados implicitamente pelo Java.

2005 by Pearson Education do Brasil

Mais sobre argumentos e parmetros Parmetros especificados na lista de parmetros de um mtodo:


Parte do cabealho do mtodo. Utiliza uma lista separada por vrgulas.

21

2005 by Pearson Education do Brasil

22

Erro comum de programao 3.2

Ocorrer um erro de compilao se o nmero de argumentos em uma chamada de mtodo no corresponder ao nmero de parmetros na declarao de mtodo.

2005 by Pearson Education do Brasil

23

Erro comum de programao 3.3


Ocorrer um erro de compilao se os tipos dos argumentos em uma chamada de mtodo no forem consistentes com os tipos dos parmetros correspondentes na declarao do mtodo.

2005 by Pearson Education do Brasil

Diagrama de classe UML para a classe GradeBook

24

Diagrama de classe UML:


Parmetros especificados por nome de parmetro seguido por dois-pontos e pelo tipo de parmetro nos parnteses que seguem o nome da operao.

2005 by Pearson Education do Brasil

25

Figura 3.6 | Diagrama de classe UML indicando que a classe GradeBook tem uma

operao displayMessage com um parmetro courseName do tipo UML String.

2005 by Pearson Education do Brasil

26

Notas sobre as declaraes Import


java.lang implicitamente importada em todo programa. Pacote-padro: Contm classes compiladas no mesmo diretrio. Implicitamente importada para o cdigofonte dos outros arquivos no diretrio. Empacota nomes desnecessrios caso sejam utilizados nomes completamente qualificados.

2005 by Pearson Education do Brasil

27

Observao de engenharia de software 3.2


O compilador Java no exigir as declaraes import em um arquivo de cdigo-fonte Java caso o nome de classe completamente qualificado seja especificado toda vez que um nome de classe for utilizado no cdigo-fonte. Mas a maioria dos programadores em Java considera incmoda a utilizao dos nomes completamente qualificados e, em vez disso, eles preferem utilizar declaraes import.

2005 by Pearson Education do Brasil

3.5 Variveis de instncia, mtodos set e get


Variveis declaradas no corpo do mtodo:
Conhecidas como variveis locais. Somente podem ser utilizadas nesse mtodo.

28

Variveis declaradas em uma declarao de classe:


Chamadas de campos ou variveis de instncia. Cada objeto (instncia) da classe tem uma instncia separada da varivel.

2005 by Pearson Education do Brasil

29
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public class GradeBook { private String courseName; // nome do curos para este GradeBook // mtodo para configurar o nome do curso public void setCourseName( String name ) { courseName = name; // armazena o nome do curso } // fim do mtodo setCourseName // mtodo para recuperar o nome do curso public String getCourseName() { return courseName; } // fim do mtodo getCourseName // exibe uma mensagem de boas-vindas para o usurio GradeBook public void displayMessage() { // essa instruo chama getCourseName para obter o // nome do curso que esse GradeBook representa System.out.printf( "Welcome to the grade book for\n%s!\n", getCourseName() ); } // fim do mtodo displayMessage // Fig. 3.7: GradeBook.java // Classe GradeBook que contm uma varivel de instncia courseName // e mtodos para configurar e obter seu valor.

Resumo
GradeBook.java

Varivel de instncia courseName

Mtodo set para courseName

Mtodo get para courseName

Chama o mtodo get

29 30 } // fim da classe GradeBook

2005 by Pearson Education do Brasil

Modificadores de acesso public e private


Palavra-chave private:
Utilizada na maioria das variveis de instncia. Variveis e mtodos private so acessveis somente aos mtodos da classe em que eles so declarados. Declarar variveis de instncia como private conhecido como ocultamento de dados.

30

Tipo de retorno:
Indica itens retornados pelo mtodo. Declarado no cabealho do mtodo.
2005 by Pearson Education do Brasil

31

Observao de engenharia de software 3.3


Anteceda cada campo e declarao de mtodo com um modificador de acesso. Como regra geral, as variveis de instncia devem ser declaradas private e os mtodos devem ser declarados public. (Veremos que apropriado declarar certos mtodos private, se eles forem acessados apenas por outros mtodos da classe.)

2005 by Pearson Education do Brasil

32

Boa prtica de programao 3.1


Preferimos listar os campos de uma classe primeiro para que, ao ler o cdigo, voc veja os nomes e tipos das variveis antes de coloc-los em uso nos mtodos da classe. possvel listar os campos da classe em qualquer lugar na classe fora de suas declaraes de mtodo, mas sua disperso tende a resultar em um cdigo de difcil leitura.

2005 by Pearson Education do Brasil

33

Boa prtica de programao 3.2

Coloque uma linha em branco entre as declaraes de mtodo para separar os mtodos e aprimorar a legibilidade do programa.

2005 by Pearson Education do Brasil

Classe GradeBookTest que demonstra a classe GradeBook Valor inicial padro:


Fornecido a todos os campos noinicializados. Igual a null para Strings.

34

2005 by Pearson Education do Brasil

35

Mtodos set e get Variveis de instncia private:


No podem ser acessadas diretamente pelos clientes do objeto. Utilize mtodos set para alterar o valor. Utilize mtodos get para recuperar o valor.

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

// Fig. 3.8: GradeBookTest.java // Cria e manipula um objeto GradeBook. import java.util.Scanner; // programa utiliza Scanner public class GradeBookTest { // mtodo main inicia a execuo de programa public static void main( String args[] ) { // cria Scanner para obter entrada a partir da janela de comando Scanner input = new Scanner( System.in ); // cria um objeto GradeBook e o atribui a myGradeBook GradeBook myGradeBook = new GradeBook(); // exibe valor inicial de courseName System.out.printf( "Initial course name is: %s\n\n", myGradeBook.getCourseName() );

36

Resumo
GradeBookTest. Java (1 de 2)

Chame o mtodo get para courseName

2005 by Pearson Education do Brasil

20 21 22 23 24 25 26 27 28 29

// solicita e l o nome do curso System.out.println( "Please enter the course name:" ); String theName = input.nextLine(); // l uma linha de texto myGradeBook.setCourseName( theName ); // configura o nome do curso System.out.println(); // gera sada de uma linha em branco

37

Resumo
GradeBookTest .Java (2 de 2)

Chama o mtodo set para courseName

// exibe mensagem de boas-vindas depois de especificar nome do curso myGradeBook.displayMessage(); } // fim de main

Chama displayMessage

30 } // fim da classe GradeBookTest Initial course name is: null Please enter the course name: CS101 Introduction to Java Programming Welcome to the grade book for CS101 Introduction to Java Programming!

2005 by Pearson Education do Brasil

Diagrama de classe UML de GradeBook com uma varivel de instncia e os mtodos set e get
Atributos:
Listado no compartimento intermedirio da classe. Nome do atributo seguido por um caractere de dois-pontos e o tipo de atributo.

38

Tipo de retorno de um mtodo:


Indicado com um dois-pontos e tipo de retorno aps os parnteses, que se seguem ao nome da operao.

2005 by Pearson Education do Brasil

39

Figura 3.9 | Diagrama de classe UML indicando que a classe GradeBook tem um atributo

courseName de tipo UML String e trs operaes setCourseName (com um parmetro de nome de tipo UML String), getCourseName (retorna o tipo UML String) e displayMessage.

2005 by Pearson Education do Brasil

Tipos primitivos versus tipos por referncia


Tipos no Java:
Primitivos:
boolean, byte, char, short, int, long, float, double.

40

Referncia (s vezes chamada tipos noprimitivos):


Objetos. Valor inicial padro de null. Utilizado para invocar os mtodos de um objeto.

2005 by Pearson Education do Brasil

41

Observao de engenharia de software 3.4


O tipo declarado de uma varivel (por exemplo, int, double ou GradeBook) indica se a varivel de um tipo primitivo ou tipo por referncia. Se o tipo de uma varivel no for um dos oito tipos primitivos, ento ele um tipo por referncia. (Por exemplo, Account account1 indica que account1 uma referncia a um objeto Account.)

2005 by Pearson Education do Brasil

3.7 Inicializando objetos com construtores


Construtores:
Inicializam um objeto de uma classe. O Java requer um construtor para cada classe. O Java fornecer um construtor sem argumentos-padro, caso nenhum seja fornecido. Chamados quando a palavra-chave new precedida pelo nome e parnteses da classe.

42

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24

// Fig. 3.10: GradeBook.java // Classe GradeBook com um construtor para inicializar o nome de um curso. public class GradeBook { private String courseName; // nome do curso para esse GradeBook // construtor inicializa courseName com String fornecido como argumento public GradeBook( String name ) { courseName = name; // inicializa courseName } // fim do construtor // mtodo para configurar o nome do curso public void setCourseName( String name ) { courseName = name; // armazena o nome do curso } // fim do mtodo setCourseName // mtodo para recuperar o nome do curso public String getCourseName() { return courseName; } // fim do mtodo getCourseName

43

Resumo
GradeBook. java (1 de 2)

Constructor to initialize courseName variable

2005 by Pearson Education do Brasil

25 26 27 28 29 30 31 32 33 34 35 } // fim da classe GradeBook // exibe uma mensagem de boas-vindas para o usurio GradeBook public void displayMessage() { // essa instruo chama getCourseName para obter o // nome do curso que esse GradeBook representa System.out.printf( "Welcome to the grade book for\n%s!\n", getCourseName() ); } // fim do mtodo displayMessage

44

Resumo
GradeBook.j ava (2 de 2)

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22

// Fig. 3.11: GradeBookTest.java // GradeBook constructor used to specify the course name at the // time each GradeBook object is created. public class GradeBookTest { // main method begins program execution public static void main( String args[] ) { // create GradeBook object GradeBook gradeBook1 = new GradeBook( "CS101 Introduction to Java Programming" ); GradeBook gradeBook2 = new GradeBook( "CS102 Data Structures in Java" );

45

Resumo
GradeBookTest.Java

Chama o construtor para criar o primeiro objeto GradeBook

Cria o segundo objeto GradeBook

// display initial value of courseName for each GradeBook System.out.printf( "gradeBook1 course name is: %s\n", gradeBook1.getCourseName() ); System.out.printf( "gradeBook2 course name is: %s\n", gradeBook2.getCourseName() ); } // end main

23 } // end class GradeBookTest gradeBook1 course name is: CS101 Introduction to Java Programming gradeBook2 course name is: CS102 Data Structures in Java

2005 by Pearson Education do Brasil

46

Dica de preveno de erro 3.1

A menos que a inicializao-padro de variveis de instncia de sua classe seja aceitvel, fornea um construtor para assegurar que as variveis de instncia da sua classe sejam adequadamente inicializadas com valores significativos quando cada novo objeto de sua classe for criado.

2005 by Pearson Education do Brasil

Adicionando o construtor ao diagrama de classe UML da classe GradeBookTest


Diagrama de classe UML: A UML modela construtores no terceiro compartimento de uma classe. A UML coloca a palavra <<constructor>> antes do nome do construtor. habitual listar construtores antes de outras operaes no terceiro compartimento.

47

2005 by Pearson Education do Brasil

48

Figura 3.12 | Diagrama de classe UML indicando que a classe GradeBook tem um

construtor que tem um parmetro name do tipo UML String.

2005 by Pearson Education do Brasil

3.8 Nmeros de ponto flutuante e tipo double


Nmeros de ponto flutuante: float double
Armazenam nmeros com maior magnitude e mais detalhes (isto , mais dgitos direita do ponto de frao decimal tambm conhecido como preciso do nmero) do que as variveis float.

49

2005 by Pearson Education do Brasil

Preciso de nmero de ponto flutuante e requisitos de memria


float
Nmeros de ponto flutuante de preciso simples. Sete dgitos significativos.

50

double
Nmeros de ponto flutuante de dupla preciso. Quinze dgitos significativos.

2005 by Pearson Education do Brasil

51

Erro comum de programao 3.4 Utilizar nmeros de ponto flutuante de maneira tal que assume que eles so representados precisamente pode levar a erros de lgica.

2005 by Pearson Education do Brasil

1 2 3

// Fig. 3.13: Account.java // Classe Account com um construtor para // inicializar a varivel de instncia balance.

52

4 5 public class Account 6 { 7 private double balance; // varivel de instncia que armazena o saldo 8 9 // construtor Varivel double balance 10 public Account( double initialBalance ) 11 { // valida que initialBalance maior que 0,0; 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 // se no, o saldo inicializado como o valor padro 0.0 if ( initialBalance > 0.0 ) balance = initialBalance; } // fim do construtor Account // credita (adiciona) uma quantia conta public void credit( double amount ) { balance = balance + amount; // adiciona amount ao balance } // end method credit // retorna o saldo da conta public double getBalance() { return balance; // fornece o valor de balance ao mtodo chamador } // fim do mtodo getBalance

Resumo

Account.java

30 } // fim da classe Account

2005 by Pearson Education do Brasil

Classe AccountTest para utilizar a classe Account Especificador de formato %f:


Utilizado para gerar sada de nmeros de ponto flutuante. Posicione um decimal e um nmero entre o sinal de porcentagem e o f para impor uma preciso.

53

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

// Fig. 3.14: AccountTest.java // Cria e manipula um objeto Account. import java.util.Scanner;

54

Resumo
AccountTest. Java (1 de 3)

public class AccountTest { // mtodo main inicia a execuo do aplicativo Java public static void main( String args[] ) { Account account1 = new Account( 50.00 ); // cria o objeto Account Account account2 = new Account( -7.53 ); // cria o objeto Account

// exibe saldo inicial de cada objeto System.out.printf( "account1 balance: $%.2f\n", account1.getBalance() ); System.out.printf( "account2 balance: $%.2f\n\n", account2.getBalance() );

2005 by Pearson Education do Brasil

19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40

// cria Scanner para obter entrada a partir da janela de comando Scanner input = new Scanner( System.in ); double depositAmount; // quantia de depsito lida a partir do usurio

55

Resumo
AccountTest.java

System.out.print( "Enter deposit amount for account1: " ); // prompt depositAmount = input.nextDouble(); // obtm a entrada do usurio System.out.printf( "\nadding %.2f to account1 balance\n\n", depositAmount );

Insere um valor double (2 de 3)

account1.credit( depositAmount ); // adiciona ao saldo de account1

// display balances System.out.printf( "account1 balance: $%.2f\n", account1.getBalance() ); System.out.printf( "account2 balance: $%.2f\n\n", account2.getBalance() );

Insere um valor double

System.out.print( "Enter deposit amount for account2: " ); // prompt depositAmount = input.nextDouble(); // obtm a entrada do usurio System.out.printf( "\nadding %.2f to account2 balance\n\n", depositAmount ); account2.credit( depositAmount ); // adiciona ao saldo de account2

2005 by Pearson Education do Brasil

41 42 43 44 45 46 47

// exibe os saldos System.out.printf( "account1 balance: $%.2f\n", account1.getBalance() ); System.out.printf( "account2 balance: $%.2f\n", account2.getBalance() ); } // fim de main

56

Resumo
AccountTest.Java AccountTest.java

48 } // fim da classe AccountTest account1 balance: $50.00 account2 balance: $0.00 Enter deposit amount for account1: 25.53 adding 25.53 to account1 balance account1 balance: $75.53 account2 balance: $0.00 Enter deposit amount for account2: 123.45 adding 123.45 to account2 balance account1 balance: $75.53 account2 balance: $123.45

(3 de 3) Gera a sada de um valor double

2005 by Pearson Education do Brasil

57

Figura 3.15 | Diagrama da classe UML para indicar que a classe Account tem um atributo

private balance do tipo UML Double, um construtor (com um parmetro do tipo UML Double) e duas operaes public credit (com um parmetro amount do tipo UML Double) e getBalance (retorna o tipo UML Double).

2005 by Pearson Education do Brasil

58

Local
Seo 3.9 Seo 4.14 Seo 5.10 Seo 6.13 Seo 7.13 Seo 8.18 Seo 9.8 Seo 10.8 Exerccios 11.18 Exerccios 12.12

Ttulo Exerccio(s)
Utilizando caixas de dilogo Entrada e sada bsicas com caixas de dilogo Criando desenhos simples Exibindo e desenhando linhas na tela Desenhando retngulos e ovais Utilizando formas para representar dados Cores e formas preenchidas Desenhando um alvo e imagens grficas aleatrias Desenhando arcos Desenhando espirais com arcos Utilizando objetos com imagens grficas Armazenando formas como objetos Exibindo texto e imagens utilizando rtulos Fornecendo informaes de status Desenhando com polimorfismo Identificando as semelhanas entre formas Expandindo a interface Utilizando componentes GUI e tratamento de evento Adicionando Java 2D Utilizando a API Java 2D para aprimorar desenhos

Figura 3.16 | Resumo da GUI e estudo de caso de imagens grficas em cada captulo.

2005 by Pearson Education do Brasil

Exibindo texto em uma caixa de dilogo Janelas e caixas de dilogo:


Muitos aplicativos Java utilizam janelas e caixas de dilogo para exibir a sada. JOptionPane fornece caixas de dilogo pr-empacotadas chamadas dilogos de mensagem

59

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11

// Fig. 3.17: Dialog1.java // Imprimindo mltiplas linhas na caixa de dilogo. import javax.swing.JOptionPane; // importa a classe JOptionPane

60

Resumo
Dialog1. java

public class Dialog1 { public static void main( String args[] ) { // exibe um dilogo com a mensagem

Importa a classe JOptionPane

JOptionPane.showMessageDialog( null, "Welcome\nto\nJava" ); } // fim de main

12 } // fim da classe Dialog1

Mostra um dilogo de mensagem com texto

2005 by Pearson Education do Brasil

Exibindo texto em uma caixa de dilogo


Pacote javax.swing: Contm classes para ajudar a criar interfaces grficas com o usurio (GUIs). Contm a classe JOptionPane.
Declara o mtodo static showMessageDialog para exibir um dilogo de mensagem.

61

2005 by Pearson Education do Brasil

Inserindo texto em uma caixa de dilogo

62

Dilogo de entrada:
Permite que o usurio insira informaes. Criado com o mtodo showInputDialog na classe
JOptionPane.

2005 by Pearson Education do Brasil

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19

// Fig. 3.18: NameDialog.java // Entrada bsica com uma caixa de dilogo. import javax.swing.JOptionPane; public class NameDialog { public static void main( String args[] ) { // pede para o usurio inserir seu nome String name = JOptionPane.showInputDialog( "What is your name?" ); // cria a mensagem String message = String.format( "Welcome, %s, to Java Programming!", name ); // exibe a mensagem para cumprimentar o usurio pelo nome JOptionPane.showMessageDialog( null, message ); } // fim de main

63

Resumo
Mostra o dilogo de entrada

NameDialog. Java

20 } // fim da classe NameDialog

Formata uma String para gerar sada ao usurio

2005 by Pearson Education do Brasil

3.10 (Opcional) Estudo de caso de engenharia de software: Identificando classes em um documento de requisitos Comea a projetar o sistema ATM:
Analisa os substantivos simples e os substantivos compostos. Introduz diagramas de classe UML.

64

2005 by Pearson Education do Brasil

Identificando as classes em um sistema


Principais substantivos simples e substantivos compostos em um documento de requisitos:
Alguns so atributos de outras classes. Alguns no correspondem a partes do sistema. Alguns so classes.
Classes a ser representadas por diagramas de classe UML.

65

2005 by Pearson Education do Brasil

66

Substantivos simples e substantivos compostos no documento de requisitos


banco ATM usurio cliente transao conta saldo dinheiro / fundos tela teclado dispensador de cdulas (cash dispenser) cdula de US$ 20 / dinheiro entrada de depsito envelope de depsito nmero de conta PIN banco de dados do banco pesquisa de saldo retirada/saque depsito

Figura 3.19 | Substantivos simples e substantivos compostos no documento de

requisitos.

2005 by Pearson Education do Brasil

67

Modelando classes

Diagramas de classe UML:


Compartimento superior contm o nome da classe centralizada horizontalmente em negrito. Compartimento intermedirio contm atributos da classe ou variveis de instncia. Compartimento inferior contm as operaes ou mtodos da classe.

2005 by Pearson Education do Brasil

68

Figura 3.20 | Representando uma classe na UML utilizando um diagrama de classe.

2005 by Pearson Education do Brasil

69

Modelando classes (Continuao)

A UML:
Permite a supresso de atributos e operaes de classe para criar diagramas mais legveis, quando apropriado chamados de diagramas elididos. A linha slida que conecta duas classes representa uma associao.
Nmeros prximos do final de cada linha so valores de multiplicidade.

2005 by Pearson Education do Brasil

70

Figura 3.21 | Diagrama de classes que mostra uma associao entre classes.

2005 by Pearson Education do Brasil

71

Smbolo
0 1 m 0..1 m, n m..n * 0..* 1..*

Significado
Nenhum Um Um valor de inteiro Zero ou um m ou n Pelo menos m, mas no mais do que n Qualquer inteiro no-negativo (zero ou mais) Zero ou mais (idntico a *) Um ou mais

Figura 3.22 | Tipos de multiplicidade.

2005 by Pearson Education do Brasil

72

Modelando classes (Continuao) Diagramas de classe UML:


Losangos slidos anexados a linhas de associao indicam um relacionamento de composio. Losangos ocos indicam agregao uma forma mais fraca de composio.

2005 by Pearson Education do Brasil

73

Figura 3.23 | Diagrama de classes mostrando os relacionamentos de composio.

2005 by Pearson Education do Brasil

74

Figura 3.24 | Diagrama de classes para o modelo do sistema ATM.

2005 by Pearson Education do Brasil

75

Figura 3.25 | Diagrama de classes mostrando relacionamentos de composio de uma

classe Car.

2005 by Pearson Education do Brasil

76

Figura 3.26 | Diagrama de classes para o modelo de sistema ATM incluindo a classe

Deposit.

2005 by Pearson Education do Brasil

Você também pode gostar