Criando um Joguinho 2D. Prof. Fellipe Aleixo
|
|
|
- Emanuel Barateiro de Sousa
- 8 Há anos
- Visualizações:
Transcrição
1 Criando um Joguinho 2D Prof. Fellipe Aleixo
2 Conteúdo Desenvolvimento de um jogo 2D para Android Componentes de Interface e Classes SurfaceView, SurfaceHolder Canvas, Paint GestureDetector Thread
3 SurfaceView, SurfaceHolder SurfaceView (android.view.surfaceview) Descendente de android.view.view Provê uma superfície de desenho dedicada dentro da view Permite a renderização utilizando uma thread secundária O método getholder retorna o objeto que acessa a superfície SurfaceHolder (android.view.surfaceholder) Interface que permite acessar e controlar as alterações na superfície de desenho O método lockcanvas retorna o objeto Canvas para desenho na superfície e unlockcanvasandpostfinaliza a edição
4 SurfaceHolder.Callback, Canvas SurfaceHolder.Callback (android.view.surfaceholder.callback) Interface que recebe as alterações na superfície de desenho Responsável pelo controle da thread secundária de desenho, iniciando e parando a thread Canvas (android.graphics.canvas) Classe que possui os métodos draw para desenho drawrect Desenha um retângulo drawcircle Desenha um círculo drawline Desenha uma linha drawtext Desenha um texto
5 Paint, Thread, GestureDetector Paint (android.graphics.paint) Classe que armazena estilos e cores utilizados pelos métodos de desenho Thread (java.lang.thread) Controla uma unidade concorrente de execução. Start inicia a execução da Thread e Join para a execução GestureDetector (android.view.gesturedetector) Detecta gestos e eventos de movimento (MotionEvent) do usuário
6 Jogo Objetivo Destruir o alvo (oito partes) com o máximo de três bolas Elementos do jogo Tempo do jogo - 1 Número de bolas restantes - 2 Número de alvos destruídos - 3 Topo do tela - 4 Alvo - 5 Bola - 6 Barra de rebate
7 Classes MainActivity Estende Activity Responsável pela instanciação da View (JoguinhoView) Captura os eventos de movimento (MotionEvent) utilizando o GestureDetector JoguinhoView Estende SurfaceView e implementa SurfaceHolder.Callback Mantém os objetos Paint para desenhar os elementos do jogo Mantém o objeto JoghuinhoThread para controlar a thread de execução do jogo Mantém o objeto Joguinho com a lógica do jogo
8 Classes JoguinhoThread Controla o laço de execução do jogo Recupera o objeto de desenho (Canvas) Atualiza a posição dos elementos do jogo (Joguinho) Desenha os elementos no Canvas (JoguinhoView) Joguinho Implementa a lógica do jogo Dimensiona os elementos de acordo com o tamanho da tela Controla o estado do jogo, número de bolas, alvos atingidos, tempo de jogo, etc. Calcula as posições dos elementos, controla a visibilidade dos alvos, velocidade da bola, verifica as colisões, etc.
9 MainActivity public class MainActivity extends Activity Atributos private JoguinhoView view; private GestureDetector gd; Método oncreate Instancia a view e associa à atividade view = new JoguinhoView(this); setcontentview(view); Instancia o gesture detector gd = new GestureDetector(this, gdlistener);
10 MainActivity Métodos onpause Para o jogo, pausando a thread view.pararjogo(); ontouchevent Recupera o evento gerado na view int acao = event.getaction(); Verifica o tipo do evento if (acao == MotionEvent.ACTION_MOVE) view.moverbarra(event); Dispara o evento no gesture detector return gd.ontouchevent(event);
11 MainActivity GestureDetector Objeto Listener de detenção de gestos Captura o evento de duplo clique utilizado para lançar a bola SimpleOnGestureListener gdlistener = new SimpleOnGestureListener() public boolean ondoubletap(motionevent event) { view.lancarbola(event); return true; } };
12 JoguinhoView Classe JoguinhoView public class JoguinhoView extends SurfaceView implements SurfaceHolder.Callback { private Activity activity; private AlertDialog.Builder builder; private SurfaceHolder holder; private Joguinho j; private JoguinhoThread jt; private Paint alvop, barrap, bolap, fundop, textop, topop; private int telax; private int telay;...
13 JoguinhoView Construtor Construtor Recupera o objeto SurfaceHolder holder = this.getholder(); Coloca a própria view como Callback das alterações na superfície de desenho holder.addcallback(this); Inicia o objeto que controla a lógica do jogo j = new Joguinho(); Inicia os objetos de desenho alvop = new Paint();...
14 JoguinhoView Dimensionamento onsizechanged É chamado após o construtor da view Recupera as dimensões da tela telax = w; telay = h; Dimensiona os elementos do jogo j.dimensionarelementos(telax, telay); Configura os objetos de desenho alvop.setstrokewidth(j.alvoaltura); Chama o método novojogo novojogo();
15 JoguinhoView Controle do Jogo novojogo Controla o início e reinício do jogo Repassa o início do jogo para a classe Joguinho j.novojogo(); fimjogo Chama o método de parar o jogo pararjogo(); Mostra a mensagem de fim de jogo, perguntando se deseja jogar novamente pararjogo Pausa a thread de execução do jogo if (jt!= null) jt.setrunning(false);
16 JoguinhoView Métodos de Desenho desenharelementos Desenha os elementos do jogo no Canvas recebido como parâmetro Utiliza os métodos de desenho draw e os objetos Paint moverbarra Repassa o MotionEventpara a classe que controla o jogo if (!j.fimjogo) j.moverbarra(event); lancarbola Repassa o MotionEventpara a classe que controla o jogo if (!j.fimjogo) j.lancarbola(event);
17 JoguinhoView Callback surfacecreated Instancia a thread e coloca em execução jt = new JoguinhoThread(holder, j, this); jt.setrunning(true); jt.start(); surfacedestroyed Para a thread jt.setrunning(false); jt.join();
18 JoguinhoThread public class JoguinhoThread extends Thread Principais Atributos private SurfaceHolder holder; private Joguinho j; private JoguinhoView v; private boolean loop; Método setrunning (boolean aloop) Seta a variável de controle do loop de execução loop = aloop;
19 JoguinhoThread Loop de Execução Método run Loop de execução do jogo Calcula o tempo de execução entre as chamadas, desenha as novas posições no Canvas long t1 = System.currentTimeMillis(); while(loop) { canvas = holder.lockcanvas(); long t2 = System.currentTimeMillis(); long dt = t2 - t1; j.atualizarposicoes(dt); v.desenharelementos(canvas); t1 = t2; } holder.unlockcanvasandpost(canvas);
20 Joguinho Lógica do Jogo A classe Joguinho é responsável pela lógica do jogo Construtor Inicia os elementos do jogo e o vetor de alvos Método dimensionarelementos Dimensiona os elementos do jogo de acordo com o tamanho da tela do dispositivo Método novojogo Reinicia o estado do jogo Método atualizarposicoes Atualiza as posições dos elementos e verifica as colisões
21 Joguinho Lógica do Jogo Método moverbarra Atualiza a posição da barra de acordo com o MotionEvent gerado pelo usuário Método lancarbola Atualiza a posição da barra de acordo com o MotionEvent gerado pelo usuário
22 Exercícios 1. Alterações no Jogo Apresentado a. Incluir no jogo um controle de níveis de forma que, quando um alvo for complemente destruído, um nível novo deve ser iniciado contendo um novo alvo. Em cada nível novo, a velocidade da bola deve ser incrementada b. Incluir no jogo um ranking, armazenando em um banco de dados o nome do jogador e a pontuação obtida. Fazer uma view que permita visualizar o ranking do jogo no dispositivo 2. Implementar um jogo semelhante a Moon Patrol ou Space Invaders
23 Referências Android para Programadores Uma abordagem baseada em aplicativos. Paul Deitel... [et al.]. Bookman, 2013 Google Android Aprenda a criar aplicações para dispositivos móveis com o Android SKD. Ricardo R. Lecheta. Novatec,
Desenvolvendo Jogos 2D-Android
DISPOSITIVOS MÓVEIS II Etep Desenvolvendo Jogos 2D-Android Prof. Rogério B. de Andrade Coordenador do Curso de Programação em Jogos Digitais Desenvolvimento de Jogos Utilizando Android Inicialmente o primeiro
Jogo do NEEC. Primeiramente, criamos uma nova Actividade. File > New > Class
Jogo do NEEC Jogo do NEEC Primeiramente, criamos uma nova Actividade File > New > Class Source folder: JogoDoNEEC/src Package: org.neecist.jogodoneec Name: JogoDoNEEC Superclass: android.app.activity Browse
nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){
UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------
Capítulo 02: Cadastro de Alunos
Capítulo 02: Cadastro de Alunos Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI [email protected] sites.google.com/site/marcio
Técnicas de Programação II
Técnicas de Programação II Aula 05 Java 2D Edirlei Soares de Lima Java 2D Java 2D é uma API da linguagem Java que fornece funcionalidades básicas para o desenho de objetos gráficos
Primeira Aplicação Android Olá Mundo. Prof. Fellipe Aleixo
Primeira Aplicação Android Olá Mundo Prof. Fellipe Aleixo ([email protected]) Conteúdo Passo- a- passo de um Projeto Android Conceitos Básicos de uma Aplicação Principais Arquivos Execução da
Desenvolvimento de um aplicativo básico usando o Google Android
Desenvolvimento de um aplicativo básico usando o Google Android (Activity e Intent) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte
Notification. Programação de Dispositivos Móveis. Mauro Lopes Carvalho Silva. Professor EBTT DAI Departamento de Informática Campus Monte Castelo
Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do Maranhão Objetivos
Desenvolvimento de um aplicativo básico usando o Google Android
Desenvolvimento de um aplicativo básico usando o Google Android (Notification) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte
Log, Ciclo de Vida e Diálogos. Prof. Fellipe Aleixo ([email protected])
Log, Ciclo de Vida e Diálogos Prof. Fellipe Aleixo ([email protected]) Conteúdo Log Classe android.u:l.log LogCat Ciclo de Vida Pilha de a:vidades Métodos e estados da a:vidade Instance State
Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos
Programação Concorrente com Thread Java Luiz Affonso Guedes Sistemas Distribuidos Definições Básicas Threads são sub-procesos no sistema operacional. É menos custoso gerenciar threads do que processos.
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Hello World Professor: Danilo Giacobo OBJETIVOS DA AULA Desenvolver o primeiro aplicativo Android Se familiarizar com o ambiente de desenvolvimento Conhecer os principais
Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança. Callbacks. Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR
n n n n Exemplo de Aplicação Distribuída Serviço de Nomes Gerente de Segurança Callbacks Prof a Ana Cristina B. Kochem Vendramin DAINF / UTFPR Introdução Estende o modelo de objeto Java para fornecer suporte
Exercícios sobre repetição. 1. Escreva um método que lê via teclado 8 números e retorna a quantidade de negativos.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Lista de exercícios 6 Exercícios sobre repetição 1. Escreva um método que lê via teclado 8 números e retorna
Threads. O que é uma Thread? Paralelismo
Threads em Java 1 O que é uma Thread? Paralelismo Threads Multi- threading é o mecanismo de concorrência suportado explicitamente pela linguagem Java. Os mecanismos de gerenciamento e sincronização de
Programação Orientada a Objetos Relacionamentos entre classes
Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO
Tutorial Android Speech
Tutorial Android Speech O sistema operacional Android já dispõe de uma funcionalidade interna para síntese e reconhecimento de voz que pode ser incorporado a qualquer aplicação. Essa funcionalidade utiliza
JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: insira as propriedades escolhidas aqui FACULDADE DE TECNOLOGIA SENAC PELOTAS
JAVA APLICAÇÕES GRÁFICAS Propriedades Utilizadas: insira as propriedades escolhidas aqui FACULDADE DE TECNOLOGIA SENAC PELOTAS Nome do aluno: Fabiano Nobre Mendes Identificação da Turma: ADS(Noturno) Data:
POO29004 Programação Orientada a Objetos
POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/poo
Programação para Dispositivos Móveis
Prof. MSc. Flávio Barros [email protected] www.flaviobarros.com.br Programação para Dispositivos Móveis Aula: CRUD Agenda com SQLite Parte II Caxias - MA Projeto Android Estrutura Activity MainActivity.java
AULA 2 VISÃO BÁSICA DE CLASSES EM PHP
AULA 2 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.
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
Gabriel de Oliveira Ramos Roland Teodorowitsch - Orientador
THREADS EM JAVA Gabriel de Oliveira Ramos Roland Teodorowitsch - Orientador Universidade Luterana do Brasil (Ulbra) Curso de Ciência da Computação Campus
COMPORTAMENTOS - Observações
COMPORTAMENTOS - Observações O próprio objeto realiza operações de consulta ou alteração dos valores dos seus atributos Essas operações são definidas em seus métodos Os métodos também são utilizados para
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.
BroadcastReceiver. O que são mensagens broadcasts? Use notificações! (Serão explicadas em breve)
Broadcast Receiver BroadcastReceiver Chamado pelo Android para reagir a mensagens broadcast Usado para executar tarefas rápidas em segundo plano Não interromper o usuário por meio de activities Use notificações!
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
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)
Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado
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
Capítulo 07: Câmera e Arquivos
Capítulo 07: Câmera e Arquivos Instrutor Programador desde 2000 Aluno de doutorado Mestre em informática pelo ICOMP/UFAM Especialista em aplicações WEB FUCAPI [email protected] sites.google.com/site/marcio
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
Programação Java. Marco Fagundes. - Herança, Classes Abstratas e Interfaces Marco Fagundes -
Programação Java - Herança, Classes Abstratas e Interfaces - Marco Fagundes [email protected] 1 Tópicos Herança Ligação Dinâmica Polimorfismo 2 Herança Herança é um conceito que mapeia as classes
[Desenvolvimento OO com Java] Classes abstratas e interfaces
Centro Tecnológico Departamento de Informática Prof. Vítor E. Silva Souza http://www.inf.ufes.br/~vitorsouza [Desenvolvimento OO com Java] Classes abstratas e interfaces Este obra está licenciada com uma
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
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
Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }
Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos
Introdução ao Android. Prof. Fellipe Aleixo ([email protected])
Introdução ao Android Prof. Fellipe Aleixo ([email protected]) Conteúdo Introdução Mercado Versões Ambiente de Desenvolvimento Configuração das Máquinas Virtuais Referências Introdução Android
JavaFX Classe de Controle e Eventos. Prof. Vicente Paulo de Camargo
JavaFX Classe de Controle e Eventos Prof. Vicente Paulo de Camargo Labels são componentes que permitem auxiliar na compreensão de uma interface gráfica, principalmente para indicar as identificações de
POO29004 Programação Orientada a Objetos
POO29004 Programação Orientada a Objetos Classe abstrata, interface e polimorfismo Prof. Emerson Ribeiro de Mello Instituto Federal de Santa Catarina IFSC campus São José [email protected] http://docente.ifsc.edu.br/mello/poo
Android e Bancos de Dados
(Usando o SQLite) Programação de Dispositivos Móveis Mauro Lopes Carvalho Silva Professor EBTT DAI Departamento de Informática Campus Monte Castelo Instituto Federal de Educação Ciência e Tecnologia do
Aula 5 POO 1 Encapsulamento. Profa. Elaine Faria UFU
Aula 5 POO 1 Encapsulamento 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
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS
PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Aula 3 Vidal. Ronnison Reges 1 1 Análise e Desenvolvimento de Sistemas - Parangaba Centro Universitário Estácio do Ceará 2018 Vidal. Ronnison Reges (Centro Universitário
ROOM: Biblioteca de Mapeamento Objeto-Relacional. Prof. Fellipe Aleixo
ROOM: Biblioteca de Mapeamento Objeto-Relacional Prof. Fellipe Aleixo ([email protected]) Por que? Antes de mais nada: por que precisamos de persistência no disposi
Palavras Reservadas da Linguagem Java
Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de
Manual do KBreakout. Fela Winkelmolen Stephanie Whiting Tradução: Luiz Fernando Ranghetti Tradução: André Marcelo Alvarenga
Fela Winkelmolen Stephanie Whiting Tradução: Luiz Fernando Ranghetti Tradução: André Marcelo Alvarenga 2 Conteúdo 1 Introdução 6 2 Como jogar 7 3 Regras do jogo, estratégias e dicas 8 3.1 Regras............................................
Classe Abstrata e Interface
Orientação a objetos com Java Classe Abstrata e Interface Byron Leite [email protected] 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public
Lógica de Programação para Jogos
Lógica de Programação para Jogos Curso de Capacitação www.abrindoojogo.com.br Pressione Start e inicie a sua carreira no desenvolvimento de jogos digitais. Focado no aluno que ainda não se considera um
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 Orientada a Objetos Aula I Declaração de classes, métodos construtores. Prof.: Bruno E. G. Gomes IFRN
Programação Orientada a Objetos Aula I Declaração de classes, métodos construtores Prof.: Bruno E. G. Gomes IFRN 1 Introdução Na aula de hoje: Declaração de classes Métodos Construtores Exercícios de criação
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
DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS. PROFª. M.Sc. JULIANA H Q BENACCHIO
DESENVOLVIMENTO PARA DISPOSITIVOS MÓVEIS PROFª. M.Sc. JULIANA H Q BENACCHIO Threads, Handler e AsyncTask No Android, cada aplicação é executada em um único processo. Cada processo por sua vez tem uma thread
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 [email protected] Fonte: Material da Profª Karina Oliveira Interfaces É utilizada para agrupar conceitos em
TÉCNICAS DE PROGRAMAÇÃO II TRABALHO 2
TÉCNICAS DE PROGRAMAÇÃO II TRABALHO 2 Descrição: O objetivo do trabalho 2 é desenvolver um jogo estilo shoot 'em up em Java, onde o jogador possa controlar uma espaçonave e destruir as espaçonaves inimigas
TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS
TUTORIAL ANDROID ACTIVITY - CONSTRUÇÃO DE TELAS Uma activity é um componente do aplicativo que fornece uma tela com o qual os usuários podem interagir. Uma aplicação geralmente consiste de múltiplas activities,
Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs
Programação Orientada a Objetos Professor: André Luis Meneses Silva [email protected] br.geocities.com/programacao2ufs [ Conteúdo ] Objeto Mensagens Classe Encapsulamento Visibilidade Membros de Instância
