Baixe o app para aproveitar ainda mais
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 !
Compartilhar