Escolar Documentos
Profissional Documentos
Cultura Documentos
05/01/2008
Programao procedural
05/01/2008
2/55
Introduo a Objetos
05/01/2008
3/55
Introduo a Objetos
05/01/2008
4/55
05/01/2008
5/55
05/01/2008
6/55
05/01/2008
7/55
05/01/2008
8/55
Exemplo:
Objeto:Pessoa
Atributos:Nome,DatadeNascimento,Cor Mtodos:Acordar,Comer,BeberDormir
05/01/2008
9/55
05/01/2008
10/55
05/01/2008
12/55
Especificaodeumaoperaodoobjeto
compostapor Seletor:
nomesimblicoquedescreveotipodaoperao
descreveOQUEoobjetoqueenviaquerquesejainvocado oobjetoreceptordamensagemcontmadescriode COMO a operao deveria ser executada Parmetros: argumentosqueumamensagempodeconterquefazparte da operao e requer uma ordem nica
Juliano Marcos Martins julianom@br.ibm.com
05/01/2008
14/55
05/01/2008
15/55
Ao receber uma mensagem para efetuar uma Operao, o objeto quem determina como a operao deve ser efetuada
Exemplos
ser
usado
com
inteiros,
A operao Calcular_Salrio atua diferentemente nas classes funcionario comissionado e funcionrio assalariado
Juliano Marcos Martins julianom@br.ibm.com
05/01/2008
16/55
05/01/2008
17/55
05/01/2008
18/55
05/01/2008
19/55
05/01/2008
20/55
Welcome
21
Exerccios
1- Como voc define OO? 2- Faa uma analogia entre o desenvolvimento estruturado e OO. 3- Cite algumas vantagens de OO. 4- Defina Objeto 5- Defina Classe 6- Defina atributos 7- Defina mensagens 8- Como voc define Polimorfismo e Encapsulamento? 9- Qual a diferena entre associao e Herana? 10- Quais os dois tipos de herana? 11- Desenhe as seguintes classes com seus atributos e mtodos: a) Produtos b) Aluno c) Pessoa e Pessoa Fsica (onde pessoa fsica uma subclasse de pessoa)
05/01/2008
22/55
JAVA
julianom@br.ibm.com
05/01/2008
Mtodos de implementao
Compilao - programa traduzido para linguagem de
mquina (C, PASCAL, COBOL, Ada, etc.);
Interpretao
programa que entende o programa fonte (sh, awk, LISP, ML, PROLOG, Smalltalk, etc.);
05/01/2008
Compilao
05/01/2008
Compilao
05/01/2008
Interpretao
Programafonte
Dados de entrada
Interpretador
Resultados
05/01/2008
x.java
x.class
05/01/2008
A plataforma JAVA
05/01/2008
JAVA SE Standard Edition, indicada para iniciarmos nosso trabalho com JAVA, contem as APIs padro JAVA EE Enterprise Edition, indicada para desenvolvimento de aplicativos corporativos com suporte a tecnologia tal como EJB.
JAVA ME Micro Edition: para desenvolvimento em dispositivos mveis ou embarcados (Celulares, Geladeiras, etc)
Juliano Marcos Martins julianom@br.ibm.com
05/01/2008
30/55
JDK x JRE Java Development Kit: Contm todo o instrumental necessrio para desenvolvimento JAVA Java Runtime Enviroment: Basicamente contm a Java Virtual Machine, o que necessrio para rodar aplicaes Java. Download http://www.java.com/pt_BR/ Instalando e configurando
http://jmmwrite.wordpress.com/2008/07/14/preparacao-de-um-ambientede-desenvolvimento-java-v2/
05/01/2008
31/55
JAVAC: Java compiler JAVA: Interpretador Java Ambiente de desenvolvimento (IDE) Eclipse, Rational Application Developer, etc
05/01/2008
32/55
Visibilidade
Implementao das classes automvel e livro
05/01/2008
34/55
A Classe automvel
05/01/2008
35/55
A Classe Livro
Editora
Empresta Devolve
Reserva
Cadastra Consulta
05/01/2008
36/55
Exemplos:
public class Automovel { }
public class Livro { } public class Aluno
{
} Juliano Marcos Martins julianom@br.ibm.com
05/01/2008
37/55
Exemplos:
private int numero;
public String tamanhoMaximo = 15; private String nome = Maria da Silva; double raio = 6.5; Object o = new Object();
05/01/2008
38/55
Declarando Mtodos
Definio de um mtodo:
[modificadores] retorno nomeDoMetodo ( [Argumentos] ) [ throws Exees ] { ... [ return varRetorno; ] }
Exemplos:
private void obtemNumeroAlunosTurma ( long codigoTurma ) { ... } public String getNomeAluno( int codigoAluno ) { ... } public void insereAluno ( String nomeAluno ) throws Exception { ... }
05/01/2008
39/55
Exemplo de Classe
public class Aluno { String nomeAluno; int codigoAluno; public String getNomeAluno() { return nomeAluno; } public void setNomeAluno( String param ) { nomeAluno = param; } public int getCodigoAluno() { return codigoAluno; } public void setCodigoAluno( int param ) { codigoAluno = param; } }
05/01/2008
40/55
Construtor da Classe
Para que um objeto exista necessrio constru-lo, isto , dizer para a
JVM que necessrio espao de memria para criao do objeto.
05/01/2008
41/55
Exemplos:
public Turma () { ... } public Turma ( long codigoTurma ) { ... } public Curso( int codigoCurso ) throws Exception { ... }
05/01/2008
42/55
Visibilidade/Modificadores
Cada um dos elementos que constituem uma classe
possui uma visibilidade (Staa, p. 296);
Visibilidadeacapacidadedeumobjetopoderverou
de ter referncia a outro objeto (Larman, p. 246);
05/01/2008
43/55
Visibilidade
Os tipos de visibilidade que podem ser determinados
em uma classe para atributos e operaes so:
05/01/2008
44/55
Visibilidade
Atributos: somente deveriam ser acessados pelos
mtodos da classe a que pertence;
Operaes:
Pblicas (interface); Privadas (internas classe).
05/01/2008
45/55
Classe automvel
public class Automovel{ public String proprietario; //Atributos private String marca; private String placa; private int ano; public Automovel (String proprietario, String marca, String placa, int ano){ this.proprietario = proprietario; this.marca = marca; this.placa = placa; this.ano = ano; }; public void transferirProprietario(String novoProprietario){ proprietario = novoProprietario; }; public void mudarPlaca (String novaPlaca){ placa = novaPlaca; }; }
Juliano Marcos Martins julianom@br.ibm.com
05/01/2008
46/55
Classe livro
public class Livro{ private String nome;
05/01/2008
47/55
2- Criao de Objetos
05/01/2008
48/55
Criando um objeto
Temos uma classe em Java, que especifica o que todo objeto dessa classe deve ter. Mas como usla?
Alm dessa classe ainda teremos o Programa.java, e a partir dele que iremos utilizar a classe
automvel. classe:
Para criar (construir, instanciar) um Automvel, basta usar a palavra chave new seguida do nome da
class Programa {
public static void main(String[] args) { new Automovel();
} }
O cdigo acima cria um objeto do tipo Automvel, mas como acessar esse objeto que foi criado?
Precisamos ter alguma forma de nos referenciar a esse objeto. Precisamos de uma varivel:
class Programa { public static void main(String[] args) { Automovel meu_carro; meuCarro = new Automovel(); } }
Repassando:
Cria-se a classe, atributos/mtodos e seu construtor
public carros(String modelo) { this.modelo = modelo; }
Definio do construtor
Instancia-se o objeto
Uso do construtor
Invocando mtodos
05/01/2008
51/55
Welcome
52
Um pouco de prtica
Sistema de biblioteca
Diagrama de classes
Aluno (contrutor, etc) Livro (Emprestar livro, consultar emprestimo, etc) Editora
Implementao em JAVA
Implementando as classes Implementando um programa que instancia objetos
05/01/2008
53/55
Exerccios
Crie um diagrama de classes para um sistema de
Estoque
05/01/2008
54/55
Nomundoreal
05/01/2008
55/55
Links interessantes
http://javaalmanac.com/
http://java.sun.com/javase/downloads/index.jsp - Previous
Releases
05/01/2008
56/55
public classes
May be accessed by any java code that can access its containing package Otherwise it may be accessed only from within its containing package
abstract classes
Can contain anything that a normal class can contain Variables, methods, constructors