POO - Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)

922 views
793 views

Published on

Material utilizado na disciplina de Programação Orientada a Objetos (animações e outros efeitos foram perdidos no carregamento). Ciência da Computação (3o período). Universidade do Vale do Itajaí - Campus Kobrasol.

Published in: Education
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
922
On SlideShare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
60
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

POO - Unidade 1 (complementar) - Introdução a Java e UML (versão draft 01)

  1. 1. PROGRAMAÇÃO ORIENTADA A OBJETOS Unidade 1 (complementar) 3º período Prof. Marcello Thiry <marcello.thiry@gmail.com>
  2. 2. marcello.thiry@gmail.com 2
  3. 3. marcello.thiry@gmail.com Não deixe de ler... 3  Java Tutorial (Oracle), disponível em:  http://docs.oracle.com/javase/tutorial/getStarted/intro/defi nition.html  Tutorial rápido para Netbeans, disponível em:  https://netbeans.org/kb/docs/java/quickstart.html
  4. 4. marcello.thiry@gmail.com JRE e JDK 4  JRE (Java Runtime Environment)  Máquina Virtual Java (JVM - Java Virtual Machine ou VM)  Inclui também, plugins para navegadores executarem Applets  JDK (Java Development Kit)  Inclui o JRE, além de compiladores e ferramentas (ex: JavaDoc, Java Debugger) Nossa escolha!!
  5. 5. marcello.thiry@gmail.com Onde baixar o JDK? 5  http://www.oracle.com/technetwork/java/javase/downloads/index.html Nossa escolha!!
  6. 6. marcello.thiry@gmail.com Após a instalação 6  set JAVA_HOME="C:Program FilesJavajdk<versão>"  Considerando a versão 7 instalada em C:Javajdk1.7.0:  set JAVA_HOME="C:Program FilesJavajdk1.7.0“  set PATH=%JAVA_HOME%bin;%PATH% http://docs.oracle.com/javase/tutorial/essential/environment/paths.html Se você quiser saber mais: http://www.java.com/pt_BR/download/help/path.xml
  7. 7. marcello.thiry@gmail.com CLASSPATH 7  Variável que informa para o JDK o local default para classes desenvolvidas pelos usuários  Utilize preferencialmente a opção “-cp” via linha de comando    javac -cp .;C:usersclasses;C:toolsjavaclasses prog.java Permite que a CLASSPATH seja definida para cada aplicação sem afetar outras aplicações O valor default para CLASSPATH é “.” (diretório atual)
  8. 8. marcello.thiry@gmail.com Compilando e executando 8 instruções nativas bytecode javac java
  9. 9. marcello.thiry@gmail.com Máquina Virtual 9  Java VM (Virtual Machine)  Software  Torna que carrega e executa bytecode o Java independente de hardware  Oferece portabilidade
  10. 10. marcello.thiry@gmail.com Plataforma Java 10
  11. 11. marcello.thiry@gmail.com Principais programas (executáveis) 11 Programa Nome Descrição javac Compilador Java Compila programas java java Interpretador Java Executa programas java javadoc Documentador Gera documentação pelos comentários Appletviewer Java Applet Viewer Visualiza applets sem navegador jar Compactador Compacta fontes em um único arquivo javap Disassembler Java Mostra o código de um arquivo .class jdb Java Debugger Depura programas java
  12. 12. marcello.thiry@gmail.com Extensões comuns 12  “.java”  Código  “.class”  Código  fonte Java “compilado”  código objeto  bytecode “.jar”  Java Archive  Coleção de arquivos .class e outros recursos (formato ZIP)
  13. 13. java marcello.thiry@gmail.com 13 javac
  14. 14. marcello.thiry@gmail.com Package (Pacote) 14  Coleção de classes relacionadas e outros recursos  Similar  a um diretório Fornece proteção ao acesso e permite gerenciar namespaces  Um namespace é um identificador único (caminho formado pela concatenação de nomes de pacote):  EX: br.univali.poo.atividade1.MinhaClasse
  15. 15. marcello.thiry@gmail.com Package (Pacote) 15
  16. 16. marcello.thiry@gmail.com Package (Pacote) em Java 16  Permite a organização do código-fonte em vários arquivos físicos  Similar a estrutura de diretório usada no sistema operacional  Um pacote pode conter códigos-fonte, bibliotecas, etc., além de outros pacotes
  17. 17. marcello.thiry@gmail.com Package (Pacote) em Java 17 ...
  18. 18. marcello.thiry@gmail.com Package (Pacote) em Java 18  Para pequenas aplicações  Pode  ser viável usar um único pacote Para aplicações maiores  Usar vários pacotes  Evita problemas com nomes duplicados de classes e permite localizar o código da classe de forma eficiente  Uso de pacotes de terceiros (ex: bibliotecas)
  19. 19. marcello.thiry@gmail.com Package (Pacote) em Java 19  Se uma classe A que pertence a um pacote nome.do.pacote  Seu nome completo (namespace) é nome.do.pacote.A  O compilador Java espera encontrar o arquivo A.java em um subdiretório nome/do/pacote  Este diretório deve estar localizado na variável de ambiente CLASSPATH ou deve ser informado na linha de comando da compilação
  20. 20. marcello.thiry@gmail.com Package (Pacote) no NetBeans 20 Aplicação (nome do projeto) Package (Pacote) Classe Java  Se a classe Exemplo02 está no pacote exemplo02, então ela deve estar num diretório com o mesmo nome: exemplo02
  21. 21. marcello.thiry@gmail.com Package (Pacote) no NetBeans 21  Se a classe Exemplo02 está no pacote br.univali.poo.exemplos. exemplo02, então ela está no diretório: br/univali/poo/exemplos /exemplo02
  22. 22. marcello.thiry@gmail.com Package (Pacote) 22  Visão modular  Manter alta coesão  Todas as classes agrupadas no pacote contribuem para uma tarefa em comum  As classes compartilham um objetivo em comum  Manter baixo acoplamento  Depender de poucos  Ser usado por muitos
  23. 23. marcello.thiry@gmail.com Package (Pacote) 23  O pacote deve ser criado com classes reutilizáveis  Ou todas as classes dentro do pacote são reutilizáveis ou então, nenhuma é  Classes que tendem a ser reutilizadas juntas devem pertencer ao mesmo pacote  Classes que podem ser modificadas pelo mesmo motivo devem pertencer ao mesmo pacote
  24. 24. marcello.thiry@gmail.com 24 Linguagem Java (básico) Elementos da linguagem, comentários (javadoc), tipos primitivos, sintaxe das principais estruturas e exemplos
  25. 25. marcello.thiry@gmail.com Meu primeiro programa Java 25
  26. 26. marcello.thiry@gmail.com Palavras reservadas 26 abstract assert boolean break byte case catch char class const    continue default do double else enum extends final finally float for if goto implements import instanceof int interface long native new package private protected public return short static strictfp super switch synchronized this throw throws transient try void volatile while As palavras const e goto são reservadas, mas não utilizadas Qualquer palavra reservada devem estar em caixa baixa As palavras null, false e true parecem ser reservadas, mas são literais
  27. 27. marcello.thiry@gmail.com Identificadores 27  Um identificador é utilizado para nomear variáveis, atributos, parâmetros e métodos  Esclarecendo,  o nome de uma variável é um identificador Compilador é “case-sensitive”  Existe diferenciação entre letras maiúsculas e minúsculas
  28. 28. marcello.thiry@gmail.com Identificadores 28 Lembre-se do estilo de escrita que adotamos para os identificadores: CamelCase1 1. http://pt.wikipedia.org/wiki/CamelCase
  29. 29. marcello.thiry@gmail.com Atribuição 29  <identificador> = <valor >  Para  tipos primitivos, comparações são feitas com "==" Exemplos:  int qtdeMaximaAlunos = 10;  float umValor = 10.0;  int outroValor = 20;
  30. 30. marcello.thiry@gmail.com Comentários 30
  31. 31. marcello.thiry@gmail.com Comentários 31
  32. 32. marcello.thiry@gmail.com Comentários (javadoc) 32 javadoc é um gerador de documentação a partir de tags em comentários: http://www.oracle.com/technetwork/java/javase/documentation/index-137868.html
  33. 33. marcello.thiry@gmail.com Tipos primitivos 33    Existem somente oito tipos primitivos em Java, todos os demais são objetos Estes tipos ficaram na linguagem pela sua velocidade de interação, e por isso não foram transformados em objetos Como não são objetos a sua declaração já cria a variável em memória não necessitando de construtores
  34. 34. marcello.thiry@gmail.com Tipos primitivos 34  Números inteiros em notação de complemento de dois      Números em notação de ponto flutuante    float (32 bits) double (64 bits) boolean   byte (8 bits) short (16 bits) int (32 bits) long (64 bits Pode assumir o valor true ou o valor false char  Caractere em notação Unicode de 16 bits (alfanumérico)
  35. 35. marcello.thiry@gmail.com Números inteiros 35  O valor default é 0  No código fonte, qualquer constante numérica será um int a não ser que o caractere ”L” esteja no final do número
  36. 36. marcello.thiry@gmail.com Números inteiros 36  byte (8 bits com sinal)   short (16 bits com sinal)   -32.768 a +32.767 int (32 bits com sinal)   -128 a +127 -2.147.483.648 a +2.147.483.647 long (64 bits com sinal)  -9.223.372.036.854.775.808 a +9.223.372.036.854.775.807
  37. 37. marcello.thiry@gmail.com Números inteiros 37  Exemplos:  100L  100  0L 0  long  int  long  int
  38. 38. marcello.thiry@gmail.com Pontos flutuantes 38  O valor default é 0.0  No código fonte, qualquer número com decimais será um float a não ser que o caractere ”d” ou ”D” estejam no final do número
  39. 39. marcello.thiry@gmail.com Pontos flutuantes 39  float (32 bits com sinal)  -1.40239846E-45 a  +3.40282347E+38 double (64 bits com sinal)  -4.94065645841246544E-324 a +1.79769313486231570E+308
  40. 40. marcello.thiry@gmail.com Pontos flutuantes 40  Exemplos:  float  100.00d  double  float 0  0f  float  double  0d  100.0
  41. 41. marcello.thiry@gmail.com Caracteres 41  char (16 bits sem sinal)  Representa um valor da tabela Unicode  Unicode é uma tabela que permite representar caracteres de qualquer idioma  Valores 0 a 255 correspondem aos valores da tabela ASCII O valor default é o código zero: “0”  Pode representar um número inteiro de 16 bits sem sinal  Uma variável char pode ser atribuída com valores de 0 a 65535
  42. 42. marcello.thiry@gmail.com Valores booleanos 42  boolean (8 bits)  true ou false  Podem ser utilizados diretamente em expressões de retorno para testes como if, switch, while e for  Não podem ser comparados com variáveis ou constantes numéricas
  43. 43. marcello.thiry@gmail.com Resumindo: valores default 43          byte = 0 short = 0 int = 0 long = 0 float = 0.0 double = 0.0 boolean = false char = ‘u0000’ Object = null  Objetos são inicializados com null, pois necessitam que a instância seja criada explicitamente, o que não ocorre em tipos primitivos
  44. 44. marcello.thiry@gmail.com Literais 44       Um literal é um valor escrito no código fonte e identificado como de um tipo primitivo int i = 10; // literal int char c = 'a'; // literal char boolean b = true; // literal boolean double d = 002.11d; // literal double int quinze = 0xF; // literal int  valor = 15
  45. 45. marcello.thiry@gmail.com Literais caracteres (escapes) 45             char a = 'A'; char b = '&'; char c = 'u004D'; char d = 'n'; char e = 't'; char f = 'r'; char g = 'b'; char h = 'f'; char i = ''; char j = '''; char k = '"'; char l = 65; // letra A // caractere & // letra M (Unicode) // quebra de linha // tabulação // retorno de carro // backspace // quebra de página // barra // apóstrofo // aspas // char recebe um valor int
  46. 46. marcello.thiry@gmail.com A classe System 46  Contem vários atributos e métodos úteis  Entrada padrão (in)  Saída padrão (out)  Saída de erro padrão (err)  Acesso a variáveis de ambiente  ...  Esta classe não pode ser instanciada http://docs.oracle.com/javase/7/docs/api/java/lang/System.html
  47. 47. marcello.thiry@gmail.com A classe System 47  System.in  System.in.read();  // lê um caractere do console System.out  System.out.println(“mensagem  para console padrão”); System.err  System.err.println(“coloque aqui sua mensagem de erro”);
  48. 48. marcello.thiry@gmail.com A classe String 48   Representa cadeias (strings) de caracteres Todas as literais em Java, como “abc” são implementadas como instâncias desta classe http://docs.oracle.com/javase/7/docs/api/java/lang/String.html
  49. 49. marcello.thiry@gmail.com A classe String 49  A classe String inclui operações para:  Examinar caracteres individuais da sequência  Comparar com outras strings  Buscar strings  Extrair substrings  Criar uma cópia de uma string com todos os caracteres convertidos para caixa baixa ou caixa alta  ...
  50. 50. marcello.thiry@gmail.com Literais strings 50  Um literal string consiste de 0 ou mais caracteres dentro de aspas  ""  """  "Isto // uma string vazia // uma string contendo " // uma string de tamanho 18 eh uma string"  "Isto eh uma string " + "em duas linhas" // uma string em duas linhas
  51. 51. marcello.thiry@gmail.com Comparando e manipulando Strings 51
  52. 52. marcello.thiry@gmail.com Comparando Strings 52  Evite comparar objetos String com “==“  Você pode utilizar “==“ entre tipos primitivos ou entre literais  ... (“umaLiteralString”  == “outraLiteralString”) Utilize a operação “equals” ou “equalsIgnoreCase”
  53. 53. marcello.thiry@gmail.com Conversões entre tipos primitivos 53  Conversão implícita O tamanho de uma variável é maior que o tamanho da variável ou que o valor que está sendo atribuído  Exemplo:  int y = 10;  long x = y; // o tamanho de int é menor que o de long, logo ok
  54. 54. marcello.thiry@gmail.com Conversões entre tipos primitivos 54  Conversão explícita O tamanho de uma variável é menor que o tamanho da variável ou o que valor que está sendo atribuído  Exemplo:  long y = 10L;  int x = (int)y; // type casting1, pois um long é maior que um int 1. Type casting = conversão de tipo
  55. 55. marcello.thiry@gmail.com Conversões entre tipos primitivos 55  Type Casting  Quando uma variável de um tipo menor está sendo atribuída com uma variável de um tipo maior, é necessário explicitar a conversão  int x = (int)y; // indica o tipo para qual o valor de y será // convertido  Se esta informação não for colocada, ocorrerá um erro de compilação indicando tipos incompatíveis
  56. 56. marcello.thiry@gmail.com Operadores aritméticos unários 56 variavel++ Utiliza o valor atual na expressão avaliada Pós-Incremento e depois incrementa em 1 Incrementa em 1 e então utiliza o novo valor na expressão avaliada ++variavel Pré-incremento variavel-- Pós-decremento e depois decrementa em 1 --variavel Pré-decremento valor na expressão avaliada Utiliza o valor atual na expressão avaliada Decrementa de 1 e então utiliza o novo
  57. 57. marcello.thiry@gmail.com Operadores aritméticos (duas variáveis) 57      x+y x-y x*y x/y x%y // resto da divisão de x por y
  58. 58. marcello.thiry@gmail.com Operadores lógicos e relacionais 58          x>y x >= y x<y x <= y x == y x != y x || y x && y !x // x é maior que y? // x é maior ou igual a y? // x é menor que y? // x é menor ou igual a y? // x é igual a y? // x é diferente de y? // x OU y // x E y // NÃO x
  59. 59. marcello.thiry@gmail.com Operadores bitwise 59        z = ~x z=x&y z=x|y z=x^y z = x << y z = x >> y z = x >>> y // Inverte os bits de x // AND bit a bit entre x e y // OR bit a bit entre x e y // XOR bit a bit entre x e y // Desloca bits de x para esquerda, y vezes // Desloca bits de x para direita, y vezes // Preenche zeros a esquerda de x, y vezes
  60. 60. marcello.thiry@gmail.com Precedência dos operadores 60             ++ -- ! (cast) * / % + << >> >>> <> <= >= == != & ^ | && || = *= /= %= += -= <<= >>= >>>= &= |=
  61. 61. marcello.thiry@gmail.com Precedência dos operadores 61 1. 2. 3. 4. 5. 6. 7. 8. Unário Aritmético Shift Comparação Bitwise Lógico Condicional Atribuição ++ -- ! ~ (cast) */%+<< >> >>> < <= > >= instanceof == != &^| && || ?: = "op="
  62. 62. marcello.thiry@gmail.com Operadores compostos 62 x += 5 <==> x = x + 5 ==> x = 5 // x valia 0 x *= 2 <==> x = x * 2 ==> x = 10 x /= 2 <==> x = x / 2 ==> x = 5 x -= 3 <==> x = x - 3 ==> x = 2 x %= 5 <==> x = x % 5 ==> x = 2 // Resto da divisão x |= 4 <==> x = x | 4 ==> x = 6 // OR x ^= 1 <==> x = x ^ 1 ==> x = 7 // XOR x &= 255 <==> x = x & 255 ==> x = 7 // AND x <<= 2 <==> x = x << 2 ==> x = x >>= 4 <==> x = x >> 4 ==> x = 1 // Shift para esquerda x >>>= 7 <==> x = x >>> 7 ==> x = 0 // Coloca 0’s a esquerda 28 // Shift para direita
  63. 63. marcello.thiry@gmail.com A classe Scanner (entrada de dados) 63  Permite ler tipos primitivos e strings usando expressões regulares  Quebra O um texto em tokens usando um delimitador padrão delimitador default é o espaço em branco  Existem métodos “next” para converter os tokens em valores dos vários tipos primitivos http://docs.oracle.com/javase/7/docs/api/java/lang/Scanner.html
  64. 64. marcello.thiry@gmail.com A classe Scanner (entrada de dados) 64
  65. 65. marcello.thiry@gmail.com A classe Scanner (entrada de dados) 65
  66. 66. marcello.thiry@gmail.com A classe Scanner (entrada de dados) 66
  67. 67. marcello.thiry@gmail.com print, println, printf, ... 67
  68. 68. marcello.thiry@gmail.com Condicionais (if) 68 if (<condição>) { comando; comando; comando; } else { comando; comando; comando; };
  69. 69. marcello.thiry@gmail.com Condicionais (if) 69
  70. 70. marcello.thiry@gmail.com Condicionais (if) 70
  71. 71. marcello.thiry@gmail.com Condicionais (switch) 71 switch (<expressão cardinal>) { case <valor1>: <comando>; [break;] case <valor2>: <comando>; [break;] ... default: <comando default>; }
  72. 72. marcello.thiry@gmail.com Condicionais (switch) 72
  73. 73. marcello.thiry@gmail.com Laços (for) 73 for (<expr. inicial>; <condição>; <incremento>) { <comandos>; }
  74. 74. marcello.thiry@gmail.com Laços (for) 74
  75. 75. marcello.thiry@gmail.com Laços (for) 75
  76. 76. marcello.thiry@gmail.com Laços (while) 76 while (<condição>) { <comandos>; }
  77. 77. marcello.thiry@gmail.com Laços (while) 77
  78. 78. marcello.thiry@gmail.com Laços (do-while) 78 do { <comandos>; } while (<condição>);
  79. 79. marcello.thiry@gmail.com Laços (do-while) 79
  80. 80. marcello.thiry@gmail.com Desvio em laços (break) 80 // 0 até 5 // break: força a saída da construção de um laço // (for, do, while ou switch) int cont = 0; while (cont < 10) { System.out.println("Contador é " + cont); if (cont++ == 5) { // testa antes e incrementa depois break; } }
  81. 81. marcello.thiry@gmail.com Desvio em laços (continue) 81 // -10 até 9 pulando o número zero // continue: desvia para o início do laço, na próxima // iteração (for) for (int cont = -10; cont < 10; cont++) { if (cont == 0) { continue; } System.out.println(cont); }
  82. 82. marcello.thiry@gmail.com Vetores 82
  83. 83. marcello.thiry@gmail.com Matrizes 83
  84. 84. marcello.thiry@gmail.com Inicializando vetores e matrizes 84
  85. 85. marcello.thiry@gmail.com Uma classe em Java 85
  86. 86. marcello.thiry@gmail.com Atributos em Java 86 Atributo privado
  87. 87. marcello.thiry@gmail.com Procedimentos em Java 87 Método público sem retorno (void)
  88. 88. marcello.thiry@gmail.com Funções em Java 88 Método público com retorno (ex: String)
  89. 89. marcello.thiry@gmail.com Classe e Operação Abstrata em Java 89 Definição de uma classe abstrata Operação abstrata
  90. 90. marcello.thiry@gmail.com Generalização e redefinição de operação 90 Retangulo herda de Figura Redefinição da operação desenhar() herdada de Figura
  91. 91. marcello.thiry@gmail.com Wrappers 91  Wrapper  Empacotar,  embrulhar, encapsular Uma classe wrapper modifica o comportamento de outra classe  Camada fina que fica sobre a classe encapsulada, a qual é responsável pelo trabalho real
  92. 92. marcello.thiry@gmail.com Wrappers 92  As operações da classe wrapper podem ser usadas para adaptar uma classe que tenha uma interface diferente A classe wrapper encapsula a funcionalidade de outra classe  Pode também simplificar o uso de um determinado objeto, reduzindo a quantidade de operações disponíveis na interface
  93. 93. marcello.thiry@gmail.com Wrappers para tipos primitivos 93 Variáveis “int” não são objetos! int “int” é um tipo primitivo da linguagem Como encapsular um “int” numa classe?
  94. 94. marcello.thiry@gmail.com A classe java.lang.Integer 94 int Integer(int valor) int intValue() ... int compareTo(Integer outroInteger) boolean equals(Object obj) ... float floatValue() ... static int rotateLeft(int i, int distancia) static int rotateRight(int i, int distancia) ...
  95. 95. marcello.thiry@gmail.com Wrappers para tipos primitivos 95  Se, por exemplo, você quer armazenar um conjunto de valores int nos elementos de um Vector  Valores em um Vector devem ser objetos e não tipos primitivos  OBS  Podemos utilizar a classe wrapper Integer
  96. 96. marcello.thiry@gmail.com Wrappers para tipos primitivos 96 Vector v = new Vector(); v.add(new Integer(1)); v.add(new Integer(2)); for(int i=0; i<v.size(); i++){ Integer num = (Integer)v.get(i); System.out.println(num.intValue()); }   Para recuperar os valores encapsulados, é necessário fazer um (cast) dos elementos para Integer Para obter o valor primitivo, é necessário utilizar a operação utilitária intValue()
  97. 97. marcello.thiry@gmail.com Wrappers para tipos primitivos 97  A linguagem Java oferece classes wrappers que encapsulam valores primitivos em classes que oferecem operações utilitárias para manipular estes valores Tipo primitivo Classe wrapper Argumentos do construtor byte Byte byte or String short Short short or String int Integer int or String long Long long or String float Float float, double or String double Double doublebyte or String char Character char boolean Boolean boolean or String
  98. 98. marcello.thiry@gmail.com Wrappers para tipos primitivos 98  Exemplos: System.out.println(Integer.parseInt("321")); System.out.println(Integer.toBinaryString(4)); System.out.println(Integer.toHexString(16)); System.out.println(Float.parseFloat("2345.33")); System.out.println(new Float(832.23).floatValue()); Integer num = new Integer(12); String texto = num.toString();
  99. 99. marcello.thiry@gmail.com Referências 99  Java Tutorial (Oracle), disponível em:  http://docs.oracle.com/javase/tutorial/index.html  Java API Specification (Oracle), disponível em:  http://docs.oracle.com/javase/7/docs/api/overview- summary.html  Tutorial rápido para Netbeans, disponível em:  https://netbeans.org/kb/docs/java/quickstart.html
  100. 100. marcello.thiry@gmail.com Referências 100  Java Free Course (Home & Learn), disponível em:  http://www.homeandlearn.co.uk/java/java.html  Outros links:  http://javafree.uol.com.br/  http://www.java.com/pt_BR/  http://www.guj.com.br/
  101. 101. marcello.thiry@gmail.com 101 UML (básico) A Linguagem de Modelagem Unificada, elementos da linguagem, sintaxe, principais elementos e diagramas
  102. 102. marcello.thiry@gmail.com UML  Linguagem de Modelagem Unificada  Define sintaxe e semântica  Independente de linguagens de programação  Não é uma metodologia!!  Estabelece especificações para:  Modelagem visual de sistemas OO  Interoperabilidade entre ferramentas de modelagem 1 0 2
  103. 103. marcello.thiry@gmail.com Classe 103 Nome da classe Visibilidade Atributos Operações
  104. 104. marcello.thiry@gmail.com Classe 104 Valor inicial (default)
  105. 105. marcello.thiry@gmail.com Objeto 105 Nome da classe Nome do objeto Estado do objeto umaPessoa
  106. 106. marcello.thiry@gmail.com Objeto 106 Quando o nome do objeto não é relevante Um objeto sem uma classe definida (evitar)
  107. 107. marcello.thiry@gmail.com Generalização (herança entre classes) 107 Pessoa é a superclasse de Aluno e Funcionario Aluno e Funcionario são subclasses de Pessoa Funcionario é a superclasse de Professor Professor é uma subclasse de Funcionario
  108. 108. marcello.thiry@gmail.com Generalização (herança entre classes) 108 O relacionamento de Generalização permite modelar a hierarquia de herança entre classes
  109. 109. marcello.thiry@gmail.com Package (pacote) 109 Namespace Nome único (caminho completo)
  110. 110. marcello.thiry@gmail.com Classe Abstrata 110 O nome da classe é apresentado em itálico
  111. 111. marcello.thiry@gmail.com Operação Abstrata 111 A assinatura da operação é apresentada em itálico
  112. 112. marcello.thiry@gmail.com Referências 112  Página principal da UML (OMG), disponível em:  http://www.uml.org/  Especificação da UML (OMG), disponível em:  http://www.omg.org/spec/UML/2.5/Beta1/PDF/
  113. 113. marcello.thiry@gmail.com marcello.thiry@gmail.com

×