Beruflich Dokumente
Kultur Dokumente
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
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
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.
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.
Exemplo
Aluno.java
Declarao do objeto
Aluno meuObjeto;
Inicializao
meuObjeto=new Aluno();
meuObjeto.nome=Carlos;
9
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
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
13
Exemplo
Aluno.java
Usando um objeto
double nota=meuObjeto.NotaB1();
15
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();
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
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
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
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
Utilizao
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
teremos
30
Exerccios
31
Fim
32