Linguagem de programação comercial

Categories: Trabalhos

0

Faculdade Anhanguera de Anápolis Graduação Tecnológica em Análise e Desenvolvimento de Sistemas Linguagem de Programação Comercial Aula 04 – Revisão de Fundamentos de Anállse Orientada a Objetos: Conceitos de objetos, classes, atributos e métodos. Referência: http://msdn. microsoft. com 1. A importância dos objetos No mundo do . NET, objetos são fundamentais e o desenvolvedor deve isto mesmo, tudo, é oril (integer) são objetos. to view seguir.

Apesar de nã (ponto) após o int ples motivo: tudo, strings ou inteiros pilar o código a ense ao digitar r possível ver uma ista de métodos dispon veis, o c digo pe eitamente aceitável em . NET, e irá compilar e executar sem problemas. // Ern string teste 3. ToString(); Baseando-se nestes fatos, pode-se então dizer que objetos são realmente importantes, e o desenvolvedor precisa realmente entendê-los para ter fluência na leitura e escrita de código em . NET. 2. Qual a vantagem?

Outra pergunta frequente é sobre a vantagem em se programar utilizando objetos. Qualquer pessoa ou empresa que vive da criação de software sem dúvidas não fica contente ao ver-se escrevendo código similar infinitamente, gastando tempo e ecursos na programação de rotinas que já foram criadas da POO são o reuso de código e a capacidade de expansão do mesmo. Neste momento ainda não começamos a dissecar os conceitos da POO, e por isso é natural que as vantagens da POO não sejam tão aparentes. . Os alicerces da POO Qualquer linguagem orientada a objetos deve oferecer suporte aos seguintes conceitos da POO: * Abstração * Encapsulamento * Herança * Polimorfismo A incapacidade de uma linguagem em suportar qualquer um destes conceitos a desqualifica como uma linguagem orientada a objetos. Sendo estes os alicerces da POO, vamos dissecar cada m deles a seguir 4. Abstração Abstração pode ser definida como a capacidade de representar cenários complexos usando termos simples.

Pode-se tomar um exemplo da vida real para ilustrar o conceito: um carro é uma abstração de um veículo que um indivíduo pode utillzar com o objetivo de mover-se de um ponto a outro. No dia- a-dia, ninguém dirá: “Vou abrir a porta daquele veículo movido a combustível, entrarei, me sentarei, darei a partida no motor, pisarei na embreagem, engatarei a primeira marcha, acelerarei, controlarei a direção em que o carro irá se mover utilizando o volante”. Tamanha explicação não se faz necessária pois todo o conceito daquilo foi abstraído para algo que conhecemos como “carro”.

Apesar de um carro ser algo bastante complexo, basta dizer “vou usar o meu carro para ir ao trabalho amanhã”, e qualquer pessoa entenderá o recado. Da mesma forma, imagine a confusão para qualquer pessoa entender a seguinte frase: “Quando abro aquele programa em meu computador, surge uma tela que tem várias caixas retangulares, normalmente brancas nas quais eu p PAGF70F11 computador, surge uma tela que tem várias caixas retangulares, normalmente brancas, nas quais eu posso clicar dentro e começar a digitar. Algumas dessas caixas já trazem algo escrito, e outras aparecem completamente vazias”.

Seria muito mais fácil substituir toda esta explicação apenas dizendo “O programa tem uma tela com diversos TextBox”. Mais uma vez, o complexo objeto que se parece com uma caixa retangular, e permite ao usuário digitar dentro dela (além de possuir outros atributos e ações), foi sabidamente abstraído para a palavra TextBox. O mesmo ocorre com botões de comando, caixas de seleção, grupos de opção, etc. Todos eles são objetos complexos abstraídos para simples termos que todo desenvolvedor utiliza quando precisa referenciar a tais objetos.

Além de objetos como aqueles que possuem representação visual (TextBox, Button, Form, etc. ), existem também objetos que são criados em muitas aplicações com o intuito de abstrairem objetos complexos da vida real, como por exemplo Pedido, Cliente, Produto, e muitos outros. Mas veremos exemplos destes objetos mais adiante. Neste ponto é importante compreender a diferença entre classe e objeto. Quando mencionado que algo complexo foi abstraído para algo conhecido como TextBox, este algo é uma classe. Uma classe é um modelo para algo que deve ser criado.

Por exemplo, quando alguém vai fazer um bolo de chocolate, pega-se uma Receita para 3010 de Chocolate”, que será usada como um modelo para o bolo que sera criado. De forma análoga, a receita é uma classe, e o bolo é um objeto. Uma classe não é utilizada diretamente. Ninguém come a receita de bolo. A classe é utilizada somente p PAGF30F11 classe não é utilizada diretamente. Ninguém come a receita de bolo. A classe é utilizada somente para criar objetos baseados nela, e são os objetos que serão realmente utilizados.

Deste modo, não utiliza-se a classe TextBox diretamente, e sim os objetos criados a partir daquele classe (caso membros estáticos u compartilhados venham à mente do leitor, no último parágrafo desta seção procuro esclarecer uma confusão que pode surgir com o conceito). A Figura 1 ilustra este conceito. No lado esquerdo da figura vê-se um modelo da classe TextBox, listando alguns de seus membros, como as propriedades Text, Location, Size, e alguns métodos como Focus e Copy. Ao lado direito, vê-se um Form que faz uso de objetos baseados na classe TextBox. por definição, afirma se que um objeto é a instância de uma classe.

Deste modo, na Figura 1 pode-se ver que o Form possui três instâncias da classe Textgox. Textgox é um exemplo de lasse disponível nativamente no . NET Framework. Em muitos casos e necessário criar classes que não existem no framework, como por exemplo uma classe Produto. Criar classes é algo muito simples tanto em VB. NET como em C#. O código a seguir mostra a slntaxe necessária em ambas as linguagens. // Em C#: public class Produto ‘ Em VB. NET: Public Class Produto End Class Neste ponto estou omitlndo propositalmente a cnação de membros para as classes, como propriedades ou métodos, apenas para manter a clareza do exemplo.

Neste artigo existem seções dedicadas a membros de classes. Instanciar classes (ou riar objetos) é também bastante sim les, como pode-se ver no seguinte código: PAGFd0F11 bastante simples, como pode-se ver no seguinte código: // Em C#•. Produto meuProduto = new Produto(); Dim meuproduto as Produto = New Produto() O leitor familiarizado com membros compartilhados ou estáticos (shared em VB. NET, static em respectivamente) pode questionar minha afirmação de que classes não são utilizadas diretamente, visto que tais membros (compartilhados ou estáticos) são utilizados sem a necessidade de instanciar a classe.

Isto é parte verdade, uma vez que o programador não precisa instanciar a classe manualmente. Entretanto, o runtime do *NET irá instanciar a classe e controlar aquela instância nos bastidores, então vale a tese de que uma classe é utilizada através de algum objeto instanciado a partir da mesma. 5. Encapsulamento Encapsulamento pode ser definido como a tarefa de tornar um objeto o mais auto-suficiente possível. Na seção anterior, quando o exemplo do carro foi mencionado, de maneira intuitiva deixou-se de abordar os detalhes técnicos de como o motor de um carro funciona.

Existem tantos detalhes a serem explicados sobre o funcionamento do motor de um carro que a maioria das pessoas provavelmente desistiriam de tilizar um carro caso precisassem entender como funciona cada parte daquilo. Basicamente, uma pessoa não precisa daquele entendimento. Apenas saber que o motor é o dispositivo que propulciona o carro já é o suficiente. A maior parte dos detalhes do motor está “encapsulada” dentro do mesmo, e pessoas utilizando c carro não precisam lidar diretamente com o motor.

Além disso, é importante fnsar que o motor de um carro tem um funcionamento indepentende das outras parte disso, é importante frisar que o motor de um carro tem um funcionamento indepentende das outras partes (tais como direções, pneus, bancos, etc. ). Ou seja, mesmo que um carro não tenha as quatro rodas, isto não impede de o motor funcionar, pois ele funciona como uma unidade independente, uma “caixa- preta” Tomando agora o exemplo da caixa de texto em uma tela de um programa, pode-se refletir sobre os diversos detalhes que estão encapsulados dentro daquele objeto.

Por exemplo, o desenvolvedor não sabe examente (ou não precisa saber) como é que o sistema operacional irá desenhar a representação visual daquele objeto na tela, mandando sinais da CPU para a placa de vídeo, e então para o monitor, e então criando o objeto na posição que foi especificada previamente. Felizmente desenvolvedor não precisa se preocupar com este tipo de detalhe. Tudo o que é preciso é colocar a caixa de texto na tela e configurar as propriedades Top e Left, para determinar onde o controle deverá aparecer.

A mágica do como o controle irá aparecer na tela é algo que o objeto é auto-suficiente o bastante para fazer aquilo sozinho. Os conceitos de Abstração e Encapsulamento andam de mãos dadas, visto que com a abstração definimos a entidade que representa um objeto complexo, e o encapsulamento esconde detalhes daquele objeto, e com isto esconde detalhes de seu funcionamento que poderiam assustar a qualquer pessoa entando utilizá-lo. Imagine se o motorista tivesse que saber a quantidade exata de combustível a ser inserida no carburador quando o acelerador do carro é acionado?

Acho que eu só andaria de ônibus, ou de carona. 6. Herança Herança pode ser d acionado? Acho que eu só andaria de ônibus, ou de carona. 5. Herança Herança pode ser definida como a capacidade de uma classe herdar atributos e comportamento de uma outra classe. Basta um passeio ao redor da cidade para descobrir-se que existem vários tipos e modelos de carros lá fora. Carros de passeio, carros de corrida, carros conversíveis, carros com volante o lado esquerdo e outros do lado direito, carros de diferentes cores, fabricantes, etc.

Cada vez que um novo carro é criado, não é necessário “reinventar a roda”, e começar todo um projeto novamente. Diversos conceitos abstraídos e encapsulados no objeto carro já foram planejados, testados e aprovados, e por isso não faz sentido gastar-se tempo e recursos para fazer tudo aquilo de novo. Todo carro terá um meio de propulsão, direção, acelerador e freio, rodas e pneus, e deste modo, todo novo carro pode herdar estas características e funcionamento de um projeto já existente.

Caso seja necessário criar um novo carro que seja uase igual a todos os outros, mas que possua algumas coisas diferentes (por exemplo, utilizando um câmbio automático ao invés de manual), o projetista pode herdar o novo carro a partir do projeto básico, e então adicionar as características específicas do novo carro ao novo projeto. Voltando ao exemplo da caixa de texto: a classe-base da caixa de texto é retangular e geralmente tem um fundo branco e os caracteres mostrados em preto.

Isto é suficiente para diversos cenários, mas imaginando-se o cenário onde faz-se necessária a inclusão de uma caixa de texto que deverá receber somente a ntrada de numeros (proibindo a digitação de letras), e dever de texto que deverá receber somente a entrada de números (proibindo a digitação de letras), e deverá mostrar o número em azul caso seja positivo e vermelho caso seja negativo, logo percebe-se a necessidade em se criar uma nova classe. Esta nova classe será bastante semelhante à caixa de texto padrão.

De fato, semelhante o suficiente para que a mesma seja derivada da caixa de texto padrão, e então as necessidades específicas serão definidas nesta subclasse. A Listagem 1 mostra uma possível implementação em C# para tal classe. A principal diferença para o ódigo em VB. NET seria apenas sintaxe, mas os conceitos são os mesmos. Listagem 1. Exemplo de herança public class Valor TextBox : System. Windows. Forms. TextBox protected override void OnTextChanged(EventArgs e) base. On extChanged (e); string valor = this.

Text. Trim0; if (valor. Length 1 valor ” “) // apenas o sinal de negativo foi digitado this. ForeColor = Color. Red; // Tenta-se converter a string em um valor decimal decimal val = Convert. ToDecimal(valor); // Se tiver sucesso, formatar o TextBox para números // positivos e negativos. if (val 0) valor. Substring(0, valor. Length-1); this. SeIectionStart = this. Text. Trim(). Length; A primeira linha de código determina que a nova classe chama-se ValorTextgox, e deriva da classe System. Windows. Forms. TextBox. Em VB.

NET, troca-se os dois-pontos (“:”) pela palavra-chave Inherits. Todas as características da classe-base são herdadas ao definir-se que a nova classe herda da mesma. O restante do código apenas implementa o comportamento de validar a entrada de dados do usuário e a formatação diferenclada para valores positivos e negativos. Com esta nova classe criada, o próximo passo é apenas utilizá- la. O código a seguir mostra trechos de código em um Form que tiliza tanto esta nova classe como a classe básica disponível no Framework.

Os principais pontos a enfatizar no código a seguir são a declaração dos campos que mantém as instâncias dos TextBox e a criação dos objetos baseados nas classes específicas. Pode-se ver que é criado um TextBox baseado na classe padrão, e dois outros TextBox baseados na classe especializada ValorTextBox criada neste exemplo. public class Heranca : System. Windows. Forms. Form private System. Windows. Forms. Textgox textgoxl; private MSDNBrasiI. ValorTextBox txtValor1; private MSDNgrasil. ValorTextBox txtValor2; / código omitido para clareza do exemplo private void InitializeComponent() this. textgoxl new System.

Windows. Forms. Textgox(); this. txtValor1 = new MSD extBox(); omitido para clareza do exemplo O Form em execução pode ser visto na Figura 2. Os dois prmeiros TextBox mostram nossa classe especializada em ação, enquanto que o terceiro é um TextBox básico. O importante ponto a frisar na utilização da herança e que a classe é criada uma vez, e então utilizada em quantos Forms forem necessários. Supondo que em algum momento seja necessário alterar a aparência elou comportamento de todos os TextBox que utilizam sta classe, basta alterar diretamente na classe e todos os objetos refletirão a alteração.

Por exemplo, ao invés de mostrar os numeros negativos em cor vermelha, agora o usuário deseja ver os números em letras amarelas, e a cor-de-fundo do TextBox deve passar a ser vermelha. 7. Polimorfismo Literalmente, polimorfismo significa “muitas formas” ou “o estado de existir em muitas formas”. No mundo da programação, polimorfismo é muitas vezes definido como a “capacidade de objetos diferentes possuirem métodos de mesmo nome e mesma lista de parâmetros que quando chamados executam tarefas de maneiras diferentes”

Estas definições em nada ajudam ao desenvolvedor que está tentando desmistificar o paradigma da poo_ E sinceramente não conheço nenhuma forma para se explicar polimorfismo usando poucas palavras, por isso sempre procuro usar bastante analogias e exemplos diversos para ilustrar a explanação. Seguindo com o exemplo do carro, pode-se dizer que carro “é- um” veículo. Pode-se também dizer que moto “é-um” veículo, e o mesmo vale para bicicleta. Todo veículo possui algum meio para acelerar, não importa qual mecanismo é usado para isso, e o mecanismo geralmente é diferente, princ

Estudo de caso cremer

0

CREMER S. A A origem das dificuldades da Cremer pode ser encontrada nos problemas econômicos que se seguiram ao período

Read More

Trabalho individual

0

[pic] preciso trabalho 2a semestre de ciências contábeis rotinas trabalhistas ar 8 to view nut*ge tributos, e principalmente, o Contabilista

Read More