Sie sind auf Seite 1von 32

Programao Orientada a Objetos

Orientao a objetos

A orientao a objetos um paradigma de anlise, projeto e programao de sistemas de software baseado na composio e interao entre diversas unidades de software chamadas de objetos. A programao OO ajuda na organizao e resolve muitos problemas enfrentados pela programao procedural.

Orientao a objetos

O paradigma orientado a objetos tem as seguintes caractersticas : Alta reutilizao de software Desenvolvimento sempre evolutivo Construes complexas a partir de construes simples Manuteno tende a ser simples

Orientao a objetos

A programao Orientada a objetos utiliza classes e objetos.

Mas o que classes/objetos

Classes Representam todos os tipos de objetos (exemplo: carro). Abstrao do mundo real. Objetos Representao do mundo real ou do domnio de algum problema (exemplo: o carro vermelho estacionado). Objetos possuem estado ou atributos (cor, peso).
4

Classes/ Objetos

Considere um receita de bolo. A pergunta : voc come uma receita de bolo? No

Precisamos instaci-la, criar um objeto bolo a partir dessa especificao (a classe) para utilizla. Podemos criar centenas de bolos a partir dessa classe (a receita, no caso), eles podem ser bem semelhantes, alguns at idnticos, mas so objetos diferentes.

Como programar utilizando classes e objetos?

A programao OO inicia-se com a anlise e projeto de sua classe:

Exemplo

Um projeto de um sistema para a faculdade Impacta , uma possvel classe a ser implementada seria a classe de funcionrio e os seus atributos seriam nome, cargo e salrio. Tente identificar outras classes.

Construindo uma classe

Criar um arquivo nomeClasse.java


public class nomeClasse { // Atributos da classe (declarao de variveis) }

Exemplo

Aluno.java

public class Aluno { String nome; int nota; int notaTrabalho; }

Criando e usando um objeto

Declarao do objeto
Aluno meuObjeto;

Inicializao

meuObjeto=new Aluno();

para referenciar o atributo do objeto usamos nomeObjeto.NomeAtributo

meuObjeto.nome=Carlos;
9

Criando e usando um objeto

No programa (testaAluno.java):

principal

teremos

public class testaAluno { public static void main(String[] args) { Aluno a1; double notaBimestre; a1=new Aluno(); a1.nome=Roberto; a1.nota=6; a1.notaTrabalho=4; notaBimestre= 0.7*a1.nota+0.3*a1.notaTrabalho; JOptionPane.showMessageDialog(null, a1.nome +" "+ notaBimestre); } }

10

Exerccios

Construa uma classe de quadrado e defina o seu atributo. Declare o quadrado no programa principal e calcule a rea e o permetro. Construa uma classe funcionrios que possua os atributos salrio e cargo. Crie um programa que possua dois objetos criados a partir da classe funcionrio e que mostre a diferena de salrio entre esses funcionrios. (Exemplo Salrio de gerente = 7.000 Salrio de programador = 4.000 Diferena = 3.000) Adicionar um atributo nome para a classe funcionrio e crie um programa que instancie dois funcionrios e imprima o nome e o cargo do funcionrio com o maior salrio.
11

Adicionando funcionalidades classe

O comportamento de um objeto tudo o que ele sabe fazer, e tudo o que pode ser feito com ele O comportamento definido pelos mtodos da classe. Exemplos de comportamento - alterar a cor, calcular consumo mdio.

12

Adicionando um mtodo na classe

Criar um arquivo nomeClasse.java


public class nomeClasse { // Atributos da classe (declarao de variveis) //Mtodos da classe public void NomeMetodo(parametro) }

13

Exemplo

Aluno.java

public class Aluno { String nome; int nota; int notaTrabalho;

public double NotaB1 () { return 0.7*nota+0.3*notaTrabalho; }


}
14

Usando um objeto

para referenciar o mtodo do objeto usamos nomeObjeto.NomeMetodo()

double nota=meuObjeto.NotaB1();

15

Criando e usando um objeto

No programa (testaAluno.java):

principal

teremos

public class testaAluno { public static void main(String[] args) { Aluno a1; double notaBimestre; a1=new Aluno(); a1.nome=Roberto; a1.nota=6; a1.notaTrabalho=4; notaBimestre= a1.NotaB1();

JOptionPane.showMessageDialog(null, a1.nome +" "+ notaBimestre); } }


16

Exerccios

Construa uma classe de quadrado e defina o seu atributo e construa os mtodos para se calcular a rea e o permetro deste quadrado. Declare um quadrado no programa principal e calcule a rea e o permetro utilizando os mtodos implementados. Construa uma classe de retngulo e defina como atributos ladoMaior, ladoMenor e identificador (nome). Construa os mtodos para se calcular a rea e o permetro deste retngulo. Declare dois retngulos no programa principal e calcule as reas e o permetros utilizando os mtodos implementados e imprima o nome do retngulo de maior permetro.
17

Exerccios

Construa uma classe de alunos com os atributos nome, ra, nota B1 e nota B2. Crie um mtodo para calcular a mdia desses alunos. Criar 2 alunos no programa principal e imprimir o nome, o ra e a mdia do aluno com a maior mdia. Construa uma classe de tringulo retngulo e defina como atributos catetoOposto catetoAdjacente. Construa os mtodos para se calcular a rea, o permetro e a hipotenusa deste tringulo. Declare um tringulo no programa principal e calcule a rea, o permetro e a hipotenusa deste tringulo.

18

Exerccios

Um polinmio de segundo grau dado pela frmula:

as razes do polinmio podem ser calculadas usando a frmula de bscara

onde

a) Crie uma classe em Java que possua como atributos os coeficientes a, b e c da equao, as razes r1 e r2 e o delta.
19

Exerccios
b) Crie um mtodo para a classe do item a) que retorne o tipo de razes de acordo com o sinal do delta. - Tipos: equao com duas razes, equao com uma raiz e equao com razes irracionais

c) Crie um mtodo para a classe do item a) que armazene as razes se o sistema possuir razes racionais nos atributos e retorne uma string com o valor das razes.

20

Encapsulamento

Orientao a objetos introduz um mecanismo importante, chamado encapsulamento.

O objetivo do encapsulamento ocultar do mundo externo ao objeto os detalhes de implementao e restringir o acesso aos atributos e mtodos

21

Encapsulamento

Vantagens Segurana no acessoa ao objeto Maior consistncia no estado interno, pois evita alterao incorreta de valores dos atributos Maior facilidade de modularizao Melhor gerenciamento no fluxo de dados

22

Encapsulamento

Para forar o encapsulamento dos atributos da classe utilizamos o modificador de acesso private (tambm chamado de modificador de visibilidade). A palavra chave private tambm pode ser usada para modificar o acesso a um mtodo. Sempre devemos expr o mnimo possvel de funcionalidades, para criar um baixo acoplamento entre as nossas classes.
23

Getters e Setters

Para permitir o acesso aos atributos privados de uma maneira controlada, a prtica mais comum criar dois mtodos, um que retorna o valor e outro que muda o valor. O padro para esses mtodos de colocar a palavra get ou set antes do nome.

24

Exemplo
Aluno.java public class Aluno { private String nome;
public void setNome (String nome) { this.nome=nome; } public String getNome () { return nome; } }

this serve para referenciar a si mesmo e indica que a varivel um atributo e no um parmetro ou varivel local.

25

Usando getters e setters

No programa (testaAluno.java):

principal

teremos

public class testaAluno { public static void main(String[] args) { Aluno a1; Aluno a2=new Aluno(); a1=new Aluno(); a1.setNome(Roberto); a2.setNome(Luis); JOptionPane.showMessageDialog(null, Os alunos da sala so: \n + a1.getNome() + \n+ a2.getNome()); } }
26

Construtores

O construtor da classe um bloco declarado com o mesmo nome que a classe. Quando a classe no possui construtor o Java cria um para voc. Esse construtor o construtor default, ele no recebe nenhum argumento e o corpo dele vazio. Sempre quando o new chamado, ele executa o construtor da classe.
27

Adicionando um construtor na classe

Criar um arquivo nomeClasse.java


public class nomeClasse { // Atributos da classe (declarao de variveis) // Construtor public nomeClasse (parametros) //Mtodos da classe (declarao dos mtodos) }

Utilizao

nomeClasse meuObjeto=new nomeClasse(parametro);


28

Exemplo
Quadrado.java public class Quadrado { private int lado;
public Quadrado() { this.lado=4; } public Quadrado (int lado) { this.lado=lado; } public void setLado (int lado) { this.lado=lado; } public int getLado () { return lado; } }
29

Usando construtores

No programa principal (testaQuadrado.java):


public class testaQuadrado { public static void main(String[] args) { Quadrado q1; Quadrado q2; Quadrado q3=new Quadrado(); q1=new Quadrado(); q2=new Quadrado(2); q3.setLado(6);

teremos

JOptionPane.showMessageDialog(null, q1.getLado); JOptionPane.showMessageDialog(null, q2.getLado); JOptionPane.showMessageDialog(null, q3.getLado); } }

30

Exerccios

Repetir os exerccios anteriores utilizando getters, setters e construtores.

31

Fim

32

Das könnte Ihnen auch gefallen