Interfaces. Professoras: Ariane Machado Lima Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO 1
|
|
- Gabriel Rodrigues Mendes
- 6 Há anos
- Visualizações:
Transcrição
1 Interfaces Professoras: Ariane Machado Lima Fátima L. S. Nunes 1 1 1
2 Interface O que significa? 2 2 2
3 Interface Definição: s.f. Limite comum a dois corpos, sistemas, fases ou espaços, que permite sua ação mútua ou intercomunicação ou trocas entre eles: interface produção-distribuição; interface gás-líquido. / Ponto em que interagem coisas diversas. / Informática Meio físico ou lógico através do qual um ou mais dispositivos ou sistemas incompatíveis conseguem comunicar-se entre si
4 Interface 4 4 4
5 Interface O que é API (Application Programming Interface)?... pensem na API do Java
6 Interface Encapsulamento??? 6 6 6
7 Interface Encapsulamento: Conceito da POO que permite esconder do usuário os atributos e a implementação dos métodos da classe. Conhecendo apenas a interface de uma classe, podemos usar objetos da mesma sem conhecer detalhes de implementação. Interface = métodos disponíveis + suas respectivas assinaturas
8 Interface Interface: Útil também quando queremos ter uma classe, mas não implementá-la. Muito interessante na fase de especificação de um Sistema. Ex: eu poderia definir uma interface de Pessoa (isto é, métodos que uma Pessoa deveria saber executar) sem ter que implementá-la Implementação ficaria por conta das subclasses 8 8 8
9 class ComunidadeAcademica Pessoa [] comunidade = new Pessoa [5000]; int nrpessoas = 0; void inserepessoa(pessoa p) comunidade[nrpessoas] = p; nrpessoas++; Pessoa buscapessoa (int nrusp) int i = 0; while (i < nrpessoas) if (comunidade[i].obtemnrusp() == nrusp) i++; return comunidade[i]; System.out.println("Pessoa não encontrada"); return null; void imprimedados() for (int i=0; i<nrpessoas; i++) comunidade[i].imprimedados(); Neste exemplo, que métodos Pessoa deveria saber executar? 9 9 9
10 class ComunidadeAcademica Pessoa [] comunidade = new Pessoa [5000]; int nrpessoas = 0; void inserepessoa(pessoa p) comunidade[nrpessoas] = p; nrpessoas++; Pessoa buscapessoa (int nrusp) int i = 0; while (i < nrpessoas) if (comunidade[i].obtemnrusp() == nrusp) i++; return comunidade[i]; System.out.println("Pessoa não encontrada"); return null; void imprimedados() for (int i=0; i<nrpessoas; i++) comunidade[i].imprimedados(); Neste exemplo, que métodos Pessoa deveria saber executar?
11 Interface Um exemplo: criação de um zoológico virtual Vários tipos de animais Mensagens para cada animal: nasça() passeiepelatela() durma()
12 Interface Um exemplo: criação de um zoológico virtual Mas você não conhece os animais!!! Como um morcego nasce? Como uma zebra dorme? Como um pato anda?
13 Interface Um exemplo: criação de um zoológico virtual Como fazer???
14 Interface Um exemplo: criação de um zoológico virtual Como fazer??? Pedir para alguém que conhece os animais implementar as classes necessárias. Exemplo: Zebra, Morcego e Pato Só que eu preciso ter um padrão para todos os animais... Então
15 Interface Um exemplo: criação de um zoológico virtual interface Animal void nasça(); void passeiepelatela(); void durma(); double peso();
16 Interface Um exemplo: criação de um zoológico virtual interface Animal void nasça(); void passeiepelatela(); void durma(); double peso();
17 Interface Um exemplo: criação de um zoológico virtual interface Animal void nasça(); void passeiepelatela(); void durma(); double peso(); O programador que vai implementar a classe Morcego deve declarar explicitamente que vai usar a interface Animal palavra chave implements
18 Interface interface Animal public class Morcego implements Animal void nasça(); void passeiepelatela(); void durma(); public void nasça() System.out.println("Nasceu um morceguinho..."); public void passeiepelatela() System.out.println("Voo rápido e rasante!!!"); double peso(); public void durma() System.out.println("Dorme de cabeça para baixo."); public double peso() System.out.println("Este é um morcego gordo!"); return (4.5);
19 Interface interface Animal public class Morcego implements Animal void nasça(); void passeiepelatela(); void durma(); double peso(); public void nasça() System.out.println( Nasceu um morceguinho... ); implements obriga o programador a escrever o código de todos os métodos, considerando suas assinaturas. public passeiopelatela() System.out.println( Voo rápido e rasante!!! ); public durma() Todos os métodos da interface System.out.println( Dorme de cabeça para baixo. ); devem ser públicos. Por quê? double peso() System.out.println( Este é um morcego gordo! ); return (4.5);
20 Interface interface Animal public class Morcego implements Animal void nasça(); void passeiepelatela(); void durma(); double peso(); Não definimos especificadores de acesso na interface, pelo mesmo motivo. public void nasça() System.out.println( Nasceu um morceguinho... ); implements obriga o programador a escrever o código de todos os métodos, considerando suas assinaturas. public passeiopelatela() System.out.println( Voo rápido e rasante!!! ); public durma() Todos os métodos da interface System.out.println( Dorme de cabeça para baixo. ); devem ser públicos. double peso() System.out.println( Este é um morcego gordo! ); return (4.5);
21 Interface interface Animal public class Pato implements Animal void nasça(); void passeiepelatela(); void durma(); double peso(); public double peso; Pato(double p) peso = p; public void nasça() System.out.println("Quebra o ovo."); public void passeiepelatela() System.out.println("Anda em duas patas. Quá Quá Quá."); public void durma() System.out.println("Dorme em pé."); public double peso() return peso;
22 Interface interface Animal void nasça(); void passeiepelatela(); void durma(); double peso(); public class Zebra implements Animal double peso; int listras; Zebra(double p, int l) peso = p; listras =l; public void nasça() System.out.println("Zebrinha bebê nascendo..."); public void passeiepelatela() System.out.println("Zebra galopa pela tela."); public void durma() System.out.println("Zebra dorme sem roncar... zzzzzzzzzzzzzzzz..."); public double peso() return peso; public void exibelistras() System.out.println("Minha zebra tem " + listras + "listras.");
23 Interface interface Animal void nasça(); void passeiepelatela(); void durma(); double peso(); public class Zebra implements Animal double peso; int listras; Zebra(double p, int l) peso = p; listras =l; public void nasça() System.out.println("Zebrinha bebê nascendo..."); public void passeiepelatela() System.out.println("Zebra galopa pela tela."); Pode ter métodos extras (específicos da classe) public void durma() System.out.println("Zebra dorme sem roncar... zzzzzzzzzzzzzzzz..."); public double peso() return peso; public void exibelistras() System.out.println("Minha zebra tem " + listras + "listras.");
24 Interface Observação sobre arquivos X classes em Java: normalmente cada classe vai em um arquivo.java de mesmo nome da classe, mas isto não é obrigatório; cada arquivo.java pode ter no máximo uma classe pública (do tipo public); caso exista uma classe pública, seu nome deve ser igual ao do arquivo.java ; desta forma, as classes anteriores (Morcego, Pato e Zebra) devem obrigatoriamente estar em arquivos separados;
25 Interface Observação sobre interfaces: não podemos criar objetos a partir de uma interface; no exemplo, não podemos criar objetos diretamente da classe Animal; criamos objetos a partir das classes que implementam a interface (Morcego, Pato e Zebra) ; no entanto, cada objeto criado, além de ser um objeto da classe respectiva, também é um objeto do tipo Animal (INTERFACE TAMBÉM DEFINE UM TIPO); Vamos usar as classes criadas
26 Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); O que significa? static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p);
27 Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); O que significa? Posso executar os métodos sem ter objetos instanciados ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p);
28 class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p); Interface > Zoologico.fazFuncionar() Zebrinha bebê nascendo... Zebra galopa pela tela. Zebra dorme sem roncar... zzzzzzzzzzzzzzzz... Zebrinha bebê nascendo... Zebra galopa pela tela. Zebra dorme sem roncar... zzzzzzzzzzzzzzzz... Nasceu um morceguinho... Voo rápido e rasante!!! Dorme de cabeça para baixo. Quebra o ovo. Anda em duas patas. Quá Quá Quá Dorme em pé
29 Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); Observe este código. Quais as consequências dessas definições??? ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p);
30 public class Zebra implements Animal interface Animal void nasça(); void passeiepelatela(); double peso; int listras; Zebra(double p, int l) peso = p; listras =l; public void nasça() System.out.println("Zebrinha bebê nascendo..."); void durma(); double peso(); public void passeiepelatela() System.out.println("Zebra galopa pela tela."); public void durma() System.out.println("Zebra dorme sem roncar... zzzzzzzzzzzzzzzz..."); public double peso() return peso; public void exibelistras() System.out.println("Minha zebra tem " + listras + "listras.");
31 public class Zebra implements Animal interface Animal void nasça(); void passeiepelatela(); double peso; int listras; Zebra(double p, int l) peso = p; listras =l; public void nasça() System.out.println("Zebrinha bebê nascendo..."); void durma(); double peso(); public void passeiepelatela() System.out.println("Zebra galopa pela tela."); public void durma() System.out.println("Zebra dorme sem roncar... zzzzzzzzzzzzzzzz..."); public double peso() return peso; public void exibelistras() System.out.println("Minha zebra tem " + listras + "listras.");
32 public class Zebra implements Animal interface Animal void nasça(); void passeiepelatela(); double peso; int listras; Zebra(double p, int l) peso = p; listras =l; public void nasça() System.out.println("Zebrinha bebê nascendo..."); void durma(); double peso(); public void passeiepelatela() System.out.println("Zebra galopa pela tela."); public void durma() System.out.println("Zebra dorme sem roncar... zzzzzzzzzzzzzzzz..."); public double peso() return peso; public void exibelistras() System.out.println("Minha zebra tem " + listras + "listras.");
33 public class Zebra implements Animal interface Animal void nasça(); void passeiepelatela(); double peso; int listras; Zebra(double p, int l) peso = p; listras =l; public void nasça() System.out.println("Zebrinha bebê nascendo..."); void durma(); double peso(); public void passeiepelatela() System.out.println("Zebra galopa pela tela."); public void durma() System.out.println("Zebra dorme sem roncar... zzzzzzzzzzzzzzzz..."); public double peso() return peso; public void exibelistras() System.out.println("Minha zebra tem " + listras + "listras.");
34 public class Zebra implements Animal interface Animal void nasça(); void passeiepelatela(); void durma(); double peso(); double peso; int listras; Zebra(double p, int l) peso = p; listras =l; public void nasça() System.out.println("Zebrinha bebê nascendo..."); public void passeiepelatela() System.out.println("Zebra galopa pela tela."); Não faz parte da interface... E daí? public void durma() System.out.println("Zebra dorme sem roncar... zzzzzzzzzzzzzzzz..."); public double peso() return peso; public void exibelistras() System.out.println("Minha zebra tem " + listras + "listras.");
35 Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p); Não posso instanciar objetos da interface (Animal). Posso instanciar somente das classes que implementam a interface... Mas posso definir que o tipo do objeto instanciado é Animal
36 Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p); Consequência: > Zebra zebrapequena = new Zebra(50, 105); > Animal zebragrande = new Zebra(230,160); > zebrapequena.exibelistras(); Minha zebra tem 105 listras. > zebragrande.exibelistras();????
37 Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p); Consequência: > Zebra zebrapequena = new Zebra(50, 105); > Animal zebragrande = new Zebra(230,160); > zebrapequena.exibelistras(); Minha zebra tem 105 listras. > zebragrande.exibelistras(); Static Error: No method in Animal with name 'exibelistras' accepts arguments ()
38 class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p); Interface A associação de qual método executar é dinâmica, mas a interface é definida estaticamente (Java é tipada!) Consequência: > Zebra zebrapequena = new Zebra(50, 105); > Animal zebragrande = new Zebra(230,160); > zebrapequena.exibelistras(); Minha zebra tem 105 listras. > zebragrande.exibelistras(); Static Error: No method in Animal with name 'exibelistras' accepts arguments ()
39 class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); Interface static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); Dá para melhorar??? ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p);
40 class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p); static public void fazfuncionar() Animal bicharada []= new Animal [4]; bicharada [0] = new Zebra(50, 105); bicharada [1] = new Zebra(230,160); bicharada [2] = new Morcego(); bicharada [3] = new Pato (3.2);???
41 class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p); static public void fazfuncionar() Animal bicharada []= new Animal [4]; bicharada [0] = new Zebra(50, 105); bicharada [1] = new Zebra(230,160); bicharada [2] = new Morcego(); bicharada [3] = new Pato (3.2); for (int i = 0; i < bicharada.length; i++) ciclodevida(bicharada[i]);
42 class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); Interface static public void fazfuncionar() Animal bicharada []= new Animal [4]; bicharada [0] = new Zebra(50, 105); bicharada [1] = new Zebra(230,160); bicharada [2] = new Morcego(); bicharada [3] = new Pato (3.2); for (int i = 0; i < bicharada.length; i++) ciclodevida(bicharada[i]); Dá para escrever de outro jeito???
43 Interface class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Animal bicharada []= new Animal [4]; bicharada [0] = new Zebra(50, 105); bicharada [1] = new Zebra(230,160); bicharada [2] = new Morcego(); bicharada [3] = new Pato (3.2); for (int i = 0; i < bicharada.length; i++) ciclodevida(bicharada[i]); class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Animal bicharada []= new Zebra(50, 105), new Zebra(230,160), new Morcego(), new Pato (3.2) for (int i = 0; i < bicharada.length; i++) ciclodevida(bicharada[i]);
44 Primeira versão class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); Interface Última versão class Zoologico static void ciclodevida (Animal animal) animal.nasça(); animal.passeiepelatela(); animal.durma(); static public void fazfuncionar() Zebra zebrapequena = new Zebra(50, 105); Animal zebragrande = new Zebra(230,160); Morcego m = new Morcego(); Pato p= new Pato (3.2); ciclodevida(zebrapequena); ciclodevida(zebragrande); ciclodevida(m); ciclodevida(p); static public void fazfuncionar() Animal bicharada []= new Zebra(50, 105), new Zebra(230,160), new Morcego(), new Pato (3.2) for (int i = 0; i < bicharada.length; i++) ciclodevida(bicharada[i]);
45 Implementando mais de uma Interface No mundo real, os objetos não obedecem uma única interface. Exemplo: um indivíduo, pode ser ao mesmo tempo : um homem (ou mulher) um professor um coordenador de curso um sócio de clube cada um desses papéis poderia entender mensagens próprias
46 Implementando mais de uma Interface indivíduo nasce, cresce, morre: homem alista-se no exército professor ministra aula, avalia alunos, publica artigos coordenador de curso atribui aulas, faz horário sócio de clube paga mensalidade, usa piscina
47 Implementando mais de uma Interface Exemplo de implementação: interfaces Voador e Transportador depessoas interface Voador void voa(); void aterrisa(); interface TransportadorDePessoas void entrampessoas(); void saempessoas();
48 Implementando mais de uma Interface interface Voador void voa(); void aterrisa(); class Ave implements Voador public void voa() System.out.println ("Bate as asas"); public void aterrisa() System.out.println ("Desliza suavemente até tocar o chão");
49 Implementando mais de uma Interface interface TransportadorDePessoas void entrampessoas(); void saempessoas(); class Onibus implements TransportadorDePessoas public void entrampessoas() System.out.println ("Abre a porta para as pessoas entrarem"); public void saempessoas() System.out.println ("Abre a porta para as pessoas saírem");
50 Implementando mais de uma Interface interface Voador void voa(); void aterrisa(); interface TransportadorDePessoas void entrampessoas(); void saempessoas(); class Aviao implements Voador, TransportadorDePessoas public void voa() System.out.println ("Liga as turbinas e decola."); public void aterrisa() System.out.println ("Abaixa o trem de pouso e desce - preferencialmente no chão e suavemente... :-)"); public void entrampessoas() System.out.println ("Procedimento de embarque - idosos, gestantes e portadores de deficiência têm preferência..."); public void saempessoas() System.out.println ("Desembarque. Passageiros devem aguardar até parada completa da aeronave.");
51 Implementando mais de uma Interface class TestaInterface public static void executa() TransportadorDePessoas t = new Onibus(); Voador v = new Ave(); Aviao a = new Aviao(); t.entrampessoas(); t.saempessoas(); v.voa(); v.aterrisa(); a.entrampessoas(); a.voa(); > TestaInterface.executa() Abre a porta para as pessoas entrarem Abre a porta para as pessoas saírem Bate as asas Desliza suavemente até tocar o chão Procedimento de embarque - idosos, gestantes e portadores de deficiência têm preferência... Liga as turbinas e decola
52 Um exemplo pouco mais complexo Classe Fruta atributos: nome, peso, preço atributos devem ser carregados no construtor
53 Um exemplo pouco mais complexo Classe Fruta atributos: nome, peso, preço atributos devem ser carregados no construtor class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco);
54 Um exemplo pouco mais complexo Classe Fruta queremos criar um vetor de frutas e: ordenar por nome ordenar por peso como fazer???
55 Um exemplo pouco mais complexo Classe Fruta queremos criar um vetor de frutas e: ordenar por nome ordenar por peso como fazer??? já vimos métodos de ordenação podemos escolher um método e implementar mudar somente o critério de comparação (preço ou peso)
56 Um exemplo pouco mais complexo class Quitanda // define array e construtor // imprime frutas // ordena por Preço // ordena por Peso // método principal que invoca os demais class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco);
57 Um exemplo pouco mais complexo class Quitanda // define array e construtor???? // imprime frutas // ordena por Preço // ordena por Peso // método principal que invoca os demais class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco);
58 Um exemplo pouco mais complexo class Quitanda // define array e construtor Fruta [] frutas = new Fruta [5]; public Quitanda() frutas [0] = new Fruta ("Laranja", 0.2, 0.5); frutas [1] = new Fruta ("Kiwi", 0.1, 2); frutas [2] = new Fruta ("Mamão", 1.5, 1.2); frutas [3] = new Fruta ("Pera", 0.3, 1.7); frutas [4] = new Fruta ("Banana", 0.3, 0.2); // imprime frutas class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco); // ordena por Preço
59 Um exemplo pouco mais complexo class Quitanda // define array e construtor... // imprime frutas???? // ordena por Preço // ordena por Peso // método principal que invoca os demais class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco);
60 Um exemplo pouco mais complexo class Quitanda // define array e construtor... // imprime frutas public void imprime() for (int i = 0; i < frutas.length; i++) frutas [i].imprime(); class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco);
61 Um exemplo pouco mais complexo class Quitanda // define array e construtor // imprime frutas // ordena por Preço???? // ordena por Peso class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; // método principal que invoca os demais void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco);
62 Um exemplo pouco mais complexo class Quitanda // define array e construtor // imprime frutas // ordena por Preço método inserção direta void ordenaporpreco () int ivet, isubv; Fruta frutaainserir; for (ivet=1; ivet < frutas.length; ivet++) class Fruta class Fruta String nome; String nome; double preco, peso; double preco, peso; Fruta (String n, double p, double Fruta (String pr) n, double p, double pr) nome = n; nome = n; peso = p; peso = p; preco = pr; preco = pr; void imprime() void imprime() frutaainserir = frutas[ivet]; System.out.print("Nome: System.out.print("Nome: " + nome); " + isubv = ivet; System.out.print( nome); Peso: " + peso); System.out.println( System.out.print( Preço: " Peso: + preco); " + while ((isubv > 0) && (frutas[isubv -1].preco > frutaainserir.preco)) peso); System.out.println( Preço: " + frutas[isubv] = frutas[isubv - 1]; preco); isubv--; frutas [isubv] = frutaainserir;
63 Um exemplo pouco mais complexo class Quitanda // define array e construtor // imprime frutas // ordena por Preço // ordena por Peso???? // método principal que invoca os demais class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco);
64 Um exemplo pouco mais complexo class Quitanda // define array e construtor // imprime frutas // ordena por Preço // ordena por Peso void ordenaporpreco () int ivet, isubv; Fruta frutaainserir; for (ivet=1; ivet < frutas.length; ivet++) frutaainserir = frutas[ivet]; isubv = ivet; while ((isubv > 0) && (frutas [isubv -1].peso > frutaainserir.peso)) frutas[isubv] = frutas[isubv - 1]; isubv--; frutas [isubv] = frutaainserir; class Fruta String nome; double preco, peso; Fruta (String n, double p, double pr) nome = n; peso = p; preco = pr; void imprime() System.out.print("Nome: " + nome); System.out.print( Peso: " + peso); System.out.println( Preço: " + preco);
65 Um exemplo pouco mais complexo class Quitanda // define array e construtor // imprime frutas // ordena por Preço // ordena por Peso // método principal que invoca os demais public static void main (String [] args) Quitanda xepa = new Quitanda(); System.out.println("Desordenado"); xepa.imprime(); System.out.println("Em ordem de preço"); xepa.ordenaporpreco(); xepa.imprime(); System.out.println("Em ordem de peso"); xepa.ordenaporpeso(); xepa.imprime();
66 Um exemplo pouco mais complexo Qual é o problema do código apresentado?
67 Um exemplo pouco mais complexo Qual é o problema do código apresentado? Código duplicado para ordenação. E se tivesse que ordenar por outros critérios?
68 Um exemplo pouco mais complexo Qual é o problema do código apresentado? Código duplicado para ordenação. E se tivesse que ordenar por outros critérios? Problema mais código repetido!
69 Um exemplo pouco mais complexo Qual é o problema do código apresentado? Código duplicado para ordenação. E se tivesse que ordenar por outros critérios? Problema mais código repetido! Solução: interface!
70 Um exemplo pouco mais complexo Qual é o problema do código apresentado? Código duplicado para ordenação. E se tivesse que ordenar por outros critérios? Problema mais código repetido! Solução: interface! manter o código de comparação em um único método manter em métodos diferentes somente os trechos diferentes
71 Um exemplo pouco mais complexo interface ComparadorDeFrutas boolean ehmenor (Fruta a, Fruta b); class ComparaPreco implements ComparadorDeFrutas public boolean ehmenor (Fruta a, Fruta b) return (a.preco < b.preco); class ComparaPeso implements ComparadorDeFrutas public boolean ehmenor (Fruta a, Fruta b) return (a.peso < b.peso); class ComparaNome implements ComparadorDeFrutas public boolean ehmenor (Fruta a, Fruta b) return (a.nome.compareto(b.nome)< 0);
72 Um exemplo pouco mais complexo class Quitanda2 // define array e construtor // imprime frutas // ordena somente um método para ordenar!!! // método principal que invoca os demais
73 Um exemplo pouco mais complexo class Quitanda2 // define array e construtor // imprime frutas // ordena somente um método para ordenar!!! void ordena (ComparadorDeFrutas c) int ivet, isubv; Fruta frutaainserir; for (ivet=1; ivet < frutas.length; ivet++) frutaainserir = frutas[ivet]; isubv = ivet; while ((isubv > 0) && (c.ehmenor(frutaainserir, frutas [isubv -1]) )) frutas[isubv] = frutas[isubv - 1]; isubv--; frutas [isubv] = frutaainserir;
74 Um exemplo pouco mais complexo class Quitanda2 // métodos anteriores // método principal que invoca os demais public static void main (String [] args) Quitanda2 xepa = new Quitanda2(); System.out.println("Frutas desordenadas"); xepa.imprime(); System.out.println("Em ordem de preço"); ComparadorDeFrutas cpr = new ComparaPreco(); xepa.ordena(cpr); xepa.imprime(); System.out.println("Em ordem de peso"); ComparadorDeFrutas cp = new ComparaPeso(); xepa.ordena(cp); xepa.imprime(); System.out.println("Em ordem alfabética de nome"); xepa.ordena(new ComparaNome ()); // forma super contraída de chamar o método ordena xepa.imprime();
75 Um exemplo pouco mais complexo class Quitanda2 // métodos anteriores // método principal que invoca os demais public static void main (String [] args) Quitanda2 xepa = new Quitanda2(); System.out.println("Frutas desordenadas"); xepa.imprime(); System.out.println("Em ordem de preço"); ComparadorDeFrutas cpr = new ComparaPreco(); xepa.ordena(cpr); xepa.imprime(); System.out.println("Em ordem de peso"); ComparadorDeFrutas cp = new ComparaPeso(); xepa.ordena(cp); xepa.imprime(); System.out.println("Em ordem alfabética de nome"); xepa.ordena(new ComparaNome ()); // forma super contraída de chamar o método ordena xepa.imprime();
76 Por que interfaces é importante??? Se objetos fazem referência a interfaces e não a classes: mais fácil alterar as classes de um sistema sem ter que alterar aquelas que as utilizam (se a assinatura do método se mantém igual) ; fácil implementar polimorfismo de comportamento: classes que mudam de comportamento - chaveamento de comportamento pode ser feito durante compilação ou durante execução; desenvolvimento de sistemas grandes, envolvendo muitos programadores todos obedecem as interfaces integração posterior mais fácil; eliminação de código repetido
77 Programe para as interfaces, não para as implementações!!!
78 Observação Interfaces Java também podem definir constantes de classe (atributos static final) Na interface você NÃO precisa colocar o static final Ex: interface Cores int branco = 0; int preto = 255;
79 Exercícios Exercício 1 da lista
80 Interfaces Professoras: Ariane Machado Lima Fátima L. S. Nunes
Herança. Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman SISTEMAS DE INFORMAÇÃO 1
Herança Fátima L. S. Nunes Luciano A. Digiampietri Norton T. Roman 1 1 1 Motivação Você está desenvolvendo um sistema de gerenciamento de pessoal para a USP Precisa fazer: Cadastro de alunos e professores
Classes e Objetos. Sintaxe de classe em Java
Classes e Objetos Classes e Objetos A Programação Orientada a Objetos (POO) é uma técnica de programação que se baseia na construção de classes e utilização de objetos. Os objetos são formados por dados
Construtores e Especificadores de Acesso
Construtores e Especificadores de Acesso Professora: Fátima L. S. Nunes 1 1 1 Orientação a Objetos Conceitos do Paradigma de Orientação a Objetos já vistos: Classes atributos e métodos Objetos instanciação
Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)
Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private
Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Herança Aula de Hoje Problema Considere uma empresa que tenha tipos de empregados no aplicativo de folha de pagamento Um empregado tem nome,
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
Linguagem de Programação III
Linguagem de Programação III Aula-7 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Interfaces. Universidade Católica de Pernambuco Ciência da Computação. Prof. Márcio Bueno.
Interfaces Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em
Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO
CONCEITOS BÁSICOS DE ORIENTAÇÃO A OBJETOS PROF. ME. HÉLIO ESPERIDIÃO CLASSES E OBJETOS PARA PROGRAMAÇÃO ORIENTADA A OBJETOS Classes são estruturas das linguagens de POO criadas para conter os dados que
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Interfaces POO. Prof. Marcio Delamaro
Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso
Linguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa
Linguagem de Programação III
Linguagem de Programação III Aula-4 Construtores e Sobrecarga Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de dados nativos em Java
Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs
Programação Orientada a Objetos Professor: André Luis Meneses Silva andreluis.ms@gmail.com br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância
Classes Abstratas e Interfaces AULA 12
Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Classes Abstratas e Interfaces AULA 12 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Até aqui Quando usar herança?
Polimorfismo e Ligação Dinâmica. Alcides Pamplona Polimorfismo e Ligação Dinâmica
Alcides Pamplona Linguagem de Programação CESBD 2010 Alcides Pamplona alcides.pamplona@gmail.com Tópicos Ligação Dinamica Polimorfismo Verificação Dinâmica de Tipos 2 Introdução A vinculação ou ligação
Paradigmas de Programação. Java First-Tier: Aplicações. Orientação a Objetos em Java (I) Nomenclatura. Paradigma OO. Nomenclatura
Java First-Tier: Aplicações Orientação a Objetos em Java (I) Paradigmas de Programação Programação Funcional Programação Procedural Programação Orientada por Objetos Grupo de Linguagens de Programação
Programação Java (nível intermediário) 4. Polimorfismo
Programação Java (nível intermediário) 4 Polimorfismo Introdução Uma linguagem orientada a objetos nos permite definir novos tipos para variáveis Nós definimos um novo tipo através de uma classe Este tipo
Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos
Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){
Interfaces e Classes Abstratas
Interfaces e Classes Abstratas José Gustavo de Souza Paiva Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos abstratos
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Linguagem de Programação III
Linguagem de Programação III Aula-5 Estruturas de Decisão e Controle. Arrays em Java Prof. Esbel Tomás Valero Orellana Até Aqui Modelos e POO Classes e sua implementação em Java Encapsulamento Tipos de
Linguagem de Programação IV Introdução
Linguagem de Programação IV Introdução Prof. Alessandro Borges 2 Tópicos Orientação a objetos Classe Objeto Abstração Encapsulamento Herança Polimorfismo Plataforma Java 3 4 POO é um paradigma de programação
Introdução a classes e objetos. Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis
Introdução a classes e objetos Prof. Marcelo Roberto Zorzan Prof a. Rachel Reis Estruturas de Seleção if... else Operador condicional (? : ) switch Aula de Hoje Estruturas de Repetição: while/do... while/for
PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO
COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA
Singleton e Adapter. Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé)
e Adapter Professor: Nazareno Andrade (baseado no material de Hyggo Almeida e Jacques Sauvé) O que vimos na última aula? Factory Method Abstract Factory 2 O que veremos hoje? (padrão de criaçã) Adapter
POO fundamentos Parte II. Professor Vicente Paulo de Camargo
POO fundamentos Parte II Professor Vicente Paulo de Camargo COMPORTAMENTOS Um comportamento expressa uma ação que um objeto ou instância de uma classe pode executar Na POO um comportamento é expresso através
Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus
Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
Variáveis e Métodos de Classe Em Java, quer as classes quer as instâncias das classes são objectos. Onde está o estado da classe? Com que operações é manipulado? UBI, Departamento de Informática T04-1
Conceitos de Programação Orientada a Objetos
Conceitos de Programação Orientada a Objetos Tatyana Bitencourt Com as técnicas de orientação a objeto, é possível obter resultados considerados impossíveis pensando de maneira estruturada. Como Java não
Classes e Objetos POO
Classes e Objetos POO Prof. Marcio Delamaro 1/40 POO (wikipedia) Object-oriented programming (OOP) is a programming paradigm based on the concept of "objects", which are data structures that contain data,
9 Classes Abstractas e Interfaces
9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract
Programação Java. - Herança e Polimorfismo - Marco Fagundes Marco Fagundes -
Programação Java - Herança e Polimorfismo - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes relacionadas entre
Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces
Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces Professora Sheila Cáceres Polimorfismo Polimorfismo Polimorfismo é a característica única de linguagens orientadas
Strings e Arrays POO
Strings e Arrays POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/27 String Uma sequência de caracteres que representa uma informação textual Em Java existe um
Programação Orientada a Objetos II
Programação Orientada a Objetos II Introdução Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com www.bolinhabolinha.com Apresentação Prof. Rodrigo Rocha prof.rodrigorocha@yahoo.com Ementa Introdução ao Desenvolvimento
Java para Desktop. Programação Orientada à Objetos 2 JSE
Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona
Modificadores de Acesso e Atributos de Classe
Modificadores de Acesso e Atributos de Classe 1 Controlando o acesso p Um dos problemas mais simples que temos no nosso sistema de contas é que o método saca permite sacar mesmo que o limite tenha sido
UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS
Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista
Aula 10 POO 1 Classes Abstratas. Profa. Elaine Faria UFU
Aula 10 POO 1 Classes Abstratas Profa. Elaine Faria UFU - 2019 Problema Método obterarea()? Classes Abstratas Classes que funcionam como um molde Declarada com comando abstract Contém um ou mais métodos
Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.
6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa
Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação
Implementando classes em C# Curso Técnico Integrado em Informática Fundamentos de Programação Introdução Além de utilizar as classes presentes na biblioteca padrão, programadores podem definir suas próprias
Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; IFSC/POO + JAVA - prof. Herval Daminelli
Esta categoria mais geral, à qual cada objeto pertence, denominamos de classe; Tudo no mundo real pode ser representado por meio do conceito de "objeto": uma planta, uma mesa, uma pessoa, um sentimento,
Lição 11 Herança, polimorfismo e interfaces
Lição 11 Herança, polimorfismo e interfaces 1 Objetivos Ao final da lição, o estudante deverá estar apto a: Definir superclasses e subclasses Criar Override de métodos de superclasses Criar métodos e classes
Herança e Polimorfismo
Herança e Polimorfismo 2013 O que veremos hoje? Herança e polimorfismo Transparências baseadas no material do Prof. Gilbert Azevedo e Prof. Jailton Carlos Objetivos Conceito de Polimorfismo em POO Mais
Genéricos. Profa. Thienne Johnson EACH/USP
Genéricos Profa. Thienne Johnson EACH/USP Java, como programar, 6ª edição Deitel & Deitel Capítulo 18 Material complementar http://wps.prenhall.com/br_deitel_comoprogra_6/ Todas as classes em Java herdam,
EXERCICIO DE JAVA PARA FIXAÇÃO DE CONTEÚDO - Introdução a Prática de Programação Docente Pedro F. Carvalho /
1 Revisão de conceitos de variáveis e operações aritméticas /* Determine qual é a idade que o usuário faz no ano atual. Para isso solicite o ano de nascimento do usuário e o ano atual. package exercicio01;
Encapsulamento e Métodos (Construtores e Estáticos) João Paulo Q. dos Santos
Encapsulamento e Métodos (Construtores e Estáticos) Sobrecarga de Métodos João Paulo Q. dos Santos joao.queiroz@ifrn.edu.br Roteiro Conceitos sobre Encapsulamento; Variável this; Métodos Construtores;
Aula 6 POO 1 Construtores. Profa. Elaine Faria UFU
Aula 6 POO 1 Construtores Profa. Elaine Faria UFU - 2019 Sobre o Material Agradecimentos Aos professores José Gustavo e Fabiano, por gentilmente terem cedido seus materiais. Os slides consistem de adaptações
MULTITHREADING. Prof.: Michele Nasu Tomiyama Bucci
MULTITHREADING Prof.: Michele Nasu Tomiyama Bucci Introdução O corpo humano realiza uma grande variedade de operações paralelamente, ou concorrentemente. Os computadores também realiza operações concorrentemente.
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Ivan Mathias Filho ivan@inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores e Blocos de Inicialização
Algoritmos e Programação 2. Objetos e Classes em Java. Classes. Revisão. Definições de classes incluem (geralmente):
Algoritmos e Programação 2 Baseado no material do Prof. Júlio Machado Objetos e Classes em Java Revisão Classes: encapsulam dados (atributos) e operações sobre os dados (métodos) Objetos: instâncias de
Programação orientada a objetos em Java
Programação orientada a objetos em Java Marco A L Barbosa malbarbo.pro.br Departamento de Informática Universidade Estadual de Maringá cba Este trabalho está licenciado com uma Licença Creative Commons
Métodos em Java. Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em:
Métodos em Java Prof. Esp. André Aparecido da Silva (Aulas 31 a 33) Disponível em: http://www.oxnar.com.br/aulas/java/ Os métodos são conhecidos como funções, ações de execuções ou procedimentos, sendo
Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos
Instituto Federal de Educação, Ciência e Tecnologia da Bahia Campus Irecê Disciplina: Linguagem Técnica II Prof o Jonatas Bastos Nome: LISTA DE EXERCÍCIO 1 Collections Framework 1. Criem um projeto que
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS
INF1337 LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS Departamento de Informática PUC-Rio Andrew Diniz da Costa andrew@les.inf.puc-rio.br Programa Capítulo 3 Ponteiros e Variáveis de Objeto Construtores
Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:
Introdução a Orientação a Objetos com Java Autor: Professor Victor Augusto Zago Menegusso. Orientação a Objetos É um paradigma de programação que define a estrutura de um programa baseado nos conceitos
Programação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/50 Herança revisão (1) A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse
Controlando Erros com Exceções
Controlando Erros com Exceções 1 Motivação p O que aconteceria ao tentar chamar o método saca com um valor fora do limite? p O sistema mostraria uma mensagem de erro, mas quem chamou o método saca não
Classes e Objetos INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II. Classes. Objetos. Um modelo para a criação de objetos
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS COM JAVA - MÓDULO II Classes e Objetos Objetos Um conjunto de estados e comportamentos Classes Um modelo para a criação de objetos 1 Pacotes e Java API Pacotes Um conjunto
UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas
UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra
Programação Orientada a Objetos. Aula 1.9 this e static. Prof. Bruno Moreno
Programação Orientada a Objetos Aula 1.9 this e static Prof. Bruno Moreno bruno.moreno@ifrn.edu.br Relembre: Clase RoboSimples Os métodos move() e move(int passos) podem ser reescrito sem redundância de
Linguagem de programação Programação Orientada a objetos
Instituto Federal de Minas Gerais Campus Ponte Nova Linguagem de programação Programação Orientada a objetos Professor: Saulo Henrique Cabral Silva Paradigma da orientação a objetos Paradigma = forma de
LEIC-A / MEIC-A 2007/2008 (1º
1/11 LEIC-A / MEIC-A 2007/2008 (1º Semestre) Teste (versão A) 08 de Janeiro de 2008, 09:00 (120 minutos) Nome: Primeira Parte (5 valores) PERGUNTA RESPOSTA 1.1 1.2 1.3 1.4 1.5 1.6 1.7 1.8 1.9 1.10 Segunda
ALGORITMOS. Professor: Diego Oliveira. Aula 06 - Tipos Primitivos de Dados
ALGORITMOS Professor: Diego Oliveira Aula 06 - Tipos Primitivos de Dados Netbeans Para testar nossos exemplos criaremos uma classe no Netbeans Nesta disciplina não será visto nada de orientação a objetos,
Programação Orientada a Objectos - P. Prata, P. Fazendeiro
Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido
Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano
Linguagem de Programação 1 Unidade 3: Estruturas de Controle Parte 2 - Lógica, SWITCH, FOR, WHILE e DO WHILE Prof. Daniel Caetano Objetivo: Apresentar a composição lógica em estruturas de decisão e as
Programação Java. - Classes, Objetos, Atributos e Métodos - Marco Fagundes Marco Fagundes -
Programação Java - Classes, Objetos, Atributos e Métodos - Marco Fagundes mfagundes@tre-pa.gov.br 1 Tópicos Programação Orientada a Objetos Classes e Objetos Definindo e Instanciando Classes Atributos
Estrutura de Dados Funções e Procedimentos
Estrutura de Dados Funções e Procedimentos Prof. Salustiano Rodrigues de Oliveira saluorodrigues@gmail.com www.profsalu.wordpress.com Java A linguagem Java utiliza o paradigma de programação orientada
Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação
4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança
Computação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato
Sobrecarga. Algoritmos e Programação II. Aula 3 Sobrecarga
Algoritmos e Programação II Aula 3 Sobrecarga *Adaptado do material do Prof. Júlio Machado Sobrecarga Em várias linguagens é comum encontrarmos rotinas que fazem basicamente a mesma coisa, porém, com nomes
Programação. Orientada a Objetos: Herança. Objetos. Relacionamento entre classes. Análise e Projeto Orientados a. Objetos
Programação Orientada a Objetos: Herança Alexandre César Muniz de Oliveira Análise e Projeto Orientados a Objetos A análise orientada a objetos Determina o que o sistema deve fazer: Quais os atores envolvidos?
JAVA. Professor: Bruno Toledo
JAVA Professor: Bruno Toledo Funcionamento de uma LP Em uma Linguagem de Programação (LP) como C e Pascal, temos o seguinte quadro quando vamos compilar um programa. Código fonte em c Teste.c Gera código
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em:
RESULUÇÃO DOS EXERCÍCIOS E INSTRUÇÕES DE DECISÃO (if{} e else{}) Profº André Aparecido da Silva Disponível em: http://www.oxnar.com.br/aulas/java ATIVIDADE ELABORAR O PROGRAMA DE CÁLCULOS DE ÁREAS USANDO
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno
Programação Avançada C++ Slide 12 Nielsen Castelo Damasceno Visibilidade de membros Membro da classe derivada pode usar os membros públicos ( public ) e protegidos ( protected ) da sua classe base (como
Aula teórica 14. Tema 12. Subprogramas (cont)
Aula teórica 14 Tema 12. Subprogramas (cont) Passagem de parâmetros. Valor de retorno Preparado por eng.tatiana Kovalenko 1 Variáveis globais Variáveis declarados no início da execução do programa, fora
Linguagem de Programação II Implementação
Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Criando objeto Definindo valores para os atributos do objeto Método construtor Definindo valores padrão para os atributos dos
Orientação a Objetos e Java
Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características
Threads. Linguagem Java. Adenilso da Silva Simão 17/05/05
17/05/05 Uma thread é uma linha de execução dentro de um programa Conceito de SO Java implementa suporte nativo a threads Duas formas de se implementar Implementando a interface Runnable Deve-se sobrepor
INSTRUÇÕES DE REPETIÇÃO
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 6 INSTRUÇÕES DE REPETIÇÃO As instruções de repetição permitem fazer com que a execução de uma
Orientação a Objetos - Herança
Orientação a Objetos - Herança 1 Repetindo Código p Todo banco tem funcionário. A classe funcionario ficaria da seguinte forma; class Funcionario { String nome; String cpf; double salario; // métodos devem
Computação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2016.2 http://www.dcc.ufrj.br/~fabiom/java Interfaces Uma interface é uma forma abstrata de descrever um objeto A classe fixa a forma de um objeto
Java Standard Edition (JSE)
Java Standard Edition (JSE) Capítulo 05. Encapsulamento, Modificadores de acesso e atributos de classe Esp. Márcio Palheta MSN: marcio.palheta@hotmail.com 1 Agenda Revisão da aula anterior; Motivação Organização;
Introdução à Orientação a Objetos em Java
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB Centro de Informática, UFPE Programação estruturada
AULA 6 - ARRAYS. Array de 10 elementos
1 AULA 6 - ARRAYS Arrays são objetos que armazenam diversas variáveis do mesmo tipo. Eles podem conter variáveis de referência primitivas ou de objeto, mas o array propriamente dito sempre será um objeto
Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }
Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação
Classes e Objetos. Prof. Fernando V. Paulovich 9 de agosto de 2010
Classes e Objetos SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade
Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação
Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar
3. Para a classe Circulo abaixo, escreva os métodos indicados pelos dois primeiros comentários.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Lista de exercícios 2 1. Dada a classe public class Material{ private int codigo; //todo material tem um código
Programação Orientada a Objetos
Programação Orientada a Objetos Modificadores de Acesso: public e private Prof. Tulio Alberton Ribeiro Instituto Federal de Santa Catarina IFSC campus São José tulio.alberton@ifsc.edu.br 31 de julho de
Desenvolvimento Web TCC-00.226 Turma A-1
Desenvolvimento Web TCC-00.226 Turma A-1 Conteúdo Orientação a Objetos Professor Leandro Augusto Frata Fernandes laffernandes@ic.uff.br Material disponível em http://www.ic.uff.br/~laffernandes/teaching/2013.2/tcc-00.226
Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões
DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para