Curso POO Teoria #05a - Exemplo Prático com Objetos
Introdução ao Curso de Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção introdutória, o professor Guanabara dá as boas-vindas aos alunos e introduz o curso de Programação Orientada a Objetos. Ele destaca a importância do estudo teórico e prático nessa área.
Aula 5: Exemplo Prático - Conta Bancária
- O professor Guanabara apresenta um exemplo prático para exercitar os conceitos aprendidos nas aulas anteriores.
- Essa aula de exemplo é um exercício importante para preparar os alunos para a próxima fase do curso.
- O exemplo consiste na implementação de uma conta bancária com diferentes funcionalidades.
- Os personagens Jubileu e Creuza são introduzidos como titulares de contas bancárias.
- É explicado que uma classe conta bancária deve ter atributos como número da conta, tipo de conta, nome do titular e saldo.
- Métodos também são mencionados como parte da classe conta bancária, como abrir uma conta.
Implementando a Classe Conta Bancária
Visão Geral da Seção: Nesta seção, o professor Guanabara explica como implementar a classe Conta Bancária em PHP ou Java.
Definindo os Atributos da Classe
- Os atributos da classe Conta Bancária são definidos como número da conta, tipo de conta, nome do titular e saldo.
- O professor Guanabara destaca a importância de definir o status da conta (aberta ou fechada).
Implementando os Métodos da Classe
- São apresentados os métodos para abrir uma conta bancária, depositar dinheiro na conta e sacar dinheiro da conta.
- O método para fechar a conta bancária também é explicado.
Exemplo Prático em PHP
- O professor Guanabara demonstra a implementação dos métodos em PHP.
- Ele mostra como criar objetos a partir da classe Conta Bancária e realizar operações como depósito e saque.
Exemplo Prático em Java
- O professor Guanabara explica que a implementação em Java segue os mesmos princípios do exemplo em PHP.
- Ele demonstra como criar objetos e realizar operações utilizando a linguagem Java.
Conclusão
Visão Geral da Seção: Nesta seção final, o professor Guanabara reforça a importância de praticar os conceitos aprendidos no exemplo prático. Ele encoraja os alunos a experimentarem diferentes abordagens e linguagens de programação.
Recapitulação dos Conceitos Aprendidos
- Os alunos revisam os conceitos de programação orientada a objetos, como atributos, métodos e classes.
- Eles também relembram a implementação da classe Conta Bancária com seus atributos e métodos.
Prática e Exploração
- O professor Guanabara incentiva os alunos a praticarem o exemplo prático em diferentes linguagens de programação.
- Ele destaca que a prática é essencial para um melhor entendimento dos conceitos de programação orientada a objetos.
Fim do Curso
Visão Geral da Seção: Nesta seção final, o professor Guanabara encerra o curso de Programação Orientada a Objetos. Ele parabeniza os alunos pelo esforço e incentiva-os a continuar estudando e praticando.
Diferença entre atributos e métodos
Visão geral da seção: Nesta seção, o instrutor explica a diferença entre atributos e métodos em uma classe.
Atributos
- Os atributos não possuem parênteses após o nome.
- Exemplos de atributos são número da conta, tipo, dono, saldo e status.
Métodos
- Os métodos possuem parênteses após o nome.
- Exemplos de métodos são abrir conta, fechar conta, depositar e sacar.
Diagrama de classes
Visão geral da seção: O instrutor introduz o conceito de diagrama de classes e mostra um exemplo para a classe "ContaBanco".
- O diagrama de classes representa a estrutura da classe.
- O exemplo apresentado mostra os atributos (número da conta, tipo, dono, saldo e status) e os métodos (abrir conta, fechar conta, depositar e sacar).
Restrições do tipo de conta
Visão geral da seção: Nesta seção, são apresentadas as restrições para o tipo de conta na implementação do exemplo.
- O tipo de conta aceita apenas dois valores: "conta poupança" ou "conta-corrente".
- Na programação do exemplo, utiliza-se "cc" para representar "conta-corrente" e "cp" para representar "conta poupança".
Status da conta ao abrir
Visão geral da seção: Aqui é explicado como o status da conta é alterado ao abrir uma conta.
- Ao abrir a conta, o atributo "status" é definido como verdadeiro.
- Se a conta não está aberta, o status é falso. Se a conta está aberta, o status é verdadeiro.
Valor inicial para cada tipo de conta
Visão geral da seção: O instrutor explica os valores iniciais para cada tipo de conta no exemplo.
- Ao abrir uma conta corrente, adiciona-se automaticamente R$ 50 à conta.
- Ao abrir uma conta poupança, adiciona-se automaticamente R$ 150 à conta.
Restrições para fechar uma conta
Visão geral da seção: Nesta seção, são apresentadas as restrições para fechar uma conta no exemplo.
- Para fechar a conta, não pode haver dinheiro dentro dela.
- Também não pode haver débito na conta ao tentar fechá-la.
Restrições para depositar em uma conta
Visão geral da seção: Aqui são explicadas as restrições para fazer um depósito em uma conta no exemplo.
- Apenas contas abertas podem receber depósitos (status verdadeiro).
- É necessário ter saldo disponível na conta para realizar um depósito. Não é possível depositar mais do que o saldo disponível.
Cobrança mensalidade
Visão geral da seção: O instrutor explica como funciona a cobrança mensalidade no exemplo.
- A mensalidade do banco é cobrada mensalmente.
- Não há gatilho automático para cobrar a mensalidade. O método "pagar mensalidade" deve ser chamado manualmente.
- Clientes com conta corrente pagam R$ 12 de mensalidade, enquanto clientes com conta poupança pagam R$ 20.
Visibilidade dos atributos e métodos
Visão geral da seção: Nesta seção, são definidas as visibilidades dos atributos e métodos no exemplo.
- Os atributos "número da conta" e "tipo" são públicos.
- Os atributos "dono", "saldo" e "status" são privados.
Visibilidade dos métodos
Visão geral da seção: Aqui são definidas as visibilidades dos métodos no exemplo.
- Todos os métodos do exemplo são considerados públicos.
- Métodos especiais não foram abordados neste exemplo.
Métodos getters e setters
Visão geral da seção: O instrutor menciona a existência de getters e setters para cada atributo, embora não tenha detalhado todos eles no vídeo.
- Cada atributo possui um getter (exemplo: getNúmeroConta()) e um setter (exemplo: setNúmeroConta()).
- Essa estrutura é aplicada a todos os outros atributos não mencionados explicitamente no vídeo.
Método construtor
Visão geral da seção: Aqui é explicado o método construtor para a classe ContaBanco no exemplo.
- Ao criar uma nova conta, o status é definido como falso (conta fechada) e o saldo é definido como zero.
Conclusão e recomendação
Visão geral da seção: O instrutor conclui a explicação e faz uma recomendação para os espectadores.
- É importante praticar a implementação do exemplo por conta própria.
- Recomenda-se anotar as características apresentadas no vídeo em um papel para melhor compreensão.
- A prática é fundamental para aprender programação orientada a objetos.
A importância da Hostnet como empresa de hospedagem
Visão geral da seção: Nesta parte do vídeo, o palestrante destaca a importância da Hostnet como uma empresa de hospedagem confiável para colocar seu site no ar.
Acreditar no curso em vídeo desde o início
- A Hostnet é uma empresa que acreditou no curso em vídeo desde o início.
- Recomenda-se utilizar a Hostnet para hospedar seu site após aprender a criar um site no curso de PHP.
Segurança e backup dos dados
- A Hostnet oferece servidores específicos para manter os dados na nuvem de forma segura.
- Os sistemas de backup são realizados constantemente e é possível agendar ou solicitar backups.
- Em caso de problemas com o site, é possível solicitar a recuperação dos dados.
Eficiência do sistema de nuvem da Hostnet
- O sistema de nuvem da Hostnet é eficiente, pois replica os dados em vários servidores ao redor do mundo.
- Isso garante que os dados estejam mais próximos dos clientes, melhorando o desempenho do site.
Sistema Educandus de Ensino como patrocinador
Visão geral da seção: Nesta parte do vídeo, o palestrante menciona o Sistema Educandus de Ensino como um patrocinador e destaca as oportunidades para jovens interessados em seguir carreira militar.
Oportunidades para jovens interessados em carreira militar
- Jovens entre 17 e 24 anos que desejam seguir carreira militar podem ingressar na Marinha ou Aeronáutica como cabo ou sargento técnico.
- As tarefas envolvem programação, conserto de computadores e trabalho com sistemas da Marinha ou Aeronáutica.
- O soldo (salário) é um pouco acima do mercado e há estabilidade na carreira militar.
Apoio do Sistema Educandus de Ensino
- O Sistema Educandus de Ensino apoia o curso em vídeo e oferece a oportunidade de estudar presencialmente com o palestrante.
- Os alunos têm aulas sobre sistemas operacionais, hardware, redes, algoritmos, programação orientada a objetos, Java, PHP e criação de sistemas e banco de dados.
Você como patrocinador do Curso em Vídeo
Visão geral da seção: Nesta parte do vídeo, o palestrante destaca a importância dos espectadores se tornarem patrocinadores do Curso em Vídeo para ajudar no desenvolvimento contínuo do projeto.
Seja um patrocinador colaborador
- Os espectadores podem se tornar patrocinadores colaborando financeiramente com o projeto.
- Cada pequena contribuição ajuda a melhorar equipamentos, iluminação e acessibilidade para alunos com deficiência auditiva.
- O apoio dos patrocinadores permite lançar aulas de qualidade regularmente.
Investimento necessário para melhorias no Curso em Vídeo
Visão geral da seção: Nesta parte final do vídeo, o palestrante ressalta que cada novo curso requer investimentos para melhorias no equipamento e estrutura do Curso em Vídeo.
Melhorias contínuas no Curso em Vídeo
- Cada novo curso traz melhorias no equipamento, iluminação e sistema de aprendizado.
- O objetivo é atender aos alunos com deficiência auditiva e oferecer um ambiente de aprendizado cada vez mais completo.
- As contribuições dos patrocinadores são essenciais para custear essas melhorias.
Revelando as Faixas de Contribuição e Recompensas
Visão Geral da Seção: Nesta parte do vídeo, o palestrante fala sobre as faixas de contribuição e recompensas disponíveis para os apoiadores do curso em vídeo.
Endereço para se tornar um apoiador
- O palestrante menciona que é possível se tornar um apoiador do curso em vídeo.
- Ele incentiva os espectadores a verificar quais são as faixas de contribuição e recompensas disponíveis.
- É importante avaliar qual delas vale a pena antes de se tornar um apoiador.
A importância de aprender programação orientada a objetos
- O palestrante ressalta que não adianta apenas copiar o código ou esperar fazer sem realmente aprender.
- Ele destaca que é necessário aprender a programar orientado a objetos, pois é um novo paradigma diferente do que estamos acostumados.
- No início, pode ser difícil e desafiador, mas é importante persistir e praticar.
Dificuldades iniciais ao aprender programação orientada a objetos
- O palestrante reconhece que no início pode ser sofrido e difícil compreender os conceitos da programação orientada a objetos.
- Caso esteja enfrentando dificuldades, ele sugere pausar o vídeo e realizar os exercícios propostos antes de continuar assistindo.
Criando a classe "ContaBanco"
- O palestrante começa criando uma classe chamada "ContaBanco".
- Ele define os atributos da classe, como número da conta (inteiro), tipo (conta corrente ou conta poupança), nome do dono (caractere), saldo (número real) e status (se a conta está aberta ou não).
- Os atributos têm diferentes visibilidades, como público, protegido e privado.
Criando os métodos da classe
- O palestrante inicia criando o cabeçalho dos métodos que serão implementados.
- Ele menciona os seguintes métodos: abrirConta, fecharConta, depositar, sacar e pagarMensalidade.
- Esses métodos serão programados individualmente posteriormente.
Método construtor
- O palestrante destaca a importância do método construtor, que é executado sempre que uma nova classe for instanciada.
- No caso da classe "ContaBanco", o saldo é inicializado como 10 e o status como falso quando uma nova conta é criada.
Métodos getters e setters
- O palestrante explica que será necessário criar os métodos getters e setters para cada um dos atributos da classe.
- Ele começa definindo o método setNumeroDaConta, que recebe um parâmetro chamado "dn" do tipo inteiro.
- Em seguida, ele define o método getNumeroDaConta, que retorna o valor do atributo numeroDaConta.
Implementando Métodos Especiais
Visão Geral da Seção: Nesta parte do vídeo, o palestrante foca na implementação de métodos especiais na classe "ContaBanco".
Método construtor como método especial
- O palestrante destaca a importância do método construtor como um método especial.
- Ele explica que esse método é executado sempre que uma nova classe for instanciada.
- No caso da classe "ContaBanco", o saldo é inicializado como 10 e o status como falso quando uma nova conta é criada.
Implementação dos métodos getters e setters
- O palestrante continua implementando os métodos getters e setters para cada um dos atributos da classe.
- Ele define o método setTipo, que recebe um parâmetro do tipo caractere chamado "t".
- Em seguida, ele define o método getTipo, que retorna o valor do atributo tipo.
Continuação da implementação dos métodos getters e setters
- O palestrante prossegue com a implementação dos métodos getters e setters para os demais atributos da classe.
- Ele destaca a importância de definir corretamente os tipos de dados dos parâmetros recebidos pelos métodos setters.
Métodos Getters e Setters para Atributos Restantes
Visão Geral da Seção: Nesta parte do vídeo, o palestrante finaliza a implementação dos métodos getters e setters para os atributos restantes da classe "ContaBanco".
Implementação do método getNumeroDaConta
- O palestrante define o método getNumeroDaConta como público.
- Esse método não recebe parâmetros e simplesmente retorna o valor do atributo numeroDaConta.
Implementação do método setTipo
- O palestrante define o método setTipo como público.
- Esse método recebe um parâmetro chamado "t" do tipo caractere.
- Ele atribui esse valor ao atributo tipo.
Continuação da implementação dos métodos getters e setters
- O palestrante continua implementando os métodos getters e setters para os demais atributos da classe "ContaBanco".
- Ele destaca a importância de definir corretamente os tipos de dados dos parâmetros recebidos pelos métodos setters.
Configuração de Contas
Visão Geral da Seção: Nesta seção, o palestrante discute a configuração de contas e a criação de métodos específicos para abrir e fechar contas.
Método Abrir Conta
- O método
abrirContaé público e recebe um parâmetro que indica o tipo da conta (conta corrente ou conta poupança).
- É necessário configurar o tipo da conta com base no parâmetro recebido.
- O status da conta é definido como verdadeiro para indicar que a conta está ativa.
- Se o tipo for conta corrente, o saldo é automaticamente definido como R$ 50.
- Se o tipo for conta poupança, o saldo é automaticamente definido como R$ 150.
Método Fechar Conta
- Antes de fechar uma conta, é verificado se o saldo é positivo. Se houver dinheiro na conta, uma mensagem informando que a conta tem dinheiro não permite fechá-la.
Padrões de Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, são abordados os padrões de programação orientada a objetos e como aplicá-los na criação dos métodos.
Padrões nos Métodos
- Os métodos seguem um padrão comum na sua estrutura.
- É possível utilizar parâmetros nos métodos para receber valores específicos.
- A repetição desses padrões facilita a compreensão do código e sua manutenibilidade.
Prática e Aprendizado
Visão Geral da Seção: Nesta seção, o palestrante enfatiza a importância da prática e do aprendizado contínuo na programação orientada a objetos.
Aprendendo por Repetição
- A repetição é fundamental para aprender programação orientada a objetos.
- Não há dificuldade quando se coloca em prática os conceitos aprendidos.
- É recomendado copiar o código apresentado no vídeo para praticar posteriormente.
Adaptação à Linguagem de Programação
Visão Geral da Seção: Nesta seção, é discutida a necessidade de adaptar os conceitos apresentados à linguagem de programação utilizada.
Adaptação dos Métodos
- Os métodos devem ser adaptados à linguagem de programação em que estão sendo implementados.
- É importante compreender como os métodos são aplicados na linguagem escolhida.
Métodos Específicos
Visão Geral da Seção: Nesta seção, são abordados os métodos específicos relacionados à abertura e fechamento de contas.
Método Abrir Conta
- O método
abrirContarequer informações sobre o tipo de conta (conta corrente ou conta poupança).
- São definidos pré-requisitos para abrir uma conta, como ganhar automaticamente um valor inicial dependendo do tipo de conta escolhido.
Configurações no Método Abrir Conta
Visão Geral da Seção: Nesta seção, são apresentadas as configurações necessárias no método abrirConta.
Configuração do Tipo de Conta
- O tipo de conta é configurado com base no parâmetro recebido pelo método.
- É utilizado o valor pré-definido para o tipo de conta escolhido.
Ativação da Conta
- O status da conta é configurado como verdadeiro para indicar que a conta está ativa.
Definição do Saldo Inicial
- Se o tipo for conta corrente, o saldo inicial é definido como R$ 50.
- Se o tipo for conta poupança, o saldo inicial é definido como R$ 150.
Prática na Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, é enfatizada a importância de colocar em prática os conceitos aprendidos na programação orientada a objetos.
Aprendizado por Prática
- Não há mistério ou fórmula mágica na programação orientada a objetos.
- A prática constante é essencial para aprender e dominar os conceitos.
- Recomenda-se copiar e guardar o código apresentado para referência futura.
Método Fechar Conta
Visão Geral da Seção: Nesta seção, são abordados os requisitos para fechar uma conta e como implementar essa funcionalidade.
Verificação do Saldo
- Antes de fechar uma conta, é verificado se o saldo é positivo.
- Caso haja dinheiro na conta, não é possível fechá-la.
Adaptação à Linguagem de Programação
Visão Geral da Seção: Nesta seção, é reforçada a importância de adaptar os conceitos apresentados à linguagem de programação utilizada.
Implementação dos Métodos
- Os métodos devem ser implementados considerando as particularidades da linguagem de programação escolhida.
- É necessário compreender como aplicar os conceitos na prática.
Verificação do Tipo de Conta
Visão Geral da Seção: Nesta seção, são abordadas as verificações necessárias para determinar o tipo de conta ao abrir uma conta.
Verificação do Tipo
- É verificado se o tipo informado é conta corrente ou conta poupança.
- Com base no tipo, são realizadas ações específicas.
Definição do Saldo Inicial
Visão Geral da Seção: Nesta seção, é explicado como definir o saldo inicial com base no tipo de conta escolhido.
Conta Corrente
- Se o tipo for conta corrente, o saldo inicial é configurado como R$ 50.
Conta Poupança
- Se o tipo for conta poupança, o saldo inicial é configurado como R$ 150.
Implementação do Método Abrir Conta
Visão Geral da Seção: Nesta seção, é mostrada a implementação completa do método abrirConta.
Configurações Iniciais
- O tipo da conta é configurado com base no parâmetro recebido.
- O status da conta é configurado como verdadeiro.
Definição do Saldo Inicial
- Se o tipo for conta corrente, o saldo inicial é definido como R$ 50.
- Se o tipo for conta poupança, o saldo inicial é definido como R$ 150.
Método Fechar Conta
Visão Geral da Seção: Nesta seção, são abordados os requisitos para fechar uma
Verificação de saldo e fechamento de conta
Visão geral da seção: Nesta seção, o palestrante discute a verificação do saldo da conta e os erros associados ao fechamento da conta com saldo positivo ou negativo.
Verificação de saldo
- Se o saldo for positivo, a mensagem "Conta tem dinheiro" é exibida.
- Se o saldo for abaixo de zero (negativo), a mensagem "Conta em débito" é exibida.
- É necessário acertar o saldo negativo antes de fechar a conta.
Fechamento de conta
- Se o saldo for positivo, ocorre um erro informando que a conta tem dinheiro e não pode ser fechada.
- Se o saldo for negativo, ocorre um erro informando que a conta está em débito e precisa ser acertada antes do fechamento.
- Caso contrário, a conta pode ser fechada.
Depósito na conta
Visão geral da seção: Nesta seção, é abordado como realizar um depósito na conta bancária verificando primeiro se ela está aberta.
Verificação de status da conta
- Antes de fazer um depósito, é necessário verificar se a conta está aberta.
- Se o status da conta for verdadeiro (aberta), é possível prosseguir com o depósito.
Realização do depósito
- O valor do depósito é adicionado ao saldo atual utilizando as operações matemáticas adequadas.
- Opção 1:
saldo = saldo + valor
- Opção 2: Utilizar getters e setters para modificar o saldo.
Verificação de conta fechada
- Se a conta estiver fechada (status falso), ocorre um erro informando que é impossível realizar o depósito.
Saque na conta
Visão geral da seção: Nesta seção, é abordado como realizar um saque na conta bancária verificando se ela está ativa e possui saldo suficiente.
Verificação de status e saldo da conta
- Antes de fazer um saque, é necessário verificar se a conta está ativa.
- Além disso, é preciso verificar se o saldo é maior ou igual ao valor do saque.
Realização do débito
- Se as verificações anteriores forem verdadeiras, o valor do saque é subtraído do saldo atual utilizando as operações matemáticas adequadas.
- Opção 1:
saldo = saldo - valor
- Opção 2: Utilizar getters e setters para modificar o saldo.
Verificação de saldo insuficiente
- Caso não haja saldo suficiente na conta, ocorre um erro informando que o saque não pode ser realizado devido ao saldo insuficiente.
Pagamento de mensalidade
Visão geral da seção: Nesta seção, é abordado como realizar o pagamento da mensalidade da conta bancária com valores diferentes para contas correntes e contas poupança.
Definição do valor da mensalidade
- Para contas correntes, a mensalidade é definida como R$12 por mês.
- Para contas poupança, a mensalidade é definida como R$20 por mês.
Realização do pagamento
- É necessário verificar o tipo de conta e realizar o pagamento da mensalidade correspondente.
- O valor da mensalidade não é adicionado ao saldo, apenas é realizado o registro do pagamento.
Essas são as principais informações abordadas no vídeo. Recomenda-se assistir ao vídeo completo para obter todos os detalhes e contexto adequado.
Programação Orientada a Objetos
Visão Geral da Seção: Nesta seção, o palestrante discute programação orientada a objetos e apresenta um exemplo de código.
Exemplo de Código
- Se o tipo de conta for conta-poupança, o valor é R$20.
- Se o título for "cc" ou "acc", o valor é 12.
- Se o título for "cp" e o saldo for maior que zero, então o saldo recebe saldo - v.
- Caso contrário, se a conta não estiver aberta, exibe "impossível pagar".
Escolha do Curso
Visão Geral da Seção: O palestrante fala sobre a escolha entre fazer um curso em PHP ou Java.
Escolha do Curso
- Os espectadores podem escolher entre fazer um curso em PHP ou Java clicando nos links fornecidos.
- Não há interatividade no vídeo para dispositivos móveis.
Conclusão
O resumo das notas inclui uma discussão sobre programação orientada a objetos e uma decisão sobre qual curso fazer.