Você está na página 1de 29

Disciplina: Programação II

Curso: Engenharia de Tecnologia e Sistemas de


Informação
2º Ano

Aula 5
Classe e Objectos

Docente: enga. Ivone Cipriano


Topicos
üClasses e objectos;
üEncapsulamento;
üMétodos Get e Set;
üConstrutores;
Programação Orientada a Objectos
A Programação Orientada a Objectos (POO) é
um modelo ou paradigma de programação
diferente da programação Estruturada
caracterizada por:
ØConceito de classe e objectos;
ØDivide o codigo em diferentes classes.
Por exemplo, pode-se usar uma classe para
declarar os atributos e os métodos, outra classe
para receber os dados e somente na função
main fazer a chamada do método.
Classes e Objectos
Uma Classe pode ser vista como uma abstração
ou generalização. Uma classe e composta por
objectos.
Objeto é algo real e concreto, é um elemento
ou tipo daquela classe. Por exemplo, pode-se
ver "Pessoa" como uma classe, uma classe
que representa seres humanos, que possuem
cabeça, coração, cérebro etc. É uma
generalização maior.
Classes e Objectos
Pode-se declarar “Aluno” como um objeto da
classe Pessoa, com seu nome e características
específicas de uma "Pessoa". “Professor” é
também um objecto da classe Pessoa.
Existem características gerais, que todos da
classe "Pessoa" possuem, como: nome, morada,
data de nascimento, etc. Um objeto é
sempre instância de uma classe ou realização
concreta e particular de uma classe.
Classes e Objectos
Um objecto é uma combinação de dados ou
atributos (variáveis) e acções ou
comportamentos (métodos) logicamente
relacionados. Um objecto pode ser
caracterizado por três componentes:
• identidade;
• atributos;
• métodos.
Classes e Objectos
Métodos são funções que alteram o
comportamento dos objetos.
Criação: a seguinte instrução cria o objeto
(professor) que é instância da classe Pessoa:
Pessoa professor= new Pessoa();
Pessoa aluno= new Pessoa();
Instanciar uma classe significa criar um objeto
daquela classe.
Classes e Objectos
public class Pessoa {
public int idade;
public String nome, profissao, morada;
public static void main(String[] args) throws
IOException {
Pessoa professor= new Pessoa(); //cria objecto
professor pertecente a classe Pessoa
Pessoa aluno= new Pessoa(); // cria objecto aluno
pertecente a classe Pessoa
Classes e Objectos
aluno.nome="Joao"; //instancia objecto Joao
aluno.idade=20;
professor.nome=“Armando";
professor.morada="Benfica";
System.out.println(aluno.nome);
System.out.println(+nome);
System.out.println(professor.morada);
Classes e Objectos
System.out.println(aluno.nome);
System.out.println(professor.nome);
System.out.println(professor.morada);

System.out.println("os dados do aluno " + " "


+aluno.nome);
System.out.println("os dados do professor sao "
+ " " +professor.nome+ " e "+morada);}}
Encapsulamento
Mecanismo que coloca atributos e métodos
seguros em relação ao nível de acesso, o
encapsulamento esta intimamente ligado ao
conceito de ocultamento ou segurança de dados
e é implementado através dos seus
modificadores de acesso.
O uso de encapsulamento é feito
implementando por:
public, protected, private e default.
Public
O modificador public permite que o membro
público seja acessado por qualquer classe, é o
mais aberto, exigindo maior responsabilidade
do programador no seu uso.
Ex: public int idade;
Quando esta omisso na declaração qualquer dos
três tipos, Java assume a variável declarada
como publica.
Ex: int idade; Ou seja declarar public int idade;
é o mesmo que declarar int idade; .
Private
O modificador de acesso private determina que
o membro privado só pode ser acessado por
métodos dentro da própria classe, é o mais
restrito e deve ser empregue sempre que
possível.
Ex: private int idade;
Protected
Somente os atributos e métodos podem ser
declarados como protected.
Um membro protegido de uma classe está
disponível a todas as classes do mesmo pacote.
A tabela abaixo relaciona a visibilidade dos
atributos com os modificadores de acesso
public, private, protected e default.
Ex: protected int idade;
Modificadores de Acesso

private default protected public


mesma classe sim sim sim sim
mesmo pacote não sim sim sim
pacotes
diferentes não não sim sim
(subclasses)
pacotes
diferentes (sem não não não sim
subclasses)
Métodos de Acesso
Os atributos declarado private de uma classe
somente podem ser manipulados pelos
métodos dessa classe. Em geral, esses atributos
são utilizados internamente pelas classes em
que foram criados. Porém, existem situações em
que é necessário que objetos de outras classes
também manipulem esses atributos privados.
Métodos de Acesso
As classes fornecem métodos públicos para
modificar ou receber valores de variáveis, o
padrão para visualizar e receber valores das
variáveis em Java
Os modificadores de acesso são os métodos get
e set.
üsetNomeAtributo()
ügetNomeAtributo()
Para introduzir e receber os valores dos
atributos, respectivamente.
Método Get
Para aceder alguns atributos da classe utiliza-se
o método GET. Esse método sempre retornará
um valor, seja ele String, int ,double etc.
Sintaxe do get:
Tipo de atributo getNomedoAtributo
O get sempre retorna ao atributo.
public int getIdade() {
return idade; }
Método Set
Para alterar ou modificar os valores de um
atributo da classe, utiliza-se o método SET. Esse
método não terá um retorno, pois o atributo
será somente modificado, criando um método
de tipo VOID, sem retorno. Porém ele deve
receber algum argumento para que possa
ocorrer a devida alteração.
Método Set
Sintaxe do set:
Public void setNomedoAtributo(tipo de atributo
nome do atributo)
O set nao tem retorno.

public void setIdade(int idade) {


this.idade = idade; }
Construtor
Um construtor é responsável por criar um objeto ou
instanciar a classe que foi definida. Cada classe deve ter
pelo menos um construtor, é um tipo especial de
método utilizado apenas na criação e inicialização de
objectos da classe, e distinguem-se dos restantes
métodos por terem o mesmo nome da classe e por
não terem valor de retorno. Os construtores não são
chamados como os outros métodos, apenas a instrução
de criação de objectos da classe os pode chamar.
Construtor
São usados para inicializar os atributos de uma
classe, se nenhum construtor for definido ou
criado, o compilador cria um construtor default
que não recebe nenhum argumento ou
parametro.
Boas práticas dizem que deve-se criar um
construtor para assegurar que cada objecto seja
inicializado.
Passos
Sequencia para estruturar código com atributos
privados:
1. Declarar os atributos;
2. Implementar os métodos set e get para os atributos;
3. Criar os construtores com ou sem parâmetros;
4. Definir outros métodos (se houver);
N.B estes passos são apresentados sempre antes da
função main (principal)
Exemplo
public class Aluno { //classe com nome Aluno
private int nrest; // declaracao dos atributos
private String nome, apelido, morada;
// como os atributos sao privados os metodos get e set devem ser empregues para que estes
atributos possam ser usados
public String getNome() { return nome; } // metodo get sempre tem um retorno
public String getMorada() { return morada; } // regra geral retorna ao proprio atributo
public String getApelido() { return apelido; }
public int getINrest() { return nrest; }

public void setNome(String nome) {}


public void setMorada(int morada) {}
public void setNrestdade(int idade) {}
public void setApelido(int apelido) {}
Exemplo
public Aluno (String nome, String apelido, String morada) {
this.nome=nome; this.apelido=apelido; this.morada=morada; } // criação do
construtor que sempre tem o nome da classe, este construtor tem como parâmetros
nome apelido e morada

public Aluno (String nome, int nrest) {


this.nome=nome; this.idade=idade;} // criação de outro construtor com
parâmetros nome e nrest

//Fica ao critério do programador escolher os parâmetros dos construtores, mas estes


devem fazer sentido
//Uma classe pode ter mais que um construtor
Exemplo
// como ja foram criados todos metodos get, set e construtores, codigo para criacao de objectos, introducao e
visualizacao dos dados devem ser descritos apos a chamada da funcao principal (main)
public static void main (String []args )throws IOException {
BufferedReader br =new BufferedReader(new InputStreamReader(System.in));
// é necessário declarar e criar variáveis para receber valores dos atributos declarados na classe, pois os
atributos definidos nas classes não podem ser usados directamente
System.out.println ("introduza o nome");
String n=br.readLine(); // variavel que vai guardar o atributo nome
System.out.println ("introduza o apelido");
String a=br.readLine(); // variavel que vai guarder atributo apelido
System.out.println ("introduza a morada");
String m=br.readLine(); // variavel que vai guardar o atributo morada
System.out.println ("introduza o nr de estudante");
int i= Integer.parseInt(br.readLine()); // variavel que vai guardar o atributo nrest

Aluno c1= new Aluno(n, a, m); //cria objecto c1 com parametros do primeiro construtor
Aluno c2= new Aluno(n,i); // cria objecto c2 com parametros do outro construtor
Exemplo
System.out.println ("visualizar os dados");

System.out.println("os dados do objecto c1 do construtor com parametros


nome, apelido e morada sao: " );
System.out.println( " " +c1.nome+ " "+c1.apelido+ " "+ c1.morada);

System.out.println("os dados do objecto c2 do construtor com parametros


nome e idade sao: " );

System.out.println(" " + " " +c2.idade); }}


Exercicios
1. Faca um programa para instanciar 5 nomes da classe Pessoa introduzidos
pelo usuario.
2. Faca um programa para instanciar n marcas de carros introduzidas pelo
usuario.
3. Crie uma classe ContaCorrete com minimo de 3 atributos, 2 construtores e
valor inicial de saldo 500,mt. Deve ter funcionalidades para depositar e
levantar dinheiro e fazer validacao para levantamentos . Pela introducao
de dados o programa deve visualizar na saida o saldo e os dados do titular
da conta.
FIM

Você também pode gostar