Prévia do material em texto
Aplicação de Linguagem de
Programação Orientada a Objetos
AULA 01
Prof. Ricardo Veras
prof.rveras@gmail.com
ricardo.veras@docente.unip.br
Agenda
• Classe
• Objeto
• Atributo
• Método
• Método Construtor
• Herança
Classe
Classe
As Classes de programação são projetos (modelos) de
um objeto (de um elemento "real" e existente), e que
possui características (dados) e comportamentos
(ações).
Uma Classe é idealizada e codificada no momento da
criação do Projeto (é um elemento de programação).
Ela geralmente representa um substantivo, por
exemplo: uma pessoa, um lugar, um carro, etc..
Características das Classes
- Toda Classe possui um nome (iniciando com
Maiúsculo);
- Possuem "visibilidade" (Modificadores de Acesso:
public, private, protected e default);
- Possuem itens como: Dados (atributos) e Ações
(métodos);
- Para criar uma Classe basta declarar a visibilidade +
digitar a palavra reservada "class" + NomeDaClasse +
abrir e fechar chaves { }.
Exemplo de Classe
public class Teste {
//atributos (ou propriedades)
//métodos
}
Objeto
Objeto
Os objetos são elementos definidos pelas Classes.
São as Classes em "funcionamento", ou Classes
instanciadas (geradas em memória).
Neles podemos popular (inserir valores) seus atributos
e invocar seus métodos (de acordo como foi definido na
sua declaração, nas Classes).
Atributo
Atributo
Os atributos são os dados de um objeto, também
podem ser definidos como variáveis ou campos. Esses
valores definem o estado de um objeto (podem sofrer
alterações).
Método
Método
Os métodos são ações ou procedimentos, onde um
objeto pode interagir e se comunicar com outros
objetos. A execução dessas ações, assim como a
resposta dessas ações, se dá através de "mensagens",
tendo como função o envio de uma solicitação ao
objeto para que seja efetuada a rotina desejada, e para
que seja devolvido uma resposta quando necessário.
Como boas práticas, é indicado sempre declarar
métodos com verbos (criarNovoElemento(),
gerarLista(), acelerarPersonagem(), etc.).
Método Construtor
Método Construtor
Um Método Construtor (MC) é aquele que é acionado
(apenas) no momento em que a Classe está sendo
instanciada.
Este método é responsável por "construir" a Classe em
memória, ou seja, por gerar o Objeto em memória para
que possa ser utilizado.
Método Construtor
• Possui (exatamente) o mesmo nome da Classe;
• É público;
• Não possui indicação alguma de retorno de valor;
• Uma vez determinado na Classe um ou mais MCs, ao
instanciar esta Classe, deve-se utilizar um dos MCs
determinados.
• Uma Classe pode possuir mais de um MC criado
(caracterizando, neste caso, Sobrecarga de Métodos
Construtores).
Características dos MCs:
Método Construtor
Exemplo:
Características dos MCs:
public class Pessoa {
private String nome;
private int idade;
private double altura;
public Pessoa(String s) {
nome = s;
}
public Pessoa(String s, int i, double d) {
nome = s;
idade = i;
altura = d;
}
//... e mais os métodos Setters e Getters
}
Método Construtor
Exemplo:
Características dos MCs:
public class Pessoa {
private String nome;
private int idade;
private double altura;
public Pessoa(String s) {
nome = s;
}
public Pessoa(String s, int i, double d) {
nome = s;
idade = i;
altura = d;
}
//... e mais os métodos Setters e Getters
}
MC1
Método Construtor
Exemplo:
Características dos MCs:
public class Pessoa {
private String nome;
private int idade;
private double altura;
public Pessoa(String s) {
nome = s;
}
public Pessoa(String s, int i, double d) {
nome = s;
idade = i;
altura = d;
}
//... e mais os métodos Setters e Getters
//...
}
MC1
MC2
Método Construtor
Caso tenhamos uma Classe externa instanciando a
Classe Pessoa, então:
Características dos MCs:
public class Teste {
public static void main (String[] args) {
Pessoa p1 = new Pessoa("Amauri");
//... esta instância já será criada em memória
//... com o nome Amauri
//:: Desta forma, a seguinte instância não pode
//:: ...ser feita (portanto gera um erro):
Pessoa p2 = new Pessoa();
//:: ...já que não existe este método
//:: construtor na Classe
}
}
Método Construtor
Caso tenhamos uma Classe externa instanciando a
Classe Pessoa, então:
Características dos MCs:
public class Teste {
public static void main (String[] args) {
Pessoa p1 = new Pessoa("Amauri");
//... esta instância já será criada em memória
//... com o nome Amauri
//:: Desta forma, a seguinte instância não pode
//:: ...ser feita (portanto gera um erro):
//Pessoa p2 = new Pessoa();
//:: ...já que não existe este método
//:: construtor na Classe
}
}
Herança
Herança
A herança é um dos princípios de O.O. que permite a
criação de novas classes a partir de outras previamente
criadas.
Essas novas classes são chamadas de subclasses
(Classes Filhas).
As classes já existentes (que deram origem às
subclasses), são chamadas de superclasses (Classes
Mãe).
Deste modo, gera-se uma Hierarquia de Classes,
criando assim classes mais genéricas (superclasse) e
classes mais específicas (subclasse).
A subclasse herdará todos os métodos e todos os
atributos da superclasse.
Herança
Características:
• Uma Classe Filha pode herdar apenas uma Classe Mãe (em
Java não há Herança Múltipla)
• A Classe Filha possuirá todos os atributos e métodos da
Classe Mãe (independentemente do modificador de acesso que
cada um deles tiver)
• Para que uma classe herde outra, inserimos na declaração da
Classe a palavra extends e o nome da Classe que ela está
herdando (Classe Mãe).
• Quando uma Classe herda outra Classe, ela passa a ser esta
outra Classe (a Classe Filha é a Classe Mãe).
Herança
Representação (Diagrama de Classes - UML):
Herança
Exemplo:
Imagine a Classe Pessoa (encapsulada):
public class Pessoa {
private String nome;
private int idade;
private double altura;
public Pessoa(String s) {
nome = s;
}
/*
... e mais os métodos Setters e Getters
*/
}
Herança
Exemplo (continuação):
Vamos criar agora a Classe Aluno, e ao invés de repetirmos os
dados da Classe Pessoa, vamos fazer com que ela herde
(extenda) a Classe Pessoa (percebam que Aluno é Pessoa).
public class Aluno extends Pessoa {
private String ra;
private String curso;
private String turma;
public Aluno(String s) {
//this.nome = s //... neste caso não pode
this.setNome(s);
}
//... Setters e Getters dos atributos de Aluno
}
Herança
Exemplo (continuação):
Agora vamos instanciar a Classe Aluno, e popular (inserir valores
em) seus atributos:
public class TesteAluno {
public static void main(String[] args) {
//.. Instanciando a Classe Aluno (já com um nome)
//.. utilizando seu MC
Aluno a1 = new Aluno("José");
a1.setIdade(20);
a1.setAltura(1.73);
a1.setRa("C26H32-8");
a1.setCurso("Ciência da Computação");
a1.setTurma("1A");
}
}
Obrigado !