·
Análise e Desenvolvimento de Sistemas ·
Linguagens de Programação
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
10
Vetores e Matrizes em Java - Declaração Operações e Exemplos
Linguagens de Programação
SENAC
20
Arquivos em Java - Manipulação e Acesso
Linguagens de Programação
SENAC
4
Lista de Exercícios sobre Estruturas de Decisão
Linguagens de Programação
SENAC
16
Recursão - Definição, Tipos e Algoritmos
Linguagens de Programação
SENAC
1
Algoritmo JAVA para Criar e Exibir Matriz com Forma Específica
Linguagens de Programação
SENAC
Texto de pré-visualização
Classes Objetos Metodos Classe Abstrata Nocoes de Orientacao a Objetos Prof Dr Marcus Galia Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Sumario 1 Classes 2 Objetos 3 Metodos 4 Classe Abstrata Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes Classes em Java sao blocos de construcao fundamentais do paradigma de programacao orientada a objetos Elas servem como modelos para a criacao de objetos definindo atributos variaveis e metodos funcoes que descrevem o comportamento e caracterısticas dos objetos que serao instanciados a partir delas Declaracao de classe Para declarar uma classe em Java utilizamos a palavrachave class seguida pelo nome da classe e um par de chaves que delimitam o corpo da classe Exemplo public class MinhaClasse Corpo da classe Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Atributos Sao variaveis que representam os dados que cada objeto da classe pode armazenar Os atributos sao definidos dentro da classe e podem ser de diferentes tipos de dados Exemplo public class Pessoa Atributos String nome int idade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Sao funcoes definidas dentro da classe que especificam o comportamento dos objetos Os metodos podem acessar e manipular os atributos da classe public class Pessoa Atributos String nome int idade Metodo para exibir informacoes da pessoa public void mostrarInformacoes SystemoutprintlnNome nome SystemoutprintlnIdade idade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Construtores Sao metodos especiais utilizados para inicializar objetos Eles sao invocados no momento da criacao de um novo objeto e podem ter parˆametros para receber valores iniciais para os atributos public class Pessoa Atributos String nome int idade Construtor public PessoaString nome int idade thisnome nome thisidade idade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Modificadores de Acesso Sao palavraschave que controlam a visibilidade dos atributos e metodos dentro e fora da classe Os principais modificadores sao public private protected e o padrao sem especificador que e o acesso somente dentro do pacote public usado em todo o codigo private usado no encapsulamento protected usado na heranca Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo public class Pessoa Atributos privados private String nome private int idade Metodo publico para acessar o atributo nome public String getNome return nome Metodo publico para modificar o atributo idade public void setIdadeint novaIdade idade novaIdade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Instanciacao de objetos Para criar um objeto a partir de uma classe utilizamos o operador new seguido do nome da classe e opcionalmente parˆametros para o construtor se houver Exemplo public class Main public static void mainString args Criando objetos da classe Pessoa Pessoa pessoa1 new PessoaJoao 30 Pessoa pessoa2 new PessoaMaria 25 Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Tipos de Classes Os tipos de classes sao Classes de Domınio Classes Utilitarias Classes de Servico Classes de Entidade Classes de Controle Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes de Domınio Essas classes representam entidades do mundo real e geralmente contˆem dados e comportamentos relacionados a essas entidades Elas sao frequentemente usadas para modelar o domınio de um problema em um sistema de software Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo public class Carro private String marca private String modelo private int ano public CarroString marca String modelo int ano thismarca marca thismodelo modelo thisano ano public void exibirInformacoes SystemoutprintlnMarca marca SystemoutprintlnModelo modelo SystemoutprintlnAno ano Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes Utilitarias Essas classes contˆem metodos utilitarios que realizam funcoes genericas e podem ser reutilizadas em diferentes partes de um programa Elas geralmente tˆem metodos estaticos e nao possuem estado Exemplo public class Matematica public static int somarint a int b return a b public static int multiplicarint a int b return a b Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes de Servico Essas classes encapsulam a logica de negocios e fornecem servicos especıficos para outras partes do sistema Elas sao responsaveis por coordenar a interacao entre objetos e podem delegar tarefas a outras classes Exemplo public class ServicoEmail public void enviarEmailString destinatario String assunto String corpo Logica para enviar o email public void agendarEnvioEmailString destinatario String assunto String corpo LocalDateTime dataEnvio Logica para agendar o envio do email Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes de Entidade Essas classes representam objetos de dados que sao armazenados e recuperados de um banco de dados ou usados para transferˆencia de dados entre diferentes partes do sistema Elas geralmente correspondem a tabelas de um banco de dados relacional Exemplo public class Usuario private long id private String nome private String email Getters e Setters Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes de Controle Essas classes coordenam a interacao entre o usuario e o sistema capturando eventos de entrada do usuario e acionando acoes correspondentes Elas geralmente contˆem logica relacionada a interface do usuario Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo public class ControladorUsuario private ServicoUsuario servicoUsuario public ControladorUsuarioServicoUsuario servicoUsuario thisservicoUsuario servicoUsuario public void cadastrarNovoUsuarioString nome String email String senha Logica para cadastrar um novo usuario public void autenticarUsuarioString email String senha Logica para autenticar um usuario Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Comando this O comando this em Java e uma referˆencia que faz referˆencia ao proprio objeto no qual o codigo esta sendo executado Ele e usado para diferenciar entre variaveis de instˆancia e variaveis locais bem como para chamar construtores dentro de outros construtores da mesma classe Listamos algumas utilizacoes Referˆencia a Variaveis de Instˆancia Chamada de Construtores Retorno de Instˆancia Atual Passagem de Referˆencia Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Referˆencia a Variaveis de Instˆancia O this e usado para se referir aos membros de dados variaveis de instˆancia de um objeto Isso e util quando uma variavel local tem o mesmo nome que uma variavel de instˆancia Exemplo public class Pessoa private String nome public void setNomeString nome Utilizando o this para distinguir a variavel de instˆancia nome da variavel local nome thisnome nome Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Chamada de Construtores O this pode ser usado para chamar um construtor dentro de outro construtor na mesma classe Isso e util para evitar a duplicacao de codigo quando ha multiplos construtores em uma classe Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo public class Carro private String marca private String modelo Construtor padrao public Carro thisSem Marca Sem Modelo Construtor personalizado public CarroString marca String modelo thismarca marca thismodelo modelo Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Retorno de Instˆancia Atual O this pode ser usado para retornar a instˆancia atual de um objeto a partir de um metodo Isso e util quando queremos retornar o proprio objeto para possibilitar a chamada encadeada de metodos Exemplo public class ContaBancaria private double saldo public ContaBancaria depositardouble valor thissaldo valor return this Retorna a instˆancia atual para chamada encadeada de metodos Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Passagem de Referˆencia O this pode ser usado para passar uma referˆencia do proprio objeto como argumento para outros metodos Exemplo public class Pessoa private String nome public void apresentar saudacaothis Passa a referˆencia do proprio objeto como argumento private void saudacaoPessoa pessoa SystemoutprintlnOla meu nome e pessoanome Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos Na programacao orientada a objetos POO um objeto e uma instˆancia de uma classe Uma classe e um modelo ou um molde para criar objetos Um objeto possui caracterısticas atributos e comportamentos metodos definidos pela classe da qual e uma instˆancia Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Construtores Em Java um construtor e um tipo especial de metodo que e chamado automaticamente quando um objeto de uma classe e criado Eles sao usados para inicializar os objetos configurando valores iniciais para seus atributos ou executando outras operacoes necessarias antes que o objeto seja usado Caracterısticas dos Construtores Nome Igual ao da Classe Um construtor tem o mesmo nome que a classe em que esta definido Nao Possui Tipo de Retorno Um construtor nao tem um tipo de retorno explıcito Pode Aceitar Parˆametros Um construtor pode aceitar parˆametros que sao passados durante a criacao do objeto Pode Ser Sobrecarregado Uma classe pode ter varios construtores com assinaturas diferentes o que e conhecido como sobrecarga de construtores Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo1 public class Carro private String marca private String modelo private int ano Construtor padrao public Carro thismarca Sem Marca thismodelo Sem Modelo thisano 0 Metodos getter e setter Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo2 public class Carro private String marca private String modelo private int ano Construtor personalizado public CarroString marca String modelo int ano thismarca marca thismodelo modelo thisano ano Metodos getter e setter Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Uso de Construtores Criacao de Objetos Os construtores sao invocados usando a palavrachave new para criar objetos da classe Inicializacao de Atributos Os construtores sao usados para inicializar os atributos de um objeto com valores especıficos Sobrecarga de Construtores A sobrecarga de construtores permite que uma classe tenha varios construtores com assinaturas diferentes oferecendo flexibilidade na criacao de objetos com diferentes configuracoes Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Tipos de Objetos Objetos de Domınio Objetos Utilitarios Objetos de Servico Objetos de Transferˆencia de Dados Objetos de Entidade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Domınio Estes objetos representam entidades do mundo real e sao frequentemente utilizados para modelar o domınio de um problema em um sistema de software Exemplo public class Produto private String nome private double preco public ProdutoString nome double preco thisnome nome thispreco preco Metodos getter e setter Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos Utilitarios Estes objetos fornecem metodos utilitarios para realizar operacoes genericas como manipulacao de strings operacoes matematicas etc Exemplo public class StringUtils public static boolean isNullOrEmptyString str return str null strisEmpty Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Servico Estes objetos encapsulam a logica de negocios e fornecem servicos especıficos para outras partes do sistema Exemplo public class ServicoEmail public void enviarEmailString destinatario String assunto String corpo Logica para enviar o email Outros metodos relacionados ao servico de email Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Transferˆencia de Dados DTO Estes objetos sao utilizados para transferir dados entre diferentes partes do sistema geralmente correspondendo a registros de banco de dados Exemplo public class UsuarioDTO private String nome private String email Getters e setters Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Entidade Estes objetos representam dados armazenados em um banco de dados relacional e sao mapeados para tabelas no banco de dados Exemplo Entity public class Usuario Id GeneratedValuestrategy GenerationTypeIDENTITY private Long id Columnnullable false private String nome Columnnullable false private String email Getters e setters Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Controle Estes objetos coordenam a interacao entre o usuario e o sistema capturando eventos de entrada do usuario e acionando acoes correspondentes Exemplo public class ControladorUsuario private ServicoUsuario servicoUsuario public ControladorUsuarioServicoUsuario servicoUsuario thisservicoUsuario servicoUsuario public void cadastrarNovoUsuarioString nome String email Logica para cadastrar um novo usuario Outros metodos de controle de usuario Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Na programacao orientada a objetos POO os metodos sao blocos de codigo que representam comportamentos ou acoes que um objeto pode realizar Eles encapsulam a logica de processamento e permitem que os objetos interajam uns com os outros e com o mundo externo Nome Identifica o metodo e o diferencia de outros metodos na classe Parˆametros Sao valores que podem ser passados para o metodo quando ele e invocado Os parˆametros sao opcionais Tipo de Retorno Define o tipo de dado que o metodo retorna apos a sua execucao Pode ser um tipo primitivo um objeto ou void sem retorno Corpo Contem as instrucoes que definem o comportamento do metodo Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata public class Calculadora Metodo para somar dois numeros inteiros public int somarint a int b return a b Metodo para calcular a media de uma lista de numeros public double calcularMediaint numeros int soma 0 for int numero numeros soma numero return double soma numeroslength Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Os tipos de metodos sao Metodos de Instˆancia Metodos Estaticos Metodos de Construtor Metodos de Sobrecarga Overloading Metodos de Substituicao Override Metodos Final Metodos Abstratos Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos de Instˆancia Estes sao os metodos que pertencem a uma instˆancia especıfica de uma classe e operam nos dados dessa instˆancia Exemplo public class Carro private String modelo private int velocidade public void acelerarint incremento velocidade incremento public void exibirVelocidade SystemoutprintlnVelocidade velocidade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Estaticos Estes sao metodos que pertencem a classe em vez de instˆancias individuais Eles podem ser chamados sem a necessidade de criar um objeto da classe Exemplo public class Matematica public static int somarint a int b return a b Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos de Construtor Estes sao metodos especiais usados para inicializar objetos de uma classe Eles tˆem o mesmo nome da classe e nao tˆem tipo de retorno explıcito Exemplo public class Carro private String modelo private int ano public CarroString modelo int ano thismodelo modelo thisano ano Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos de Sobrecarga Overloading Estes sao multiplos metodos com o mesmo nome em uma classe mas com diferentes listas de parˆametros Exemplo public class Calculadora public int somarint a int b return a b public double somardouble a double b return a b Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos de Substituicao Override Estes sao metodos que substituem a implementacao de um metodo em uma classe pai pela implementacao em uma classe filha Eles sao usados em heranca Exemplo public class Animal public void fazerSom SystemoutprintlnO animal faz algum som public class Cachorro extends Animal Override public void fazerSom SystemoutprintlnO cachorro late Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Final Estes sao metodos que nao podem ser sobrescritos em classes filhas Exemplo public class Pessoa public final void exibirNome SystemoutprintlnNome Pessoa public class Estudante extends Pessoa Nao e possıvel sobrescrever o metodo exibirNome aqui Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Abstratos Estes sao metodos declarados sem implementacao em uma classe abstrata e devem ser implementados em subclasses concretas Exemplo public abstract class Animal public abstract void fazerSom public class Cachorro extends Animal Override public void fazerSom SystemoutprintlnO cachorro late Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classe Abstrata Uma classe abstrata em Java e uma classe que nao pode ser instanciada diretamente ou seja nao e possıvel criar objetos dessa classe Ela e projetada para ser uma classe base para outras classes que estendem suas funcionalidades Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Caracterısticas das Classes Abstratas Nao Pode ser Instanciada Uma classe abstrata nao pode ser instanciada diretamente usando o operador new Pode Conter Metodos Abstratos Uma classe abstrata pode conter metodos abstratos que sao metodos sem implementacao As subclasses devem fornecer a implementacao para esses metodos Pode Conter Metodos Concretos Alem de metodos abstratos uma classe abstrata pode conter metodos concretos com implementacao Pode Conter Atributos e Construtores Assim como qualquer outra classe uma classe abstrata pode conter atributos e construtores Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo Definicao da classe abstrata Animal public abstract class Animal Atributos protected String nome protected int idade Construtor public AnimalString nome int idade thisnome nome thisidade idade Metodo abstrato public abstract void fazerSom Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodo concreto public void dormir Systemoutprintlnnome esta dormindo Subclasse concreta de Animal public class Cachorro extends Animal Construtor public CachorroString nome int idade supernome idade Implementacao do metodo abstrato fazerSom Override public void fazerSom Systemoutprintlnnome faz au au Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata public class Main public static void mainString args Animal animal new CachorroRex 5 animalfazerSom Saıda Rex faz au au animaldormir Saıda Rex esta dormindo Prof Dr Marcus Galia Nocoes de Orientacao a Objetos
Envie sua pergunta para a IA e receba a resposta na hora
Recomendado para você
10
Vetores e Matrizes em Java - Declaração Operações e Exemplos
Linguagens de Programação
SENAC
20
Arquivos em Java - Manipulação e Acesso
Linguagens de Programação
SENAC
4
Lista de Exercícios sobre Estruturas de Decisão
Linguagens de Programação
SENAC
16
Recursão - Definição, Tipos e Algoritmos
Linguagens de Programação
SENAC
1
Algoritmo JAVA para Criar e Exibir Matriz com Forma Específica
Linguagens de Programação
SENAC
Texto de pré-visualização
Classes Objetos Metodos Classe Abstrata Nocoes de Orientacao a Objetos Prof Dr Marcus Galia Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Sumario 1 Classes 2 Objetos 3 Metodos 4 Classe Abstrata Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes Classes em Java sao blocos de construcao fundamentais do paradigma de programacao orientada a objetos Elas servem como modelos para a criacao de objetos definindo atributos variaveis e metodos funcoes que descrevem o comportamento e caracterısticas dos objetos que serao instanciados a partir delas Declaracao de classe Para declarar uma classe em Java utilizamos a palavrachave class seguida pelo nome da classe e um par de chaves que delimitam o corpo da classe Exemplo public class MinhaClasse Corpo da classe Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Atributos Sao variaveis que representam os dados que cada objeto da classe pode armazenar Os atributos sao definidos dentro da classe e podem ser de diferentes tipos de dados Exemplo public class Pessoa Atributos String nome int idade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Sao funcoes definidas dentro da classe que especificam o comportamento dos objetos Os metodos podem acessar e manipular os atributos da classe public class Pessoa Atributos String nome int idade Metodo para exibir informacoes da pessoa public void mostrarInformacoes SystemoutprintlnNome nome SystemoutprintlnIdade idade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Construtores Sao metodos especiais utilizados para inicializar objetos Eles sao invocados no momento da criacao de um novo objeto e podem ter parˆametros para receber valores iniciais para os atributos public class Pessoa Atributos String nome int idade Construtor public PessoaString nome int idade thisnome nome thisidade idade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Modificadores de Acesso Sao palavraschave que controlam a visibilidade dos atributos e metodos dentro e fora da classe Os principais modificadores sao public private protected e o padrao sem especificador que e o acesso somente dentro do pacote public usado em todo o codigo private usado no encapsulamento protected usado na heranca Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo public class Pessoa Atributos privados private String nome private int idade Metodo publico para acessar o atributo nome public String getNome return nome Metodo publico para modificar o atributo idade public void setIdadeint novaIdade idade novaIdade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Instanciacao de objetos Para criar um objeto a partir de uma classe utilizamos o operador new seguido do nome da classe e opcionalmente parˆametros para o construtor se houver Exemplo public class Main public static void mainString args Criando objetos da classe Pessoa Pessoa pessoa1 new PessoaJoao 30 Pessoa pessoa2 new PessoaMaria 25 Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Tipos de Classes Os tipos de classes sao Classes de Domınio Classes Utilitarias Classes de Servico Classes de Entidade Classes de Controle Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes de Domınio Essas classes representam entidades do mundo real e geralmente contˆem dados e comportamentos relacionados a essas entidades Elas sao frequentemente usadas para modelar o domınio de um problema em um sistema de software Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo public class Carro private String marca private String modelo private int ano public CarroString marca String modelo int ano thismarca marca thismodelo modelo thisano ano public void exibirInformacoes SystemoutprintlnMarca marca SystemoutprintlnModelo modelo SystemoutprintlnAno ano Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes Utilitarias Essas classes contˆem metodos utilitarios que realizam funcoes genericas e podem ser reutilizadas em diferentes partes de um programa Elas geralmente tˆem metodos estaticos e nao possuem estado Exemplo public class Matematica public static int somarint a int b return a b public static int multiplicarint a int b return a b Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes de Servico Essas classes encapsulam a logica de negocios e fornecem servicos especıficos para outras partes do sistema Elas sao responsaveis por coordenar a interacao entre objetos e podem delegar tarefas a outras classes Exemplo public class ServicoEmail public void enviarEmailString destinatario String assunto String corpo Logica para enviar o email public void agendarEnvioEmailString destinatario String assunto String corpo LocalDateTime dataEnvio Logica para agendar o envio do email Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes de Entidade Essas classes representam objetos de dados que sao armazenados e recuperados de um banco de dados ou usados para transferˆencia de dados entre diferentes partes do sistema Elas geralmente correspondem a tabelas de um banco de dados relacional Exemplo public class Usuario private long id private String nome private String email Getters e Setters Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classes de Controle Essas classes coordenam a interacao entre o usuario e o sistema capturando eventos de entrada do usuario e acionando acoes correspondentes Elas geralmente contˆem logica relacionada a interface do usuario Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo public class ControladorUsuario private ServicoUsuario servicoUsuario public ControladorUsuarioServicoUsuario servicoUsuario thisservicoUsuario servicoUsuario public void cadastrarNovoUsuarioString nome String email String senha Logica para cadastrar um novo usuario public void autenticarUsuarioString email String senha Logica para autenticar um usuario Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Comando this O comando this em Java e uma referˆencia que faz referˆencia ao proprio objeto no qual o codigo esta sendo executado Ele e usado para diferenciar entre variaveis de instˆancia e variaveis locais bem como para chamar construtores dentro de outros construtores da mesma classe Listamos algumas utilizacoes Referˆencia a Variaveis de Instˆancia Chamada de Construtores Retorno de Instˆancia Atual Passagem de Referˆencia Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Referˆencia a Variaveis de Instˆancia O this e usado para se referir aos membros de dados variaveis de instˆancia de um objeto Isso e util quando uma variavel local tem o mesmo nome que uma variavel de instˆancia Exemplo public class Pessoa private String nome public void setNomeString nome Utilizando o this para distinguir a variavel de instˆancia nome da variavel local nome thisnome nome Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Chamada de Construtores O this pode ser usado para chamar um construtor dentro de outro construtor na mesma classe Isso e util para evitar a duplicacao de codigo quando ha multiplos construtores em uma classe Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo public class Carro private String marca private String modelo Construtor padrao public Carro thisSem Marca Sem Modelo Construtor personalizado public CarroString marca String modelo thismarca marca thismodelo modelo Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Retorno de Instˆancia Atual O this pode ser usado para retornar a instˆancia atual de um objeto a partir de um metodo Isso e util quando queremos retornar o proprio objeto para possibilitar a chamada encadeada de metodos Exemplo public class ContaBancaria private double saldo public ContaBancaria depositardouble valor thissaldo valor return this Retorna a instˆancia atual para chamada encadeada de metodos Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Passagem de Referˆencia O this pode ser usado para passar uma referˆencia do proprio objeto como argumento para outros metodos Exemplo public class Pessoa private String nome public void apresentar saudacaothis Passa a referˆencia do proprio objeto como argumento private void saudacaoPessoa pessoa SystemoutprintlnOla meu nome e pessoanome Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos Na programacao orientada a objetos POO um objeto e uma instˆancia de uma classe Uma classe e um modelo ou um molde para criar objetos Um objeto possui caracterısticas atributos e comportamentos metodos definidos pela classe da qual e uma instˆancia Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Construtores Em Java um construtor e um tipo especial de metodo que e chamado automaticamente quando um objeto de uma classe e criado Eles sao usados para inicializar os objetos configurando valores iniciais para seus atributos ou executando outras operacoes necessarias antes que o objeto seja usado Caracterısticas dos Construtores Nome Igual ao da Classe Um construtor tem o mesmo nome que a classe em que esta definido Nao Possui Tipo de Retorno Um construtor nao tem um tipo de retorno explıcito Pode Aceitar Parˆametros Um construtor pode aceitar parˆametros que sao passados durante a criacao do objeto Pode Ser Sobrecarregado Uma classe pode ter varios construtores com assinaturas diferentes o que e conhecido como sobrecarga de construtores Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo1 public class Carro private String marca private String modelo private int ano Construtor padrao public Carro thismarca Sem Marca thismodelo Sem Modelo thisano 0 Metodos getter e setter Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo2 public class Carro private String marca private String modelo private int ano Construtor personalizado public CarroString marca String modelo int ano thismarca marca thismodelo modelo thisano ano Metodos getter e setter Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Uso de Construtores Criacao de Objetos Os construtores sao invocados usando a palavrachave new para criar objetos da classe Inicializacao de Atributos Os construtores sao usados para inicializar os atributos de um objeto com valores especıficos Sobrecarga de Construtores A sobrecarga de construtores permite que uma classe tenha varios construtores com assinaturas diferentes oferecendo flexibilidade na criacao de objetos com diferentes configuracoes Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Tipos de Objetos Objetos de Domınio Objetos Utilitarios Objetos de Servico Objetos de Transferˆencia de Dados Objetos de Entidade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Domınio Estes objetos representam entidades do mundo real e sao frequentemente utilizados para modelar o domınio de um problema em um sistema de software Exemplo public class Produto private String nome private double preco public ProdutoString nome double preco thisnome nome thispreco preco Metodos getter e setter Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos Utilitarios Estes objetos fornecem metodos utilitarios para realizar operacoes genericas como manipulacao de strings operacoes matematicas etc Exemplo public class StringUtils public static boolean isNullOrEmptyString str return str null strisEmpty Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Servico Estes objetos encapsulam a logica de negocios e fornecem servicos especıficos para outras partes do sistema Exemplo public class ServicoEmail public void enviarEmailString destinatario String assunto String corpo Logica para enviar o email Outros metodos relacionados ao servico de email Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Transferˆencia de Dados DTO Estes objetos sao utilizados para transferir dados entre diferentes partes do sistema geralmente correspondendo a registros de banco de dados Exemplo public class UsuarioDTO private String nome private String email Getters e setters Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Entidade Estes objetos representam dados armazenados em um banco de dados relacional e sao mapeados para tabelas no banco de dados Exemplo Entity public class Usuario Id GeneratedValuestrategy GenerationTypeIDENTITY private Long id Columnnullable false private String nome Columnnullable false private String email Getters e setters Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Objetos de Controle Estes objetos coordenam a interacao entre o usuario e o sistema capturando eventos de entrada do usuario e acionando acoes correspondentes Exemplo public class ControladorUsuario private ServicoUsuario servicoUsuario public ControladorUsuarioServicoUsuario servicoUsuario thisservicoUsuario servicoUsuario public void cadastrarNovoUsuarioString nome String email Logica para cadastrar um novo usuario Outros metodos de controle de usuario Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Na programacao orientada a objetos POO os metodos sao blocos de codigo que representam comportamentos ou acoes que um objeto pode realizar Eles encapsulam a logica de processamento e permitem que os objetos interajam uns com os outros e com o mundo externo Nome Identifica o metodo e o diferencia de outros metodos na classe Parˆametros Sao valores que podem ser passados para o metodo quando ele e invocado Os parˆametros sao opcionais Tipo de Retorno Define o tipo de dado que o metodo retorna apos a sua execucao Pode ser um tipo primitivo um objeto ou void sem retorno Corpo Contem as instrucoes que definem o comportamento do metodo Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata public class Calculadora Metodo para somar dois numeros inteiros public int somarint a int b return a b Metodo para calcular a media de uma lista de numeros public double calcularMediaint numeros int soma 0 for int numero numeros soma numero return double soma numeroslength Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Os tipos de metodos sao Metodos de Instˆancia Metodos Estaticos Metodos de Construtor Metodos de Sobrecarga Overloading Metodos de Substituicao Override Metodos Final Metodos Abstratos Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos de Instˆancia Estes sao os metodos que pertencem a uma instˆancia especıfica de uma classe e operam nos dados dessa instˆancia Exemplo public class Carro private String modelo private int velocidade public void acelerarint incremento velocidade incremento public void exibirVelocidade SystemoutprintlnVelocidade velocidade Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Estaticos Estes sao metodos que pertencem a classe em vez de instˆancias individuais Eles podem ser chamados sem a necessidade de criar um objeto da classe Exemplo public class Matematica public static int somarint a int b return a b Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos de Construtor Estes sao metodos especiais usados para inicializar objetos de uma classe Eles tˆem o mesmo nome da classe e nao tˆem tipo de retorno explıcito Exemplo public class Carro private String modelo private int ano public CarroString modelo int ano thismodelo modelo thisano ano Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos de Sobrecarga Overloading Estes sao multiplos metodos com o mesmo nome em uma classe mas com diferentes listas de parˆametros Exemplo public class Calculadora public int somarint a int b return a b public double somardouble a double b return a b Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos de Substituicao Override Estes sao metodos que substituem a implementacao de um metodo em uma classe pai pela implementacao em uma classe filha Eles sao usados em heranca Exemplo public class Animal public void fazerSom SystemoutprintlnO animal faz algum som public class Cachorro extends Animal Override public void fazerSom SystemoutprintlnO cachorro late Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Final Estes sao metodos que nao podem ser sobrescritos em classes filhas Exemplo public class Pessoa public final void exibirNome SystemoutprintlnNome Pessoa public class Estudante extends Pessoa Nao e possıvel sobrescrever o metodo exibirNome aqui Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodos Abstratos Estes sao metodos declarados sem implementacao em uma classe abstrata e devem ser implementados em subclasses concretas Exemplo public abstract class Animal public abstract void fazerSom public class Cachorro extends Animal Override public void fazerSom SystemoutprintlnO cachorro late Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Classe Abstrata Uma classe abstrata em Java e uma classe que nao pode ser instanciada diretamente ou seja nao e possıvel criar objetos dessa classe Ela e projetada para ser uma classe base para outras classes que estendem suas funcionalidades Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Caracterısticas das Classes Abstratas Nao Pode ser Instanciada Uma classe abstrata nao pode ser instanciada diretamente usando o operador new Pode Conter Metodos Abstratos Uma classe abstrata pode conter metodos abstratos que sao metodos sem implementacao As subclasses devem fornecer a implementacao para esses metodos Pode Conter Metodos Concretos Alem de metodos abstratos uma classe abstrata pode conter metodos concretos com implementacao Pode Conter Atributos e Construtores Assim como qualquer outra classe uma classe abstrata pode conter atributos e construtores Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Exemplo Definicao da classe abstrata Animal public abstract class Animal Atributos protected String nome protected int idade Construtor public AnimalString nome int idade thisnome nome thisidade idade Metodo abstrato public abstract void fazerSom Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata Metodo concreto public void dormir Systemoutprintlnnome esta dormindo Subclasse concreta de Animal public class Cachorro extends Animal Construtor public CachorroString nome int idade supernome idade Implementacao do metodo abstrato fazerSom Override public void fazerSom Systemoutprintlnnome faz au au Prof Dr Marcus Galia Nocoes de Orientacao a Objetos Classes Objetos Metodos Classe Abstrata public class Main public static void mainString args Animal animal new CachorroRex 5 animalfazerSom Saıda Rex faz au au animaldormir Saıda Rex esta dormindo Prof Dr Marcus Galia Nocoes de Orientacao a Objetos