Primeiras aulas do curso VB.NET com Windows Forms Parte 3: Avançando na Orientação à objetos

VB.NET com Windows Forms Parte 3: Avançando na Orientação à objetos

Conhecendo o problema do cliente - Introdução

Meu nome é Victorino Vila. Nós vamos dar continuidade ao nosso treinamento de visual basic com ênfase em programação orientada a objetos. Essa é a terceira parte do nosso treinamento completo de visual basic.

No curso anterior, nós entendemos como funcionava a programação orientada a objeto. aqui continuaremos nesse tema, porém agora vamos dar ênfase a outras categorias da POO que nós não vimos no curso anterior, como por exemplo a parte de polimorfismo e herança.

Também vamos aqui entender outra estrutura chamada interface. Ela é muito utilizada quando precisamos através de um único evento poder implementar lógicas diferentes em diferentes classes.

Continuaremos ainda no nosso banco Bytebank, só que agora vamos olhar a parte de funcionários do banco. E aí na medida em que os capítulos forem apresentados vamos melhorando nossa implementação do sistema Bytebank e colocando todos esses novos conceitos, a programação orientada ao objeto e é claro, iremos rever muitos dos conceitos que foram vistos na aula anterior.

Preparem-se. Espero que gostem. Um forte abraço.

Conhecendo o problema do cliente - Criando um novo projeto

Vamos continuar nosso treinamento dando ênfase ainda ao nosso banco Bytebank. Só que agora, ao invés de trabalharmos com a modelagem dos correntistas do banco, vamos trabalhar com os funcionários. Para isso, vamos criar um projeto novo. Clico em arquivo, novo, sempre utilizando projetos em visual basic, Windows desktop, aplicativo do Windows.

Tanto no curso passado quanto retrasado nós sempre criamos nossos projetos começando por um número e depois por um traço, porque começamos a criar vários projetos dentro do gerenciador de solução e queríamos olhar esses projetos de forma ordenada e organizada.

No curso anterior, vimos que começar projetos ou soluções com números e com espaços em branco no nome fica um pouco fora da convenção. O visual studio acaba substituindo pelo underscore porque são caracteres inválidos. Por isso, o nome do nosso projeto e da nossa solução vão ser Bytebank. O diretório vai ser o mesmo de sempre. Se você vem seguindo os treinamentos conforme os vídeos, por favor, crie o seu projeto nesse mesmo local, e certifique-se que você esteja usando o .net framework 4.6.1 ou superior.

Vou substituir o nome do formulário, e usando aquela convenção de colocar um label e de alterar o título da janela para associar ao tipo de exemplo que estou trabalhando, vou nas caixas de ferramenta e vou escolher um componente label. Na propriedade nome do objeto, vou colocar lbl_principal. Exibindo o código fonte, vamos chamar o método novo. Após o initializeComponent, vamos colocar me.text igual a principal. Naquele label coloco a mesma coisa.

Salvo e executo. Também vamos nas propriedades e trocar o startPosition para center screen. Temos o nosso projeto pronto para iniciar o trabalho.

Conhecendo o problema do cliente - Modelando um funcionário

Vamos começar a modelagem do nosso banco Bytebank. Como falei antes, nossa ênfase vai ser para modelar funcionários. Se esse for o projeto principal do Bytebank, vou ter no decorrer do projeto várias classes dentro do gerenciador de soluções. Vou ter, por exemplo, a classe funcionários, a classe conta corrente, departamentos, produtos, enfim. Também vou ter vários formulários, alguns tipos de componentes da solução que nem falamos ainda, como bibliotecas. Esse arquivo vai ficar muito grande, uma lista enorme. É interessante organizar os componentes de forma clara para achar o arquivo que quero fazer manutenção do código fonte.

Se eu clicar sobre Bytebank, com o botão direito do mouse, posso ir em adicionar nova pasta. Nessa pasta, vou por exemplo colocar forms. Todos os meus formulários vão ser criados dentro dessa pasta. Basta clicar sobre o principal e arrastar para dentro de forms.

Vou criar quantas pastas eu quiser para organizar meu projeto e para que o código fonte fique mais limpo e mais fácil de achar algum tipo de arquivo que eu queira fazer manutenção durante o desenvolvimento ou manutenção do sistema.

Como vou estar modelando classes e vou ter no final desse sistema Bytebank várias classes, também vou criar outra pasta chamada classes. Aqui dentro, posso até criar outras pastas agrupando em tipos. Como estou modelando funcionários, vou criar outra pasta dentro de classes com o nome funcionários.

Dentro dessa segunda pasta, novamente com o botão direito do mouse, vou adicionar a classe. O nome da classe vai ser funcionário. E tenho minha classe pronta para ser modelada.

Relembrando, uma classe possui propriedades, que são suas características, e possui funções ou métodos. Funções são coisas que faço na classe que me retornam coisas, e métodos fazem algo na classe, mas sem me retornar nenhum valor.

Inicialmente, vamos colocar as propriedades de funcionários dentro do Bytebank. E o funcionário possui diversas características. Nome, nome do pai, nome da mãe. Temos idade, endereço, currículo, histórico dos departamentos que esse funcionário trabalhou, o salário, e assim por diante. Vamos começar só com o nome, CPF e salário. Isso não é nenhum problema para nós, porque na programação orientada ao objeto, se quisermos no decorrer do projeto acrescentar novas propriedades não tem problema, isso não vai afetar o que já foi feito no desenvolvimento do nosso sistema. Ou seja, estender novos métodos, classes ou funções não é problema. Não é necessário começar modelando a classe como ela vai ficar no final.

Vamos colocar essas propriedades já usando o public property, o nome da propriedade, as string. O salário ao invés de string vai ser double, porque é um número decimal.

Uma classe também possui algumas características comportamentais, métodos ou funções. Nosso usuário está especificando o sistema Bytebank para nós e disse que no banco eles são muito benéficos com o funcionário. Gostam de ver o funcionário sempre feliz. Eles sempre dão uma bonificação, todo ano. Essa bonificação vai ser sempre 10% do salário atual do funcionário. Eu gostaria de ganhar 10% do meu salário todo ano.

Então, preciso programar alguma coisa que me dê o valor da bonificação. Então vou colocar uma função, não vai ser um método. É uma função porque função retorna valor. Sempre usando verbos no infinitivo.

A princípio não preciso passar nenhum parâmetro, porque é a bonificação do funcionário que está instanciado em uma variável lá no programa principal, quando ela está chamando a classe. Só que ela é uma função, tem que retornar algo. A bonificação é dinheiro, que é um número decimal. Ou seja, as double.

Ele tem que me retornar 10% do valor do salário. Então, coloco return salário * 0.1. Quando eu chamar no meu programa obter bonificação, ele vai querer saber o salário atual associado ao objeto e aplicar 10%.

Mas por que ao invés de usar uma função para obter o salário eu não usei uma propriedade? Eu poderia ter feito um public readonly property bonificação as double. E depois end property. Ali dentro, eu usaria o get com return salário * 0.1.

Há uma convenção que vamos tentar evitar ao máximo dar esforço computacional para propriedades. Elas devem ser na grande maioria das vezes, sempre que possível, obtidas diretamente da classe. Mas se eu tiver que fazer uma conta, um processo, dentro, para retornar alguma característica da classe, uso isso como método ou função. Por isso a bonificação vai ser uma função, não propriedade.

E aí a bonificação usa de convenções. Esse nome obter é muito especial. Ele é pegar o valor da bonificação da minha classe. Então vou usar get. Temos por enquanto na minha modelagem as três propriedades, nome, CPF e salário, e também uma função, que é get bonificação, que vai ser o valor do salário vezes 10%.

Sobre o curso VB.NET com Windows Forms Parte 3: Avançando na Orientação à objetos

O curso VB.NET com Windows Forms Parte 3: Avançando na Orientação à objetos possui 273 minutos de vídeos, em um total de 57 atividades. Gostou? Conheça nossos outros cursos de .NET em Programação, ou leia nossos artigos de Programação.

Matricule-se e comece a estudar com a gente hoje! Conheça outros tópicos abordados durante o curso:

Aprenda .NET acessando integralmente esse e outros cursos, comece hoje!

  • 1206 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

Premium

  • 1206 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$75
à vista R$900
Matricule-se

Premium Plus

  • 1206 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$100
à vista R$1.200
Matricule-se

Max

  • 1206 cursos

    Cursos de programação, UX, agilidade, data science, transformação digital, mobile, front-end, marketing e infra.

  • Certificado de participação

    Certificado de que assistiu o curso e finalizou as atividades

  • App para Android e iPhone/iPad

    Estude até mesmo offline através das nossas apps Android e iOS em smartphones e tablets

  • Projeto avaliado pelos instrutores

    Projeto práticos para entrega e avaliação dos professores da Alura com certificado de aprovação diferenciado

  • Acesso à Alura Start

    Cursos de introdução a tecnologia através de games, apps e ciência

  • Acesso à Alura Língua

    Reforço online de inglês e espanhol para aprimorar seu conhecimento

12X
R$120
à vista R$1.440
Matricule-se
Procurando planos para empresas?

Acesso completo por 1 ano

Estude 24h/dia onde e quando quiser

Novos cursos todas as semanas