SlideShare ist ein Scribd-Unternehmen logo
1 von 44
Aula 6 Introdução ao UML:  ,[object Object]
 Áreas, vistas e tipos de diagrama
 Níveis de pormenor
 Notações para classes, objectos e relações,[object Object]
UML (Unified Modeling Language) Linguagem visual de modelação Diagramas representam modelo do sistema Ferramenta importante de comunicação Autores originais Grady Booch Ivar Jacobson James Rumbaugh Normalização OMG (Object Management Group) http://www.uml.org/ Versão 2.2 2009/2010 Programação Orientada por Objectos 3
Diagramas Estruturais Estáticos (de classes, de objectos) De desenho (estrutura interna, colaboração, componentes) Casos de uso Dinâmicos Máquinas de estados De actividades De interacção (de sequência, de comunicação) Físicos (de implantação) Gestão de modelos (de pacotes) 2009/2010 Programação Orientada por Objectos 4
Diagramas 2009/2010 Programação Orientada por Objectos 5 Modelo Área dinâmica Área física Área de gestão do modelo Área estrutural … … … Vista de casos de uso Vista estática Vista de desenho … … Diagrama de classes Diagrama de objectos
Diagrama de classes Representa Classes Relações entre classes Diagrama estrutural e estático Domínio do problema Conceitos  Modelo de análise Domínio da solução Classes Modelo de desenho 2009/2010 Programação Orientada por Objectos 6 Classes e suas relações não mudam durante execução do programa. Modela a estrutura lógica do sistema. A perspectiva é não dinâmica: a evolução temporal do sistema em execução não é explícita. Compreensão do problema, análise, recolha de requisitos, elaboração de glossário do domínio. Desenho, síntese, implementação. Possível geração automática de código.
Diagrama de objectos Representa Objectos Ligações entre objectos Diagrama estrutural e estático 2009/2010 Programação Orientada por Objectos 7 Fotografia estática do estado do sistema em execução num dado instante de tempo. Ajuda a compreender a estrutura dos dados do sistema. A perspectiva continua a não ser dinâmica: o sistema está parado no tempo.
Classes package mypackage; … public abstract  class MyAbstractClass {     private Set<Type> set;     private List<Type> list;     private TreeSet<Type>  sortedSet;     public static final Type constant = value;     public MyAbstractClass() {…}     private Type privateFunction(final Type parameter) {…}     void packagePrivateProcedure() {…}     protected abstract Type abstractProtectedFunction();     public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 8 Classe representada por caixa com compartimentos. mypackage::MyAbstractClass Nome - set: Type [*] - list: Type [*] {ordered, nonunique} - sortedSet: Type [*] {sorted} + constant: Type = value {frozen} Atributos Operações «constructor»+ MyAbstractClass() - privateFunction(in parameter: Type): Type ~ packagePrivateProcedure() # abstractProtectedFunction(): Type + classPublicProcedure()
Classes package mypackage; … public class MyClass {     private Set<Type> set;     private List<Type> list;     private TreeSet<Type>  sortedSet;     public static final Type constant = value;     public MyClass() {…}     private Type privateFunction(final Type parameter) {…}     void packagePrivateProcedure() {…}     protected Type protectedFunction() {…}     public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 9 mypackage::MyClass - set: Type [*] - list: Type [*] {ordered, nonunique} - sortedSet: Type [*] {sorted} + constant: Type = value {frozen} «constructor»+ MyClass() - privateFunction(in parameter: Type): Type ~ packagePrivateProcedure() # protectedFunction(): Type + classPublicProcedure()
Objectos import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClasslocalVariable = new MyClass();         …     } } 2009/2010 Programação Orientada por Objectos 10 localVariable : mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
Objectos import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClasslocalVariable = new MyClass();         …     } } 2009/2010 Programação Orientada por Objectos 11 : mypackage::MyClass localVariable : «ref»mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
Classes: especialização package mypackage; … public class MyDerivedClassextends MyClass {     … } 2009/2010 Programação Orientada por Objectos 12 mypackage::MyClass mypackage::MyDerivedClass Generalização Generalização
Objectos: especialização import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClasslocalVariable = new MyDerivedClass();         …     } } 2009/2010 Programação Orientada por Objectos 13 : mypackage::MyDerivedClass localVariable : «ref» mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
Classes genéricas package mypackage; … public class MyClass<T> {     private Set<T> set;     private List<T> list;     private TreeSet<T>  sortedSet;     public static final T constant = value;     public MyClass() {…}     private TprivateFunction(final T parameter) {…}     void packagePrivateProcedure() {…}     protected TprotectedFunction() {…}     public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 14 T mypackage::MyClass - set: T [*] - list: T [*] {ordered, nonunique} - sortedSet: T [*] {sorted} + constant: T = value {frozen} «constructor»+ MyClass() - privateFunction(in parameter: T): T ~ packagePrivateProcedure() # protectedFunction(): T + classPublicProcedure()
Classes genéricas: ligação (binding) import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClass<String>localVariable = …;         …     } } 2009/2010 Programação Orientada por Objectos 15 T mypackage::MyClass mypackage::MyClass<T -> String> - set: String [*] - list: String [*] {ordered, nonunique} - sortedSet: String [*] {sorted} + constant: String = value {frozen} «bind» <T -> String> «constructor»+ MyClass() - privateFunction(in parameter: String): String ~ packagePrivateProcedure() # protectedFunction(): String + classPublicProcedure() Ligação (binding)
Objectos import mypackage; … public class MyClassTester {     public static void main(final String[] arguments) { MyClass<String> localVariable = new MyClass<String>();         …     } } 2009/2010 Programação Orientada por Objectos 16 : mypackage::MyClass<T -> String> set = (“string3”, “string1”, “string2”) list = (“string1”, “string2”, “string1”) sortedSet = (“string1”, “string2”, “string3”) constant = “string”
Pacotes package mypackage; … public class MyClass {     … } 2009/2010 Programação Orientada por Objectos 17 mypackage::MyClass
Pacotes package mypackage; … public class MyClass {     … } 2009/2010 Programação Orientada por Objectos 18 mypackage MyClass
Pacotes package mypackage; … public class MyClass {     … } 2009/2010 Programação Orientada por Objectos 19 mypackage MyClass Conteúdo
Interfaces package mypackage; … public interface MyInterface {     Type operation();     … } 2009/2010 Programação Orientada por Objectos 20 mypackage «interface» MyInterface operation(): Type …
Realização Interfaces package mypackage; … public interface MyInterface {     Type operation();     … } public  class MyClassimplements MyInterface { @Override     public Type operation() { … }     … } 2009/2010 Programação Orientada por Objectos 21 mypackage «interface» MyInterface operation(): Type … MyClass + operation(): Type …
Realização Interfaces package mypackage; … public interface MyInterface {     … } public  class MyClassimplements MyInterface {     … } 2009/2010 Programação Orientada por Objectos 22 mypackage MyInterface MyClass
Utilização Realização Interfaces package mypackage; … public interface MyInterface {     … } public  class MyClass implements MyInterface {     … } public class MyOtherClass {     …     public      void method(final MyInterface object) {         final Type variable = object.operation();         …     }     … } 2009/2010 Programação Orientada por Objectos 23 mypackage MyOtherClass MyInterface MyInterface MyClass
Utilização Realização Interfaces package mypackage; … public interface MyInterface {     … } public  class MyClass implements MyInterface {     … } public class MyOtherClass {     …     public      void method(final MyInterface object) {         final Type variable = object.operation();         …     }     … } 2009/2010 Programação Orientada por Objectos 24 mypackage MyOtherClass «interface» MyInterface MyClass
Restrições 2009/2010 Programação Orientada por Objectos 25 Rational Rational {mdc(numerator, denominator} = 1  Ʌ 0 < denominator} - numerator: int - denominator: int - numerator: int - denominator: int … … {mdc(numerator, denominator} = 1  Ʌ 0 < denominator}
Principais relações entre classes Generalização  Associação Agregação Composição Abstracção Realização Ligação (binding) Utilização Invocação Criação 2009/2010 Programação Orientada por Objectos 26 «bind» <…> «call» «create»
Utilização: criação package vehicles; public class Car {     … } package vehicles; public class Factory {     …     public Car newCar(…) {         …         return new Car(…);     }     … } 2009/2010 Programação Orientada por Objectos 27 vehicles Factory «create» Criação (utilização) Car
Associação 2009/2010 Programação Orientada por Objectos 28 business Company Associação Person
Associação: nome 2009/2010 Programação Orientada por Objectos 29 business Company WorksFor Associação Person
Associação: papeis 2009/2010 Programação Orientada por Objectos 30 business Company employer WorksFor Associação employee Person
Associação: multiplicidade 2009/2010 Programação Orientada por Objectos 31 business Company employer 0..1 WorksFor Associação employee(s) * Person
Multiplicidade 2009/2010 Programação Orientada por Objectos 32
Associação: representação package business; public class Company {     private     Set<Person> employees;     … } public class Person {     private Company employer;     … } 2009/2010 Programação Orientada por Objectos 33 business Company employer 0..1 WorksFor Associação employee(s) * Person
Representação e multiplicidade 2009/2010 Programação Orientada por Objectos 34
Associação: visibilidade package business; public class Company { private     Set<Person> employees;     … } public class Person { private Company employer;     … } 2009/2010 Programação Orientada por Objectos 35 business Company - employer 0..1 WorksFor Associação - employee(s) * Person
Associação: navegabilidade package business; public class Company {     private     Set<Person> employees;     … } public class Person {     private Company employer;     … } 2009/2010 Programação OrientadaporObjectos 36 business Company employer 0..1 WorksFor Associação - employee(s) * Person
Associação package vehicles; public class Car {     private Set<Wheel> wheels;     … } public class Wheel {     private Car car;     … } 2009/2010 Programação Orientada por Objectos 37 vehicles Car - car 0..1 IsPartOf - wheel(s) 3..6 Wheel
Associação: agregação package vehicles; public class Car {     @Parts     private Set<Wheel> wheels;     … } public class Wheel {     @Whole     private Car car;     … } 2009/2010 Programação Orientada por Objectos 38 vehicles Car - car 0..1 IsPartOf Agregação - wheel(s) 3..6 Wheel
Associação package business; public class Company {     private Set<Department>         departments;     … } public class Department {     private Company company;     … } 2009/2010 Programação Orientada por Objectos 39 business Company - company 1 IsPartOf - department(s) * Departament
Associação: composição package business; public class Company {     @Components     private Set<Department>         departments;     … } public class Department {     @Composite     private Company company;     … } 2009/2010 Programação Orientada por Objectos 40 business Company - company 1 IsPartOf Composição - department(s) * Departament
A reter Tipos de diagrama UML Notações para classes, objectos e relações UML como forma de comunicação entre pessoas que precisam de se entender em relação A um problema (análise) A uma solução (desenho) UML como modelo formal e possível fonte para geração automática de código (e.g., Java) 2009/2010 Programação Orientada por Objectos 41
Referências UML® ResourcePage (http://www.uml.org/) Martin Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3.ª edição, Addison-Wesley, 2003.ISBN: 0-321-19368-7(1.ª e 2.ª ediçõesnabiblioteca) James Rumbaugh et al., The Unified Modeling Language Reference Manual, 2.ª edição, Addison-Wesley, 2005.ISBN: 0-321-24562-8(1.ª edição do guia do utilizador na biblioteca) 2009/2010 Programação Orientada por Objectos 42

Weitere ähnliche Inhalte

Was ist angesagt?

Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordidaLuciano Ramalho
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Luciano Ramalho
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Luciano Ramalho
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4guestd521d1f
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...Manuel Menezes de Sequeira
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Mario Jorge Pereira
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasManuel Menezes de Sequeira
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02Natanael Fonseca
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Natanael Fonseca
 

Was ist angesagt? (20)

Python: a primeira mordida
Python: a primeira mordidaPython: a primeira mordida
Python: a primeira mordida
 
POO - 12 - A Classe Object
POO - 12 - A Classe ObjectPOO - 12 - A Classe Object
POO - 12 - A Classe Object
 
Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)Iteráveis e geradores (versão RuPy)
Iteráveis e geradores (versão RuPy)
 
Introdução ao C#
Introdução ao C#Introdução ao C#
Introdução ao C#
 
Java6
Java6Java6
Java6
 
POO - 14 - Vetores
POO - 14 - VetoresPOO - 14 - Vetores
POO - 14 - Vetores
 
Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)Orientação a objetos em Python (compacto)
Orientação a objetos em Python (compacto)
 
Java7
Java7Java7
Java7
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4
 
Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4Programação Orientada por Objectos - Aula 4
Programação Orientada por Objectos - Aula 4
 
Java8
Java8Java8
Java8
 
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
9. Operação toString(); Classes, instâncias e objectos; Scanner – Fundamentos...
 
Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java Revisão Sobre Programação Orientada a Objetos com Java
Revisão Sobre Programação Orientada a Objetos com Java
 
Javascript
JavascriptJavascript
Javascript
 
POO - 04 - Variávies em Java
POO - 04 - Variávies em JavaPOO - 04 - Variávies em Java
POO - 04 - Variávies em Java
 
NHibernate
NHibernateNHibernate
NHibernate
 
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instânciasSemana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
Semana 10: Encapsulação, cópia de instâncias, igualdade de instâncias
 
Curso Java Básico - Aula02
Curso Java Básico - Aula02Curso Java Básico - Aula02
Curso Java Básico - Aula02
 
Aula05
Aula05Aula05
Aula05
 
Curso Java Básico - Aula 03
Curso Java Básico - Aula 03Curso Java Básico - Aula 03
Curso Java Básico - Aula 03
 

Andere mochten auch

7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...Manuel Menezes de Sequeira
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...Manuel Menezes de Sequeira
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...Manuel Menezes de Sequeira
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectosManuel Menezes de Sequeira
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de ProgramaçãoManuel Menezes de Sequeira
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...Manuel Menezes de Sequeira
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...Manuel Menezes de Sequeira
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...Manuel Menezes de Sequeira
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...Manuel Menezes de Sequeira
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...Manuel Menezes de Sequeira
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...Manuel Menezes de Sequeira
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...Manuel Menezes de Sequeira
 
Eng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosEng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosManuel Menezes de Sequeira
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...Manuel Menezes de Sequeira
 

Andere mochten auch (20)

7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
7. Arrays multidimensionais; Estratégias de resolução de problemas – Fundamen...
 
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
3. Funções/repórteres e listas em Snap!; Utilização de variáveis – Fundamento...
 
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
12. Paradigmas da programação; Programação orientada por objectos; Pacotes – ...
 
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
8. Classes e instâncias; Cadeias de caracteres – Fundamentos de Programação
 
Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1Programação Orientada por Objectos - Aula 1
Programação Orientada por Objectos - Aula 1
 
Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7Programação Orientada por Objectos - Aula 7
Programação Orientada por Objectos - Aula 7
 
Introdução à programação orientada para aspectos
Introdução à programação orientada para aspectosIntrodução à programação orientada para aspectos
Introdução à programação orientada para aspectos
 
Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3Programação Orientada por Objectos - Aula 3
Programação Orientada por Objectos - Aula 3
 
4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação4. Introdução à linguagem de programação Java – Fundamentos de Programação
4. Introdução à linguagem de programação Java – Fundamentos de Programação
 
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
13. Polimorfismo de subtipos; Análise, desenho e implementação – Fundamentos ...
 
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
11. Enumerações; Instrução switch; Limitações dos inteiros – Fundamentos de P...
 
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
5. Atribuições especiais; Arrays; Tipos de ciclos; Classes-pacote – Fundament...
 
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
2. Programação e resolução de problemas; Algoritmos; Snap! – Fundamentos de P...
 
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
10. Encapsulação; Cópia de instâncias; Igualdade de instâncias – Fundamentos ...
 
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
1. Computador; Línguas naturais; Linguagens de Programação; Algoritmo e progr...
 
Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2Programação Orientada por Objectos - Aula 2
Programação Orientada por Objectos - Aula 2
 
Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5Programação Orientada por Objectos - Aula 5
Programação Orientada por Objectos - Aula 5
 
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
14. Interfaces; Listas e cadeias ligadas; Iteradores – Fundamentos de Program...
 
Eng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitosEng.ª do Software - 3. Processos da engenharia de requisitos
Eng.ª do Software - 3. Processos da engenharia de requisitos
 
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
6. Caracteres; Tipos char e int; Tipos de valor e de referência – Fundamentos...
 

Ähnlich wie Programação Orientada por Objectos - Aula 6

Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Jeison Barros
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens PooInfogenius
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#Felipe Pimentel
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacoteManuel Menezes de Sequeira
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinNelson Glauber Leal
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosGeorge Mendonça
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javJulio Viegas
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dadosHenrique Fernandes
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Rogério Moraes de Carvalho
 

Ähnlich wie Programação Orientada por Objectos - Aula 6 (20)

Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2Data mapping com Groovy - Part 2
Data mapping com Groovy - Part 2
 
Palestra2009
Palestra2009Palestra2009
Palestra2009
 
Linguagens Poo
Linguagens PooLinguagens Poo
Linguagens Poo
 
[CLPE] Design patterns com c#
[CLPE] Design patterns com c#[CLPE] Design patterns com c#
[CLPE] Design patterns com c#
 
Palestra cbq
Palestra cbqPalestra cbq
Palestra cbq
 
Jquery a technical overview
Jquery a technical overviewJquery a technical overview
Jquery a technical overview
 
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana  4: Atribuições especiais, matrizes, ciclos, classes pacoteSemana  4: Atribuições especiais, matrizes, ciclos, classes pacote
Semana 4: Atribuições especiais, matrizes, ciclos, classes pacote
 
Git, GitHub e OO
Git, GitHub e OOGit, GitHub e OO
Git, GitHub e OO
 
Turbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com KotlinTurbinando o desenvolvimento Android com Kotlin
Turbinando o desenvolvimento Android com Kotlin
 
Aula5
Aula5Aula5
Aula5
 
PHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e ObjetosPHP 5.3 - Classes e Objetos
PHP 5.3 - Classes e Objetos
 
Doctrine2 Seminário PHP
Doctrine2 Seminário PHPDoctrine2 Seminário PHP
Doctrine2 Seminário PHP
 
Evento CODERS
Evento CODERSEvento CODERS
Evento CODERS
 
Java annotation
Java annotationJava annotation
Java annotation
 
Aplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com DjangoAplicacoes Rapidas Para Web Com Django
Aplicacoes Rapidas Para Web Com Django
 
v
vv
v
 
Ecosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_javEcosistema spring a_plataforma_enterprise_jav
Ecosistema spring a_plataforma_enterprise_jav
 
Como conectar programas em linguagem java a bases de dados
Como conectar programas em linguagem java  a bases de dadosComo conectar programas em linguagem java  a bases de dados
Como conectar programas em linguagem java a bases de dados
 
Kotlin first
Kotlin firstKotlin first
Kotlin first
 
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
Plataforma de compiladores .NET, C# 6 e Visual Studio 2015
 

Mehr von Manuel Menezes de Sequeira

Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteresManuel Menezes de Sequeira
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemasManuel Menezes de Sequeira
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaManuel Menezes de Sequeira
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java Manuel Menezes de Sequeira
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...Manuel Menezes de Sequeira
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...Manuel Menezes de Sequeira
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Manuel Menezes de Sequeira
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoManuel Menezes de Sequeira
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorManuel Menezes de Sequeira
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoManuel Menezes de Sequeira
 

Mehr von Manuel Menezes de Sequeira (12)

Semana 8: Classes e instâncias, cadeias de caracteres
Semana  8: Classes e instâncias, cadeias de caracteresSemana  8: Classes e instâncias, cadeias de caracteres
Semana 8: Classes e instâncias, cadeias de caracteres
 
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana  6: Matrizes multidimensionais, estratégias de resolução de problemasSemana  6: Matrizes multidimensionais, estratégias de resolução de problemas
Semana 6: Matrizes multidimensionais, estratégias de resolução de problemas
 
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referênciaSemana  5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
Semana 5: Caracteres, tipos char e int, tipos de valor vs. tipos de referência
 
Semana 3: Introdução à linguagem de programação Java
Semana  3: Introdução à linguagem de programação Java Semana  3: Introdução à linguagem de programação Java
Semana 3: Introdução à linguagem de programação Java
 
Semana 2: Funções e listas, variáveis
Semana  2: Funções e listas, variáveisSemana  2: Funções e listas, variáveis
Semana 2: Funções e listas, variáveis
 
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
Semana  1: Programação como arte de resolver problemas, algoritmos e problema...Semana  1: Programação como arte de resolver problemas, algoritmos e problema...
Semana 1: Programação como arte de resolver problemas, algoritmos e problema...
 
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...Semana  0: Computadores, linguagens e linguagens de programação, Noções de al...
Semana 0: Computadores, linguagens e linguagens de programação, Noções de al...
 
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
Semana 11: Enumerações, limites de tipos numéricos (gama e precisão)
 
Eng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de softwareEng.ª do Software - 10. Testes de software
Eng.ª do Software - 10. Testes de software
 
Eng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validaçãoEng.ª do Software - 9. Verificação e validação
Eng.ª do Software - 9. Verificação e validação
 
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizadorEng.ª do Software - 8. Desenho de interfaces com o utilizador
Eng.ª do Software - 8. Desenho de interfaces com o utilizador
 
Eng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónicoEng.ª do Software - 7. Desenho arquitectónico
Eng.ª do Software - 7. Desenho arquitectónico
 

Kürzlich hochgeladen

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxTailsonSantos1
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.denisecompasso2
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfHELENO FAVACHO
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmicolourivalcaburite
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...DirceuNascimento5
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxAntonioVieira539017
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxLuizHenriquedeAlmeid6
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do séculoBiblioteca UCS
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfFrancisco Márcio Bezerra Oliveira
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...HELENO FAVACHO
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfHELENO FAVACHO
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxJustinoTeixeira1
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptjricardo76
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxLeonardoGabriel65
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdfmarlene54545
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptssuser2b53fe
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptxJssicaCassiano2
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosLucianoPrado15
 

Kürzlich hochgeladen (20)

Os editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptxOs editoriais, reportagens e entrevistas.pptx
Os editoriais, reportagens e entrevistas.pptx
 
O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.O que é arte. Definição de arte. História da arte.
O que é arte. Definição de arte. História da arte.
 
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdfProjeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
Projeto de Extensão - ENGENHARIA DE SOFTWARE - BACHARELADO.pdf
 
Pesquisa Ação René Barbier Livro acadêmico
Pesquisa Ação René Barbier Livro  acadêmicoPesquisa Ação René Barbier Livro  acadêmico
Pesquisa Ação René Barbier Livro acadêmico
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptxSlides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
Slides Lição 6, Betel, Ordenança para uma vida de obediência e submissão.pptx
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
PROJETO DE EXTENSÃO I - TECNOLOGIA DA INFORMAÇÃO Relatório Final de Atividade...
 
About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdfPROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
PROJETO DE EXTENÇÃO - GESTÃO DE RECURSOS HUMANOS.pdf
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
aula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.pptaula de bioquímica bioquímica dos carboidratos.ppt
aula de bioquímica bioquímica dos carboidratos.ppt
 
6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx6ano variação linguística ensino fundamental.pptx
6ano variação linguística ensino fundamental.pptx
 
migração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenosmigração e trabalho 2º ano.pptx fenomenos
migração e trabalho 2º ano.pptx fenomenos
 

Programação Orientada por Objectos - Aula 6

  • 1.
  • 2. Áreas, vistas e tipos de diagrama
  • 3. Níveis de pormenor
  • 4.
  • 5. UML (Unified Modeling Language) Linguagem visual de modelação Diagramas representam modelo do sistema Ferramenta importante de comunicação Autores originais Grady Booch Ivar Jacobson James Rumbaugh Normalização OMG (Object Management Group) http://www.uml.org/ Versão 2.2 2009/2010 Programação Orientada por Objectos 3
  • 6. Diagramas Estruturais Estáticos (de classes, de objectos) De desenho (estrutura interna, colaboração, componentes) Casos de uso Dinâmicos Máquinas de estados De actividades De interacção (de sequência, de comunicação) Físicos (de implantação) Gestão de modelos (de pacotes) 2009/2010 Programação Orientada por Objectos 4
  • 7. Diagramas 2009/2010 Programação Orientada por Objectos 5 Modelo Área dinâmica Área física Área de gestão do modelo Área estrutural … … … Vista de casos de uso Vista estática Vista de desenho … … Diagrama de classes Diagrama de objectos
  • 8. Diagrama de classes Representa Classes Relações entre classes Diagrama estrutural e estático Domínio do problema Conceitos Modelo de análise Domínio da solução Classes Modelo de desenho 2009/2010 Programação Orientada por Objectos 6 Classes e suas relações não mudam durante execução do programa. Modela a estrutura lógica do sistema. A perspectiva é não dinâmica: a evolução temporal do sistema em execução não é explícita. Compreensão do problema, análise, recolha de requisitos, elaboração de glossário do domínio. Desenho, síntese, implementação. Possível geração automática de código.
  • 9. Diagrama de objectos Representa Objectos Ligações entre objectos Diagrama estrutural e estático 2009/2010 Programação Orientada por Objectos 7 Fotografia estática do estado do sistema em execução num dado instante de tempo. Ajuda a compreender a estrutura dos dados do sistema. A perspectiva continua a não ser dinâmica: o sistema está parado no tempo.
  • 10. Classes package mypackage; … public abstract class MyAbstractClass { private Set<Type> set; private List<Type> list; private TreeSet<Type> sortedSet; public static final Type constant = value; public MyAbstractClass() {…} private Type privateFunction(final Type parameter) {…} void packagePrivateProcedure() {…} protected abstract Type abstractProtectedFunction(); public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 8 Classe representada por caixa com compartimentos. mypackage::MyAbstractClass Nome - set: Type [*] - list: Type [*] {ordered, nonunique} - sortedSet: Type [*] {sorted} + constant: Type = value {frozen} Atributos Operações «constructor»+ MyAbstractClass() - privateFunction(in parameter: Type): Type ~ packagePrivateProcedure() # abstractProtectedFunction(): Type + classPublicProcedure()
  • 11. Classes package mypackage; … public class MyClass { private Set<Type> set; private List<Type> list; private TreeSet<Type> sortedSet; public static final Type constant = value; public MyClass() {…} private Type privateFunction(final Type parameter) {…} void packagePrivateProcedure() {…} protected Type protectedFunction() {…} public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 9 mypackage::MyClass - set: Type [*] - list: Type [*] {ordered, nonunique} - sortedSet: Type [*] {sorted} + constant: Type = value {frozen} «constructor»+ MyClass() - privateFunction(in parameter: Type): Type ~ packagePrivateProcedure() # protectedFunction(): Type + classPublicProcedure()
  • 12. Objectos import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClasslocalVariable = new MyClass(); … } } 2009/2010 Programação Orientada por Objectos 10 localVariable : mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
  • 13. Objectos import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClasslocalVariable = new MyClass(); … } } 2009/2010 Programação Orientada por Objectos 11 : mypackage::MyClass localVariable : «ref»mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
  • 14. Classes: especialização package mypackage; … public class MyDerivedClassextends MyClass { … } 2009/2010 Programação Orientada por Objectos 12 mypackage::MyClass mypackage::MyDerivedClass Generalização Generalização
  • 15. Objectos: especialização import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClasslocalVariable = new MyDerivedClass(); … } } 2009/2010 Programação Orientada por Objectos 13 : mypackage::MyDerivedClass localVariable : «ref» mypackage::MyClass set = (value3, value1, value2) list = (value1, value2, value1) sortedSet = (value1, value2, value3) constant = value
  • 16. Classes genéricas package mypackage; … public class MyClass<T> { private Set<T> set; private List<T> list; private TreeSet<T> sortedSet; public static final T constant = value; public MyClass() {…} private TprivateFunction(final T parameter) {…} void packagePrivateProcedure() {…} protected TprotectedFunction() {…} public static void classPublicProcedure() {…} } 2009/2010 Programação Orientada por Objectos 14 T mypackage::MyClass - set: T [*] - list: T [*] {ordered, nonunique} - sortedSet: T [*] {sorted} + constant: T = value {frozen} «constructor»+ MyClass() - privateFunction(in parameter: T): T ~ packagePrivateProcedure() # protectedFunction(): T + classPublicProcedure()
  • 17. Classes genéricas: ligação (binding) import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClass<String>localVariable = …; … } } 2009/2010 Programação Orientada por Objectos 15 T mypackage::MyClass mypackage::MyClass<T -> String> - set: String [*] - list: String [*] {ordered, nonunique} - sortedSet: String [*] {sorted} + constant: String = value {frozen} «bind» <T -> String> «constructor»+ MyClass() - privateFunction(in parameter: String): String ~ packagePrivateProcedure() # protectedFunction(): String + classPublicProcedure() Ligação (binding)
  • 18. Objectos import mypackage; … public class MyClassTester { public static void main(final String[] arguments) { MyClass<String> localVariable = new MyClass<String>(); … } } 2009/2010 Programação Orientada por Objectos 16 : mypackage::MyClass<T -> String> set = (“string3”, “string1”, “string2”) list = (“string1”, “string2”, “string1”) sortedSet = (“string1”, “string2”, “string3”) constant = “string”
  • 19. Pacotes package mypackage; … public class MyClass { … } 2009/2010 Programação Orientada por Objectos 17 mypackage::MyClass
  • 20. Pacotes package mypackage; … public class MyClass { … } 2009/2010 Programação Orientada por Objectos 18 mypackage MyClass
  • 21. Pacotes package mypackage; … public class MyClass { … } 2009/2010 Programação Orientada por Objectos 19 mypackage MyClass Conteúdo
  • 22. Interfaces package mypackage; … public interface MyInterface { Type operation(); … } 2009/2010 Programação Orientada por Objectos 20 mypackage «interface» MyInterface operation(): Type …
  • 23. Realização Interfaces package mypackage; … public interface MyInterface { Type operation(); … } public class MyClassimplements MyInterface { @Override public Type operation() { … } … } 2009/2010 Programação Orientada por Objectos 21 mypackage «interface» MyInterface operation(): Type … MyClass + operation(): Type …
  • 24. Realização Interfaces package mypackage; … public interface MyInterface { … } public class MyClassimplements MyInterface { … } 2009/2010 Programação Orientada por Objectos 22 mypackage MyInterface MyClass
  • 25. Utilização Realização Interfaces package mypackage; … public interface MyInterface { … } public class MyClass implements MyInterface { … } public class MyOtherClass { … public void method(final MyInterface object) { final Type variable = object.operation(); … } … } 2009/2010 Programação Orientada por Objectos 23 mypackage MyOtherClass MyInterface MyInterface MyClass
  • 26. Utilização Realização Interfaces package mypackage; … public interface MyInterface { … } public class MyClass implements MyInterface { … } public class MyOtherClass { … public void method(final MyInterface object) { final Type variable = object.operation(); … } … } 2009/2010 Programação Orientada por Objectos 24 mypackage MyOtherClass «interface» MyInterface MyClass
  • 27. Restrições 2009/2010 Programação Orientada por Objectos 25 Rational Rational {mdc(numerator, denominator} = 1 Ʌ 0 < denominator} - numerator: int - denominator: int - numerator: int - denominator: int … … {mdc(numerator, denominator} = 1 Ʌ 0 < denominator}
  • 28. Principais relações entre classes Generalização Associação Agregação Composição Abstracção Realização Ligação (binding) Utilização Invocação Criação 2009/2010 Programação Orientada por Objectos 26 «bind» <…> «call» «create»
  • 29. Utilização: criação package vehicles; public class Car { … } package vehicles; public class Factory { … public Car newCar(…) { … return new Car(…); } … } 2009/2010 Programação Orientada por Objectos 27 vehicles Factory «create» Criação (utilização) Car
  • 30. Associação 2009/2010 Programação Orientada por Objectos 28 business Company Associação Person
  • 31. Associação: nome 2009/2010 Programação Orientada por Objectos 29 business Company WorksFor Associação Person
  • 32. Associação: papeis 2009/2010 Programação Orientada por Objectos 30 business Company employer WorksFor Associação employee Person
  • 33. Associação: multiplicidade 2009/2010 Programação Orientada por Objectos 31 business Company employer 0..1 WorksFor Associação employee(s) * Person
  • 34. Multiplicidade 2009/2010 Programação Orientada por Objectos 32
  • 35. Associação: representação package business; public class Company { private Set<Person> employees; … } public class Person { private Company employer; … } 2009/2010 Programação Orientada por Objectos 33 business Company employer 0..1 WorksFor Associação employee(s) * Person
  • 36. Representação e multiplicidade 2009/2010 Programação Orientada por Objectos 34
  • 37. Associação: visibilidade package business; public class Company { private Set<Person> employees; … } public class Person { private Company employer; … } 2009/2010 Programação Orientada por Objectos 35 business Company - employer 0..1 WorksFor Associação - employee(s) * Person
  • 38. Associação: navegabilidade package business; public class Company { private Set<Person> employees; … } public class Person { private Company employer; … } 2009/2010 Programação OrientadaporObjectos 36 business Company employer 0..1 WorksFor Associação - employee(s) * Person
  • 39. Associação package vehicles; public class Car { private Set<Wheel> wheels; … } public class Wheel { private Car car; … } 2009/2010 Programação Orientada por Objectos 37 vehicles Car - car 0..1 IsPartOf - wheel(s) 3..6 Wheel
  • 40. Associação: agregação package vehicles; public class Car { @Parts private Set<Wheel> wheels; … } public class Wheel { @Whole private Car car; … } 2009/2010 Programação Orientada por Objectos 38 vehicles Car - car 0..1 IsPartOf Agregação - wheel(s) 3..6 Wheel
  • 41. Associação package business; public class Company { private Set<Department> departments; … } public class Department { private Company company; … } 2009/2010 Programação Orientada por Objectos 39 business Company - company 1 IsPartOf - department(s) * Departament
  • 42. Associação: composição package business; public class Company { @Components private Set<Department> departments; … } public class Department { @Composite private Company company; … } 2009/2010 Programação Orientada por Objectos 40 business Company - company 1 IsPartOf Composição - department(s) * Departament
  • 43. A reter Tipos de diagrama UML Notações para classes, objectos e relações UML como forma de comunicação entre pessoas que precisam de se entender em relação A um problema (análise) A uma solução (desenho) UML como modelo formal e possível fonte para geração automática de código (e.g., Java) 2009/2010 Programação Orientada por Objectos 41
  • 44. Referências UML® ResourcePage (http://www.uml.org/) Martin Fowler, UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3.ª edição, Addison-Wesley, 2003.ISBN: 0-321-19368-7(1.ª e 2.ª ediçõesnabiblioteca) James Rumbaugh et al., The Unified Modeling Language Reference Manual, 2.ª edição, Addison-Wesley, 2005.ISBN: 0-321-24562-8(1.ª edição do guia do utilizador na biblioteca) 2009/2010 Programação Orientada por Objectos 42
  • 45. A ler para as próximas aulas ... Capítulos 1 a 10 e 16 do livro: Y. Daniel Liang, Introduction to Java Programming, 7.ª edição, Prentice Hall, 2008.ISBN: 978-0-13-605966-0 2009/2010 Programação Orientada por Objectos 43
  • 46. Sumário Introdução ao UML Noções Áreas, vistas e tipos de diagrama Níveis de pormenor Notações para classes, objectos e relações Notações para as relações mais importantes, incluindo a generalização, a associação, a agregação e a composição 2009/2010 Programação Orientada por Objectos 44

Hinweis der Redaktion

  1. Cada tipo de diagrama dá-nos uma visão ou perspectiva do sistema. É crucialque os diferentes diagramas sejam coerentes entre si. Cada diagrama pode ser construído ou visto com diferentes níveis de granularidade (pormenor). O mesmo tipo de diagramas pode ser usado para expressar aspectos diferentes do sistema: Diagrama de classes para análise/desenho Diagrama de actividades para actores/operações/instruções individuaisCom ferramentas de modelação adequadas, os modelos representados pelos diagramas podem ser usados para gerar código automaticamente. As mesmas ferramentas podem também simplificar a tarefa de obter o modelo correspondente a código já existente.
  2. Nível de pormenor é variável. O nome, atributos, operações ficam em compartimentos separados.Usa-se o sublinhado nos métodos ou atributos de classe (em Java, static). O sublinhado no nome da classe tem um significado muito diferente, que se verá à frente. O itálico no nome da classe significa que a classe é abstracta. O mesmo acontece na linha de uma operação: se estiver em itálico, a operação é abstracta. Entre aspas «» escrevem-se os chamados estereótipos. O estereótipo «constructor» assinala uma operação que na realidade é um construtor. Entre parênteses rectos assinala-se a multiplicidade dos atributos. * significa “qualquer número”. Entre chavetas escrevem-se propriedades dos atributos. Ordered indica, num atributo com multiplicidade não unitária, que os elementos têm uma ordem extrínseca relevante. Nonunique indica que os elementos podem repetir-se. Sorted indica que os elementos têm uma ordem intrínseca (que é a sua ordem natural). In indica que o parâmetro é apenas de entrada. Não se espera, por isso, que seja modificado (ou melhor, no caso de ser uma referência, espera-se que o objecto referenciado não mude de valor, pelo menos através do parâmetro). Frozen indica que o atributo, depois de inicializado, não mudará de valor.Note-se a tradução para Java da notação. Chama-se a atenção para os atributos com multiplicidade não unitária, que são traduzidos em colecções de tipos apropriados.Categorias de acesso: privado+ público# protegido~ pacote
  3. Vamos alterar a classe para não ser abstracta, i.e., para ser concreta.
  4. Os objectos representam-se em caixas, como as classes, mas agora o nome é o do objecto, seguido de : e finalmente do nome da classe. Todo o título é sublinhado. É usual representarem-se os valores das propriedades (atributos) no compartimento apropriado.O nome de um objecto na realidade não é o nome do objecto. Tipicamente é o nome de uma referência através da qual acedemos ao objecto. Assim, pode haver múltiplos “nomes” para um objecto, quer em simultâneo, quer em sequência.
  5. Atenção! Isto não é UML, em rigor. Mas ajuda-nos a perceber a diferença entre referências e objectos referenciados.
  6. O UML permite-nos omitir os pormenores. Devemos fazê-lo sempre que isso tornar mais claro o diagrama, i.e., sempre que isso facilitar a apreensão do aspecto do desenho que o diagrama pretende representar.A relação de generalização é uma das mais importantes no UML. Repare-se na notação usada para as anotações, que funcionam como comentários
  7. Qual a relação entre classe genérica MyClasse&lt;T&gt; e a classe MyClasse&lt;T -&gt; String&gt;? É uma relação de “ligação” (binding)
  8. Pode, por isso, falar-se numa relação de conteúdo. Quando a relação é entre classes, chama-se-lhe embutimento (nesting).
  9. Note-se que as operações nas interfaces são sempre públicas e abstractas. Normalmente assume-se que assim é também no UML, pelo que se omitem as respectivas notações.
  10. Atenção! Assume-se que os vários tipos estão definidos em ficheiros diferentes, como é evidente! Só para poupar espaço é que se colocam as definições como se estivessem dentro do mesmo ficheiro. Daí que, neste e nos restantes diapositivos, haja apenas uma declaração de pacote mesmo quando há vários tipos.
  11. Existe dependência (uma classe usa outra), mas nenhuma é um atributo de outra.