05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos...

57
05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martins [email protected]

Transcript of 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos...

Page 1: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

05/01/2008

Programação Orientada a Objetos

usando JAVA

Autor:Juliano Marcos Martins [email protected]

Page 2: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

2/55 Juliano Marcos Martins – [email protected] 05/01/2008

Programação procedural

Page 3: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

3/55 Juliano Marcos Martins – [email protected] 05/01/2008

Introdução a Objetos

Page 4: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

4/55 Juliano Marcos Martins – [email protected] 05/01/2008

Introdução a Objetos

Page 5: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

5/55 Juliano Marcos Martins – [email protected] 05/01/2008

Page 6: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

6/55 Juliano Marcos Martins – [email protected] 05/01/2008

Page 7: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

7/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Abstração

Carro, Livro, Aluno, etc

Page 8: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

8/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Objeto– Tudo em OO é OBJETO

– Definição (mundo do software)

• “Qualquer coisa, real ou abstrata, a respeito da qual armazenamos dados e métodos que os manipulam” (Martin e Odell, 1995)

• Abstração de uma entidade do mundo real de modo que essa entidade possua várias características e serviços

• Exemplos: objeto casa, objeto cachorro

Page 9: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

9/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Objeto Resumindo:

– OBJETO: Pacote de informações (atributos) e a descrição de suas operações (métodos), de modo que elas são intrínsecas ao seu domínio e este é formado pelos elementos que o caracterizam

– Exemplo:

• Objeto: Pessoa

• Atributos: Nome, Data de Nascimento, Cor

• Métodos: Acordar, Comer, Beber Dormir

Page 10: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

10/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Métodos• Métodos ou Operações: podem mudar a estrutura de dados

dos objetos

– Métodos são invocados por mensagens

– Cada objeto possui seu próprio conjunto de métodos

• Definições:

– São procedimentos definidos e declarados que atuam sobre um objeto

– Descrição de uma seqüência de ações a serem executadas por um objeto

– Por meio dos métodos que especifica-se a um objeto COMO FAZER alguma coisa

– São intrínsecos aos objetos e não podem ser separados

Page 11: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

11/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - ClasseClasse

– abstração de um conjunto de objetos similares do mundo real

– conjunto de objetos que possuem propriedades semelhantes (ATRIBUTOS), o mesmo comportamento (MÉTODOS), os mesmos relacionamentos com outros objetos e a mesma semântica

• Todo objeto é uma instância de uma Classe

– Todas as instâncias de uma classe têm valores próprios para os atributos especificados na classe

– Os objetos representados por determinada classe diferenciam-se entre si pelos valores de seus atributos

• Exemplo: – Classe de espécies em Zoologia

Page 12: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

12/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Represetação

Page 13: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

13/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Encapsulamento• Característica que visa esconder detalhes de

implementação

• É alcançado em OO, visto que o objeto, quando implementado, possui uma parte privada (atributos) e uma parte pública (métodos)

• Programadores podem introduzir mudanças na implementação de um método sem afetar o comportamento externo desse método (interface)

• Objetos encapsulam seus atributos

– atributos de uma classe são acessíveis apenas pelos métodos da própria classe

– outras classes só podem acessar os atributos de uma classe invocando os métodos públicos

• Restringe a visibilidade do objeto mas facilita o reúso, aumenta a legibilidade e manutenibilidade

Page 14: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

14/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Mensagem• É o mecanismo através do qual os objetos se comunicam,

invocando as operações desejadas

• Especificação de uma operação do objeto

• É composta por

– Seletor:

• nome simbólico que descreve o tipo da operação

• descreve O QUE o objeto que envia quer que seja invocado

• o objeto receptor da mensagem contém a descrição de COMO a operação deveria ser executada

– Parâmetros:

• argumentos que uma mensagem pode conter que faz parte da operação e requer uma ordem única

Page 15: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

15/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos – Mensagem e métodos

Page 16: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

16/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Polimorfismo• Permite a criação de várias classes com interfaces

idênticas, porém objetos e implementações diferentes

• Propriedade segundo a qual vários métodos podem exis ir com o mesmo nome mas com comportamento diferente

– Ao receber uma mensagem para efetuar uma Operação, é o objeto quem determina como a operação deve ser efetuada

• Exemplos

– O operador “+” pode ser usado com inteiros, pontosflutuantes ou strings.

– A operação mover pode atuar diferentemente nas classes Janela e PeçadeXadrez.

– A operação Calcular_Salário atua diferentemente nas classes funcionario comissionado e funcionário assalariado

Page 17: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

17/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Relacionamento• Objetos podem relacionar-se um com o outro

• Uma Pessoa pode possuir Carro, onde o relacionamento possuir define uma conexão específica entre Pessoa e Carro

• Associação

– um relacionamento que um objeto precisa ter com outro(s) objeto(s), para cumprir suas responsabilidades

Page 18: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

18/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Herança• Mecanismo que permite definir uma nova classe

(subclasse) a partir de uma classe já existente (super-classe)

• A subclasse herda as características comuns da superclasse (atributos e métodos)

– A subclasse pode adicionar novos atributos e métodos, como também reescrever métodos herdados

• Quando uma mensagem é enviada para um objeto:

– A procura do método correspondente começa pela classe do objeto

– Se o método não for encontrado, a procura continua na superclasse

Page 19: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

19/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - HerançaA Herança pode ser de dois tipos:

– Herança Simples: quando uma classe é subclasse de somente uma superclasse

– Herança Múltipla: quando uma classe é subclasse de várias superclasses e, conseqüentemente, herda as características de cada uma delas

Page 20: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

20/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos - Herança

Page 21: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

© 2006 IBM Corporation 21

Welcome

Page 22: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

22/55 Juliano Marcos Martins – [email protected] 05/01/2008

Exercícios

1- Como você define OO?2- Faça uma analogia entre o desenvolvimento estruturado e OO.3- Cite algumas vantagens de OO.4- Defina Objeto5- Defina Classe6- Defina atributos7- Defina mensagens8- Como você define Polimorfismo e Encapsulamento?9- Qual a diferença entre associação e Herança?10- Quais os dois tipos de herança?11- Desenhe as seguintes classes com seus atributos e métodos:

a) Produtosb) Alunoc) Pessoa e Pessoa Física (onde pessoa física é uma

subclasse de pessoa)

Page 23: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

05/01/2008

JAVA

Autor:Juliano Marcos Martins [email protected]

Page 24: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

Juliano Marcos Martins – [email protected] 05/01/2008

Métodos de implementação

Compilação - programa traduzido para linguagem de máquina (C, PASCAL, COBOL, Ada, etc.);

Interpretação – programa fonte interpretado por outro programa que entende o programa fonte (sh, awk, LISP, ML, PROLOG, Smalltalk, etc.);

Implementação híbrida – Misto de ambos (Perl, Java, etc.)

Page 25: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

Juliano Marcos Martins – [email protected] 05/01/2008

Compilação

Page 26: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

Juliano Marcos Martins – [email protected] 05/01/2008

Compilação

Page 27: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

Juliano Marcos Martins – [email protected] 05/01/2008

InterpretaçãoPrograma-fonte

Interpretador

Resultados

Dados de entrada

Page 28: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

Juliano Marcos Martins – [email protected] 05/01/2008

Sistema de implementaçãoHíbrido

JAVA VIRTUAL MACHINE

x.java

x.class

javac x.javajava x

Page 29: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

Juliano Marcos Martins – [email protected] 05/01/2008

A plataforma JAVA

Java é multiplataforma devido a sua JVM!

Page 30: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

30/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos JAVA - Edições

• JAVA SE– Standard Edition, indicada para iniciarmos

nosso trabalho com JAVA, contem as APIs padrão

• 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 móveis ou embarcados (Celulares, Geladeiras, etc)

Page 31: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

31/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos JAVA

• JDK x JRE– Java Development Kit: Contém todo o

instrumental necessário para desenvolvimento JAVA

– Java Runtime Enviroment: Basicamente contém a Java Virtual Machine, o que é necessário para rodar aplicações Java.

• Download http://www.java.com/pt_BR/

• Instalando e configurando– http://jmmwrite.wordpress.com/2008/07/14/preparacao-de-um-ambiente-

de-desenvolvimento-java-v2/

Page 32: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

32/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos JAVA

• JAVAC: Java compiler

• JAVA: Interpretador Java

• Ambiente de desenvolvimento (IDE)–Eclipse, Rational Application Developer, etc

Page 33: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

33/55 Juliano Marcos Martins – [email protected] 05/01/2008

Conceitos básicos – Hands on JAVA!!!

public class AloMundo {

public static void main(String[] args) {System.out.println("Alo Mundo!!!");

}

}

Para rodar:

javac AloMundo.java

java AloMundo

Page 34: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

34/55 Juliano Marcos Martins – [email protected] 05/01/2008

1- Definição e implementação de classes

As classes automóvel e livroAs classes automóvel e livro

Criação de uma classeCriação de uma classe

Atributos e métodosAtributos e métodos

VisibilidadeVisibilidade

Implementação das classes automóvel e livroImplementação das classes automóvel e livro

Page 35: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

35/55 Juliano Marcos Martins – [email protected] 05/01/2008

A Classe automóvel

Page 36: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

36/55 Juliano Marcos Martins – [email protected] 05/01/2008

A Classe LivroLivro

Titulo

Autor

Tombo

Editora

Empresta

Devolve

Reserva

Cadastra

Consulta

Page 37: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

37/55 Juliano Marcos Martins – [email protected] 05/01/2008

Declarando uma Classe Definição de uma classe:

[modificadores] class NomeDaClasse

{

....

}

Exemplos:

public class Automovel

{

}

public class Livro

{

}

public class Aluno

{

}

Page 38: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

38/55 Juliano Marcos Martins – [email protected] 05/01/2008

Declarando Atributos de Classe

Definição de um Atributo:

[modificadores] tipo nomeDoAtributo [ = inicialização ];

Exemplos:

private int numero;

public String tamanhoMaximo = 15;

private String nome = “Maria da Silva”;

double raio = 6.5;

Object o = new Object();

Page 39: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

39/55 Juliano Marcos Martins – [email protected] 05/01/2008

Declarando Métodos Definição de um método:

[modificadores] retorno nomeDoMetodo ( [Argumentos] ) [ throws Exeções ]

{

...

[ return varRetorno; ]

}

Exemplos:private void obtemNumeroAlunosTurma ( long codigoTurma ) { ... }

public String getNomeAluno( int codigoAluno ) { ... }

public void insereAluno ( String nomeAluno ) throws Exception { ... }

public long getNumeroInstancias () { ... }

Page 40: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

40/55 Juliano Marcos Martins – [email protected] 05/01/2008

Exemplo de Classepublic 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; }}

Page 41: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

41/55 Juliano Marcos Martins – [email protected] 05/01/2008

Construtor da Classe

Para que um objeto exista é necessário construí-lo, isto é, dizer para a

JVM que é necessário espaço de memória para criação do objeto.

Para construir um objeto usa-se o construtor da classe.

– Aluno o1 = new Aluno();

– Object o2 = new Object();

Toda classe possui, por default, um construtor padrão: público e sem

argumentos.

O construtor default somente é criado quando nenhum outro construtor

for definido pelo programador.

Uma classe pode ter quantos construtores desejar.

Page 42: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

42/55 Juliano Marcos Martins – [email protected] 05/01/2008

Declarando Contrutores da Classe

Definição de um método:

[modificador] nomeDaClasse ( [Argumentos] ) [ throws Exeções ]

{

...

}

Exemplos:

public Turma () { ... }

public Turma ( long codigoTurma ) { ... }

public Curso( int codigoCurso ) throws Exception { ... }

public Curso ( String nomeCurso, int codigoCurso ) { ... }

public Automovel() {...}

public Automovel(String marca, String Dono) {...}

Page 43: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

43/55 Juliano Marcos Martins – [email protected] 05/01/2008

Visibilidade/Modificadores Cada um dos elementos que constituem uma classe

possui uma visibilidade (Staa, p. 296);

Visibilidade é a capacidade de um objeto poder “ver” ou de ter referência a outro objeto (Larman, p. 246);

O conceito de visibilidade também é conhecido como modificadores de acesso.

Page 44: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

44/55 Juliano Marcos Martins – [email protected] 05/01/2008

Visibilidade

Os tipos de visibilidade que podem ser determinados em uma classe para atributos e operações são:

+ public: os elementos são acessíveis por todas as classes;

# protected: os elementos são acessíveis por subclasses, ou pela própria classe;

– private: os elementos são acessíveis somente pela própria classe;

Page 45: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

45/55 Juliano Marcos Martins – [email protected] 05/01/2008

Visibilidade

Atributos: somente deveriam ser acessados pelos métodos da classe a que pertence;

Operações:

– Públicas (interface);

– Privadas (internas à classe).

Page 46: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

46/55 Juliano Marcos Martins – [email protected] 05/01/2008

Classe automóvel

public class Automovel{public String proprietario; //Atributosprivate 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; };}

Page 47: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

47/55 Juliano Marcos Martins – [email protected] 05/01/2008

Classe livro

public class Livro{

private String nome;

private int tombo;

private String autor;

public Livro (String autor, int tombo, String nome){

this.nome = nome;

this.tombo = tombo;

this.autor = autor;

};

public String retornaNomeLivro(int tombo){

return nome;

}

}

Page 48: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

48/55 Juliano Marcos Martins – [email protected] 05/01/2008

2- Criação de Objetos

• Instanciação (Criação de objetos como instâncias de Criação de objetos como instâncias de classes)classes)

Page 49: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

49/55 Juliano Marcos Martins – [email protected] 05/01/2008

Criando um objeto Temos uma classe em Java, que especifica o que todo objeto dessa classe deve ter. Mas como usá-

la?

Além dessa classe ainda teremos o Programa.java, e a partir dele é que iremos utilizar a classe automóvel.

Para criar (construir, instanciar) um Automóvel, basta usar a palavra chave new seguida do nome da classe:

class Programa {

public static void main(String[] args) {new Automovel();

}

}

O código acima cria um objeto do tipo Automóvel, mas como acessar esse objeto que foi criado? Precisamos ter alguma forma de nos referenciar a esse objeto. Precisamos de uma variável:

class Programa {

public static void main(String[] args) {

Automovel meu_carro;

meuCarro = new Automovel();

}

}

Automovel meuCarro = new Automovel();

Page 50: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

50/55 Juliano Marcos Martins – [email protected] 05/01/2008

Instanciação de um objeto da classe automóvel

public class Automovel{public String proprietario; //Atributosprivate String marca;private String placa;private int ano;public Automovel (String proprietario, String marca, String placa, int ano){//construtor

this.proprietario = proprietario; this.marca = marca; this.placa = placa; this.ano = ano; };

public void transferirProprietario(String novoProprietario){//método para alteração de proprietário proprietario = novoProprietario;

};}

public class Programa {

public static void main(String[] args){

Automovel carro1 = new Automovel("Fulano","Volks","BJM3434",1999);

System.out.println(carro1.proprietario);

System.out.println("Alterando proprietário");

carro1.transferirProprietario("Beltrano");

System.out.println(carro1.proprietario);

};

}

Page 51: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

51/55 Juliano Marcos Martins – [email protected] 05/01/2008

public carros(String modelo) { this.modelo = modelo;

}

Automovel carro1 = new Automovel(“GOL");

Uso do construtor

Definição do construtor

Repassando:

Cria-se a classe, atributos/métodos e seu construtor

Instancia-se o objeto

Utiliza-se seus métodos

carro1.transferirProprietario("Beltrano");

Invocandométodos

Page 52: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

© 2006 IBM Corporation 52

Welcome

Page 53: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

53/55 Juliano Marcos Martins – [email protected] 05/01/2008

Um pouco de prática

Sistema de biblioteca– Diagrama de classes

• Aluno (contrutor, etc)• Livro (Emprestar livro, consultar emprestimo, etc)• Editora

Implementação em JAVA– Implementando as classes– Implementando um programa que instancia objetos

Page 54: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

54/55 Juliano Marcos Martins – [email protected] 05/01/2008

Exercícios

Crie um diagrama de classes para um sistema de Estoque

Implemente em JAVA todas as classes e um programa que instancie objetos do seu sistema

Page 55: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

55/55 Juliano Marcos Martins – [email protected] 05/01/2008

No “mundo real”

• Sistema de controle de estoque

• Classe “Produtos”

• Vetor de produtos

Page 56: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

56/55 Juliano Marcos Martins – [email protected] 05/01/2008

Links interessantes

http://javaalmanac.com/

http://java.sun.com/javase/downloads/index.jsp - Previous Releases

Page 57: 05/01/2008 Programação Orientada a Objetos usando JAVA Autor: Juliano Marcos Martinsjulianom@br.ibm.com.

Programação Orientada a Objetos I

57/55 Juliano Marcos Martins – [email protected] 05/01/2008

Anexo 1: Modificadores de Classes

The declaration may include class modifiers, which affect how the class can be used.

–Examples:

•public, abstract, final

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

–Provide common information for subclasses

–Cannot be instantiated

A class is declared final if it permits no subclasses.