Curso POO Teoria #05a - Exemplo Prático com Objetos

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 abrirConta requer 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.

Video description

Nessa aula de POO, vamos fazer um exemplo prático com Programação Orientada a Objetos, usando tudo aquilo que aprendemos até aqui. Gostou da aula? Então torne-se um Gafanhoto APOIADOR do CursoemVídeo acessando o site apoie.me/cursoemvideo Nós do CursoemVideo sempre recomendamos assistir a aula completa, mas se quiser aprender diretamente uma parte específica, clique nos marcadores de tempo a seguir: 0:19 - Qual é o assunto da aula? Aula do Curso de Programação Orientada a Objetos POO criado pelo professor Gustavo Guanabara para o portal CursoemVideo.com. Curso em Vídeo Seja um apoiador: http://apoie.me/cursoemvideo Site: http://www.cursoemvideo.com YouTube: http://www.youtube.com/cursoemvideo Facebook: http://www.facebook.com/cursosemvideo Twitter: http://twitter.com/cursosemvideo Google+: http://plus.google.com/112666558837414979080 Patrocínio HOSTNET: http://www.hostnet.com.br EDUCANDUS: http://www.sistemaeducandus.com.br GAFANHOTOS: http://apoie.me/cursoemvideo Ask Rufus de Audionautix está licenciada sob uma licença Creative Commons Attribution (https://creativecommons.org/licenses/by/4.0/) Artista: http://audionautix.com/