Capítulo 1. Classes internas  Classe interna  Instância da classe interna  Referências na classe interna  Modificadores de membros  Classe interna.

Slides:



Advertisements
Apresentações semelhantes
|Introdução a Java para programadores Telis. Jogo de Dados simples O jogo é jogado por dois jogadores. Cada jogador faz sua jogada (lança um dado), e.
Advertisements

JAVA Orientação a Objetos
Eventos Marco Antonio, Arquiteto de Software – TJDF Novembro/2005
Modificadores Marco Antonio, Arquiteto de Software – TJDF Atualizado em Novembro/2008.
Modificadores Marco Antonio. Introdução Em todas as linguagens de programação o acesso a classes/métodos deve seguir algumas regras.
Prof. Thiago Pereira Rique
Programação orientada a objetos
Orientação a Objetos: Modificador Final para Métodos e Classes
De 17 1 Linguagens de Programação Orientadas a Objetos Pós-Gradução(Lato-Sensu) em Sistemas de Banco de Dados - UFPa Marco Fagundes Aula.
Iniciação ao Java – Márcio F. Campos
Programação Básica em Java
Polimorfismo e Classes Abstratas Profa
Membros estáticos.
Capítulo 13 Pacotes. 2 Capítulo 13 – Pacotes Pacotes Pacote Cláusula package Cláusula import Executando uma classe de pacote Modificadores de acesso.
Orientação a Objetos Classes
Capítulo 15 Swing – Parte 2.
JAVA ENUMS © 2009 by Jorge L. de Souza Leão março de 2009 PEE - COPPE/UFRJ.
Capítulo 9 Herança 1.
UMA ABORDAGEM SOBRE ORIENTAÇÃO A OBJETOS!
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Clique para editar o estilo do subtítulo mestre Desenvolvimento web com Java JAVA 5 – Declarações e Controles de Acesso.
Paradigmas de Linguagens de Programação Paradima da Programação Orientada à Objetos Professor: Armando Hage Belém-2008.
CRIANDO OBJETOS EM JAVA
Curso de extensão em Desenvolvimento Web
O Mecanismo de Threads em Java 2. Criar uma classe herdeira da super classe Thread public class minhaThread extends Thread{ public class minhaThread extends.
Concorrência em Java Threads em Java.
Programação Orientada a Objetos com Java
JAVA Orientação a Objetos
Interfaces.
Atributos, Encapsulamento e Interface em Java
Programação I Aula 2 (Métodos)
OPERADORESOPERADORES SCJP – Otimize-TI. Operadores Java Resultado: Maioria das operações é um booleano ou numérico. Não podem ser sobrecarregados (Existem.
Os métodos equals() e hashCode()
Capítulo 1 Tipo enumerado.
Capítulo 1. static import  A importação estática pode ser utilizado quando queremos acessar métodos ou atributos estáticos de uma outra classe.  Através.
Professora Lucélia Oliveira
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng. da Computação IF62C - Fundamentos de Programação Semana 12 – Overloading X Overriding Prof.a.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Implementação Orientada a Objetos – Aula 03
UTFPR – Campus Curitiba - DAELN Cursos de Eng. Eletrônica/Eng
Prof. Gilberto Irajá Müller
Introdução às Java Threads
Orientação a Objetos usando Java
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Implementação Orientada a Objetos – Aula 05 Construtores e sobrecarga de métodos Prof. Danielle Martin Universidade de Mogi das Cruzes
Polimorfismo.
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
1 Marcio de Carvalho Victorino JAVA. 2 Declaração de Atributos [ ] [transient] [volatile] [static] [final] ; controle de acesso –public, package (default),
Estrutura de Controle em JAVA
Classes Abstratas e Interface
Aula Prática 1 Monitoria IP/CC (~if669). Roteiro 1.Polimorfismo 2.Superclasses Abstratas 3.Dúvidas 4.Exercício.
Implementação Orientada a Objetos – Aula 06 Conversão de tipos e métodos estáticos Prof. Danielle Martin Universidade de Mogi das Cruzes
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Programação II Prof. Mateus Raeder Universidade do Vale do Rio dos Sinos - São Leopoldo -
Herança Modelagem e Programação Orientada a Objetos
Exercícios Laboratório. Inicio Escreva (“Olá Mundo!”) Fim static void main (string[] args) { Console.WriteLine (“Olá Mundo!”); }
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
POO - II PROF.: JEAN CARLO MENDES
Bruno Inojosa MCP .NET Framework
Modificadores Programação II.
Classes abstratas São classes das quais não se pode instanciar objetos. São classes das quais não se pode instanciar objetos. Seu objetivo é ser herdada.
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
CURSO JAVA BÁSICO Módulo 9 – slide 1 Módulo 10 Threads.
Capítulo 7 Métodos. 2Capítulo 7 – Métodos Métodos Criação e chamada de métodos Passagem de parâmetros VarArgs Sobrecarga Método com valor de retorno Métodos.
Classes Abstratas e Interface. 2 Classe Abstrata  Uma classe abstrata serve apenas como modelo para uma classe concreta (classe que comumente usamos);
1 Interface (o termo) » Interface (a palavra reservada): Java estendeu o conceito de interfaces à um nível ainda mais flexível que permite construir entidades.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Capítulo 1

Classes internas  Classe interna  Instância da classe interna  Referências na classe interna  Modificadores de membros  Classe interna local  Classe interna anônima  Classe interna estática  Classes aninhadas 2

Classe interna public class ClasseExterna { public int valor = 10; public void calculaValor() { } public class ClasseInterna { private String temp; public void calcTemp() {... } } } 3

Classe interna  Na aplicação principal... ClasseExterna objExt = new ClasseExterna(); System.out.println(objExt.valor); objExt.calculaValor(); ClasseExterna.ClasseInterna objInt; objInt = objExt.new ClasseInterna(); 4

Classe interna  Uma classe interna é tratada como um dos membros da classe externa.  Como tal, a classe interna pode possuir qualquer um dos modificadores de acesso abaixo: public protected Default (sem modificador) private 5

Classe interna (exemplo) public class AlunoService { public void gravarAluno(int matricula, String nome, String ) { } public void enviar AoAluno(String nome, String ) { Thread thread = new AoAlunoThread(); thread.start(); } private class AoAlunoThread extends Thread { public void run() { } 6

Classe interna (exemplo)  Na aplicação principal... public class Inicio { public static void main(String args[]) { AlunoService service = new AlunoService(); /* Grava os dados do aluno na base de dados. */ service.gravarAluno(1022, “Manuel”, /* Envia um ao aluno de forma assíncrona (thread). */ service.enviar AoAluno(“Manuel”, } 7

Classe interna local public class ClasseExterna { public int membroExterno = 3; public void calculaValor() { final int local = 5; class ClasseLocal { private int membroInterno = 8; public int calcTemp() { return membroExterno * memboInterno* local; } } ClasseLocal local = new ClasseLocal(); System.out.println(local.calcTemp()); } } 8

Classe interna local  Uma classe interna local pode ser utilizada apenas dentro do método em que foi criada.  Desta forma, uma classe interna local não deve possuir modificadores de acesso (public, private, etc).  Uma classe interna local só pode utilizar uma variável local ao método onde ela se encontra se a variável local for uma constante (final). 9

Classe interna anônima public class ClasseExterna { public void calculaValor() { TipoX temp = new TipoX() { public void metodo1() {... } }; temp.metodo1(); } }... onde TipoX é uma interface, classe abstrata ou classe comum previamente declarada com o metodo1(); 10

Classe interna anônima (exemplo) public class CadastroAluno extends JFrame { private JButton btnOK = new JButton(); private JPanel pnlRaiz = (JPanel) getContentPane(); public CadastroAluno() { btnOk.setBounds(100, 80, 60, 30); btnOk.setText(“Clique aqui”); btnOk.addActionListener( new ActionListener() { void actionPerformed(ActionEvent e) { JOptionPane.showMessageDialog(null, “Olá!”); } } ); pnlRaiz.add(btnOk); } 11

Classe interna anônima  Ao criar uma classe anônima, estamos implementando ou estendendo uma classe ou interface para uso imediato;  Ao criar uma classe anônima, podemos: Implementar uma interface com os seus métodos; Estender uma classe abstrata implementando os seus métodos abstratos; Estender uma classe comum sobrescrevendo algum de seus métodos. 12

Classe interna anônima  Forma Geral public inteface InterfaceExemplo { public void metodo1(); public void metodo2(); } InterfaceExemplo variavel = new InterfaceExemplo() { public void metodo1() {..... } public void metodo2() {..... } }; variavel.metodo1(); variavel.metodo2(); dentro de algum método

Classe interna estática public class ClasseExterna { public static int valor = 10; public static void calculaValor() { } public static class ClasseInterna { private String temp; public void calcTemp() {... } } } 14

Classe interna estática  Na aplicação principal... ClasseExterna objExt = new ClasseExterna(); System.out.println(ClasseExterna.valor); ClasseExterna.calculaValor(); ClasseExterna.ClasseInterna objInt; objInt = new ClasseExterna.ClasseInterna(); Não é necessário criar instância 15

Classe interna estática  Uma classe interna estática é semelhante a uma classe comum, sendo sua classe externa semelhante a um package.  Geralmente uma classe interna estática é utilizada como uma classe pública auxiliar de sua classe externa. 16

Classes aninhadas  Embora seja pouco recomendado, as classes podem ser “internalizadas” em diversos níveis public class Alpha { public void metodo1() { System.out.println(“Metodo da classe Alpha"); } protected class Beta { public void metodo2() { System.out.println(“Metodo da classe Beta"); } private class Gama { public void metodo3() { System.out.println(“Metodo da classe Gama"); } 17

Exercício (parte 1)  Crie uma classe chamada Carro contendo uma classe interna pública e estática chamada Roda;  A classe interna Roda deverá possuir 2 atributos: aro (int) e ligaLeve (boolean) e seus respectivos métodos get e set. Também deverá conter um método construtor público contendo ambos os atributos; 18

Exercício (parte 2)  A classe externa Carro deverá possuir 4 atributos: rodaDianteiraEsquerda (tipo Roda); rodaDianteiraDireita (tipo Roda); rodaTraseiraEsquerda (tipo Roda); rodaTraseiraDireita (tipo Roda).... e seus respectivos métodos get e set;  A classe externa Carro também deverá possuir um método construtor que permitirá inicializar o carro com os atributos descritos acima; 19

Exercício (parte 3)  Crie uma classe CarroStart contendo o método main() que deverá criar uma instância da classe Carro assinalando nesta 4 instâncias da classe Roda e, em seguida exiba os dados da instância da classe Carro conforme abaixo: RodaAroLiga-leve dianteira-esquerda17Sim dianteira-direita17Sim traseira-esquerda36Não traseira-direita36Não 20