Você está na página 1de 35

Programao orientada a objetos com Java

Conceitos e Fundamentos Prof.: Jean Cristian

1.0

Abstrao
Possumos o recurso da abstrao para entender problemas tidos como complexos. Pelo princpio da abstrao, ns isolamos os objetos que queremos representar do ambiente complexo que os situam, e nesses objetos representamos apenas as caractersticas e mtodos relevantes para o problema em questo, ou seja, concentrar-se no que um objeto e faz antes de se decidir como ele ser implementado.

2004 by Pearson Education

Aprendendo com exemplo


Exemplo: Numa sala de aula possuem 2 alunos de recuperao em matemtica. Faa um programa que leia o nome, a idade e a nota das 3 provas que eles fizeram. Ao final mostre o nome dos alunos aprovados.
2004 by Pearson Education

Aprendendo com exemplo


Programao Estruturada:
Algoritmo

2004 by Pearson Education

Aprendendo com exemplo


Programao Estruturada:
Pascal

2004 by Pearson Education

Aprendendo com exemplo


Programao Estruturada:
C

2004 by Pearson Education

Aprendendo com exemplo


Programao Orientada a Objetos:
UML

2004 by Pearson Education

Aprendendo com exemplo

2004 by Pearson Education

Classe
Uma classe de objetos descreve um grupo de objetos com propriedades semelhantes (atributos), o mesmo comportamento (operaes), os mesmos relacionamentos com outros objetos e a mesma semntica. A maioria dos objetos deriva sua individualidade das diferenas entre os valores de seus atributos e relacionamentos com outros objetos, mas tambm possvel a existncia de objetos com idnticos valores de atributos e relacionamentos. Ao se agrupar objetos em classe generaliza-se definies comuns, como nome da classe e nomes dos atributos, sendo armazenados uma vez por classe ao invs de por instncia, isto a abstrao.

2004 by Pearson Education

Classe
Principais Componentes da Classe: Um atributo um valor de dado guardado pelos objetos de uma classe, e cada atributo possui um valor para cada instncia de objeto. Diferentes instncias de objetos podem ter valores iguais ou diferentes para um dado atributo e importante frisar que cada nome de atributo nico dentro de uma classe. Um atributo deve ser um puro valor de dado, e no um objeto. Diferentemente dos objetos, os valores puros de dados no tem identidade. O Mtodo uma funo ou transformao que pode ser aplicada a objetos ou por estes a uma classe, e todos os objetos de uma classe compartilham as mesmas operaes. Cada operao tem um objeto-alvo, seu comportamento depende da classe de seu alvo. A mesma operao pode se aplicar a muitas classes diferentes, sendo assim ela polimrfica, isto , a mesma operao toma formas diferentes em classes diferentes. Uma operao pode ter argumentos alm de um objeto-alvo. Esses argumentos servem como parmetros para a operao, mas no afetam a escolha do mtodo.

2004 by Pearson Education

10

UML
Na Unified Modeling Language (UML), a representao para uma classe no diagrama de classes tipicamente expressa na forma grfica, como mostrado na figura. Como se observa nessa figura, a especificao de uma classe composta por trs regies: o nome da classe, o conjunto de atributos da classe e o conjunto de mtodos da classe.

2004 by Pearson Education

11

UML
Modificador de visibilidade pode estar presente tanto para atributos como para mtodos. Em princpio, trs categorias de visibilidade podem ser definidas:
pblico, denotado em UML pelo smbolo +: nesse caso, o atributo ou mtodo de um objeto dessa classe pode ser acessado por qualquer outro objeto (visibilidade externa total); privativo, denotado em UML pelo smbolo -: nesse caso, o atributo ou mtodo de um objeto dessa classe no pode ser acessado por nenhum outro objeto (nenhuma visibilidade externa); protegido, denotado em UML pelo smbolo #: nesse caso, o atributo ou mtodo de um objeto dessa classe poder ser acessado apenas por objetos de classes que sejam derivadas dessa atravs do mecanismo de herana.

2004 by Pearson Education

12

Objetos
Um objeto simplesmente algo (coisa ou pessoa) que faz sentido no contexto de uma aplicao. O objeto um conceito, uma abstrao, algo com limites ntidos e significado em relao ao problema em causa. Eles facilitam a compreenso do mundo real e oferecem uma base real para ser implementada no computador. No paradigma de orientao a objetos, tudo pode ser potencialmente representado como um objeto. Sob o ponto de vista da programao orientada a objetos, um objeto no muito diferente de uma varivel normal. Por exemplo, quando define-se uma varivel do tipo int em uma linguagem de programao como C ou Java, essa varivel tem:

2004 by Pearson Education

13

Objetos
um espao em memria para registrar o seu estado (valor); um conjunto de operaes que podem ser aplicadas a ela. O objeto adquire um espao em memria para armazenar seu estado e um conjunto de operaes que podem ser aplicadas ao objeto. Um programa orientado a objetos composto por um conjunto de objetos que interagem atravs de trocas de mensagens. Na prtica, essa troca de mensagem traduz-se na aplicao de mtodos a objetos. As tcnicas de programao orientada a objetos recomendam que a estrutura de um objeto e a implementao de seus mtodos devem ser to privativos como possvel. Normalmente, os atributos de um objeto no devem ser visveis externamente. Um objeto consiste em uma estrutura de dados que possui propriedades ou caractersticas (atributos) e capaz de executar um conjunto de aes (mtodos).

2004 by Pearson Education

14

Conceitos importantes
Visibilidade Mtodo construtor Mtodos de acesso (set e get)

2004 by Pearson Education

15

Classe

Mtodo Construtor, cada classe deve possuir um ou mais mtodos construtores, que so executados quando um objeto criado, muito utilizado para inicializar os atributos, deve possuir o mesmo nome da classe.

2004 by Pearson Education

16

Classe

2004 by Pearson Education

17

Classe
Nome da classe, cuidado com letras maisculas e minsculas, o nome da classe deve ser o mesmo nome do arquivo exemplo pessoa.java Indica classe publica visvel a todas as classes do sistema rea de declarao dos atributos da classes, indica a visibilidade do mtodo, seguido do tipo do atributo e do nome do atributo

Mtodos de Acesso: repare que o atributo idade private, ou seja, uma outra classe no consegue modificar seus valores, para contornar esse problema criamos mtodos de acesso que permite a utilizao desse atributo por classes externas

Cad o Construtor?

2004 by Pearson Education

18

Objetos

2004 by Pearson Education

19

Objetos

Objeto da classe Aluno, armazenado na varivel aluno1

2004 by Pearson Education

20

Objetos

Outro objeto da classe Aluno, armazenado na varivel aluno2

2004 by Pearson Education

21

Objetos

Outro objeto da classe Pessoa, armazenado dentro de pessoa1

2004 by Pearson Education

22

Objetos

2004 by Pearson Education

23

Herana
o compartilhamento de atributos e operaes entre classes com base num relacionamento hierrquico. Uma classe pode ser dividida em subclasses mais definidas. Cada subclasse herda todas as propriedades de sua superclasse e acrescenta suas prprias e exclusivas caractersticas. As propriedades da superclasse no precisam ser repetidas em cada subclasse. A herana uma das principais caractersticas (ou mesmo vantagem) dos sistemas baseados em objetos. A capacidade de identificar propriedades comuns a vrias classes de uma superclasse comum e de faz-las herdar as propriedades da sua superclasse pode reduzir substancialmente as repeties nos projetos e programas.

2004 by Pearson Education

24

Herana
Alterando a classe Aluno
Palavra que indica herana. ou seja, a classe Aluno herda da classe Pessoa No mtodo construtor da classe aluno h uma chamada ao mtodo construtor da classe pessoa super(); isso executa o mtodo construtor da classe Pessoa, feita anteriormente Qual sintaxe a seguir est correta? Nome = teste; nome = teste; idade = 0; setIdade(0);

Um mtodo que exibe o nome do aluno no console


2004 by Pearson Education

25

Relacionamento
Um relacionamento entre objetos representa uma conexo fsica ou conceitual entre os mesmos. Um exemplo de relacionamento o que ocorre entre uma instncia de uma classe que representa os clientes de um banco e uma instncia de uma classe que representa uma conta bancria. Em termos de objetos de software, um relacionamento geralmente representa que pelo menos um dos objetos relacionados mantm uma referncia para o outro. Atravs de um relacionamento um objeto pode mandar mensagens para o outro. A multiplicidade especifica quantas instncias de uma classe relacionam-se a uma nica instncia de uma classe associada. A multiplicidade restringe a quantidade de objetos relacionados. A multiplicidade depende de pressupostos e de como so definidas as fronteiras de um problema. A mais importante distino de multiplicidade a existente entre "um" e "muitos". A subestimao da multiplicidade pode restringir a flexibilidade de aplicao.

2004 by Pearson Education

26

Relacionamento
Alterando a classe Aluno
Insero de um atributo da classe notas isso indica que cada objeto da classe Aluno tem um objeto notas criado automaticamente, esse o relacionamento Alterando o mtodo construtor para criar automaticamente as notas, ou seja, quando um aluno criado suas notas tambm so. Da mesma forma precisamos de um mtodo que mostre a mdia do aluno, mas o mtodo j est implementado em notas, portanto, basta chama-lo

2004 by Pearson Education

27

Aprendendo com exemplo


Programao Orientada a Objetos: Perguntas:
As classes criadas resolvem o problema inicial? O que est faltando? Nenhuma classe possui o mtodo main. Porque?

2004 by Pearson Education

28

Codificando Principal
Classes importadas para a leitura das variveis. Mtodo main, indica que o mtodo executvel, Args Argumento que podem ser passados na hora da execuo Static, indica que esse mtodo pode ser executado sem que haja um objeto da classe principal Cria um objeto para leitura via teclado Testando se recebi algo por parmetro. Criando duas variveis da classe aluno uma para ler os alunos, a1 e a2. depois o objeto criado. Leitura dos dados via teclado e armazena no objeto Usando mtodo da classe Notas

2004 by Pearson Education

29

Codificando Principal

2004 by Pearson Education

30

Aprendendo com exemplo


Programao Orientada a Objetos: Perguntas:
Porque o que eu fao em poucas linhas em outras linguagens eu gasto muito mais em java? Qual a vantagem dessa forma de programao?

2004 by Pearson Education

31

Codificando Principal
Para executar o mtodo main preciso clicar em cima da classe e depois no mtodo, sem necessidade de criar objeto Se criar um objeto no h como executar o mtodo, pois ele esttico.

2004 by Pearson Education

32

Debug
Click sobre a linha que se deseja investigar

Execute o programa

2004 by Pearson Education

33

Debug

2004 by Pearson Education

34

Aprendendo com exemplo


Programao Orientada a Objetos: Outro exerccio:
Crie um programa que leia o nome e a matricula de um professor. O professor deve lanar as 3 notas de seus 5 alunos. Quantos desses alunos foram aprovados?

Mos a Massa!

2004 by Pearson Education

35