curso c# basico _

Upload: roney-cruz

Post on 21-Jul-2015

1.221 views

Category:

Documents


4 download

TRANSCRIPT

Curso linguagem C# e ADO.NET

Capitulo 1 - Framework DOTNETMicrosoft .NET (comumente conhecido por DOTNET Framework - em ingls: dote) uma iniciativa da empresa Microsoft, que visa uma plataforma nica para desenvolvimento e execuo de sistemas e aplicaes. Todo e qualquer cdigo gerado para .NET, pode ser executado em qualquer dispositivo que possua um framework da Microsoft. O .NET Framework um ambiente fortemente tipado para desenvolvimento e execuo de aplicaes. Ele gerencia todos os aspectos de execuo de um programa. Aloca memria para armazenar dados, instrues e gerencia permisses para execuo dos programas. O .NET Framework consiste em dois componentes mestres. Common language runtime (CLR) e a biblioteca de classes do NET Framework. A common language runtime (CLR) o alicerce do NET Framework. Pode-se imaginar o CLR como um agente que gerencia o cdigo em tempo de execuo oferecendo servios essenciais como gerenciamento de memria, gerenciamento de tarefas e servios remotos que ao mesmo tempo garante a segurana de tipos de dados e outras formas de preciso de cdigo que promovem a segurana e robustez. A biblioteca de classes, outro componente principal do .NET Framework, uma coleo orientada a objeto extensa de tipos reutilizveis que voc pode usar para desenvolver aplicativos, desde os tradicionais por linha de comando ou aplicativos para interface grfica, at aplicativos com base nas inovaes mais recentes fornecidas pelo ASP.NET, como Web Forms e Servios XML da Web.

O .NET Framework foi desenvolvido para ser compatvel com diversas linguagens, isto significa que os componentes do framework podem interagir com outros componentes escritos em qualquer uma das linguagens suportadas por ele. Ento uma aplicao escrita em Microsoft Visual Basic .NET pode referenciar uma DLL escrita em Microsoft Visual C# que por sua vez pode acessar recursos escritos em Microsoft Visual C++ ou em qualquer outra linguagem .NET. Esta interoperabilidade extensvel a toda orientao a objetos. O Visual Basic .NET pode derivar classes de uma classe C#, por exemplo. Este nvel de compatibilidade entre linguagens s possvel devido a CLR. Quando uma aplicao. NET compilada ela convertida de sua linguagem escrita (Visual Basic, C# ou outra compatvel) para a Microsoft Intermediate Language (MSIL). MSIL uma linguagem de baixo-nvel que a CLR pode ler e entender porque todos os executveis e DLLs existem como MSIL. A Common Language Specification (CLS) define os padres mnimos que os compiladores das linguagens precisam estar em conformidade. Com isso a CLS assegura que qualquer cdigo fonte compilado nos padres CLS pode ser interoperado pelo .NET Framework. A CTS (Common Type Specification) garante compatibilidade entre os componentes do framework NET. Todas as aplicaes .NET so convertidas para IL antes de serem executadas. Todos os tipos primitivos de uma linguagem compatvel com o framework so tipos primitivos doStephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

.NET. Ento um integer do Visual Basic .NET e um int do C# so representados da mesma forma em IL, como System.Int32, pois ambas as linguagens usam o CTS. O Visual Studio trabalha com linguagens como o Visual Basic, Visual C# e Visual C++ assim como o JScript. Voc tambm pode escrever o cdigo gerenciado para o .NET Framework em outras linguagens. Outros compiladores e ferramentas existentes para Fortran, Cobol, Perl entre outras linguagens.

APL Boo Clarion COBOL Component Pascal C C++ F Eiffel Forth Fortran Haskell

Java JScript J Lua Mercury Mondrian Oberon Object Pascal / Delphi Language Oz Pascal

Perl PowerBuilder PowerShell Python RPG Ruby Scheme SmallTalk Standard ML Visual Basic

Segue abaixo os ncleos do framework desenvolvido ao longo das verses. Aps o desenho explico alguns dos itens.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

ADO.NET ADO.NET consiste num conjunto de classes definidas pelo framework .NET (localizadas no namespace System.Data) que podem ser utilizados para acessar aos dados armazenados em uma base de dados. WINFORMS Windows Forms (WinForms) o nome dado para a interface grfica, fornecendo acesso nativo ao Microsoft Windows e elementos de interface existentes envolvendo a API do Windows em cdigo gerenciado. ASP.NET ASP.NET a plataforma da Microsoft para o desenvolvimento de aplicaes Web e o sucessor da tecnologia ASP. um componente do IIS que permite atravs de uma linguagem de programao integrada no framework .Net criar pginas dinmicas. No nem uma linguagem de programao como VBScript, PHP, nem um servidor web como IIS ou Apache. O ASP.NET baseado no Framework .NET herdando todas as suas caractersticas, por isso, como qualquer aplicao .NET, as aplicaes para essa plataforma podem ser escritas em vrias linguagens, como C# e Visual Basic NET. C# C , tambm escrito como C# ou C Sharp (em portugus l-se "c charp"), uma linguagem de programao orientada a objetos, fortemente tipada, desenvolvida pela Microsoft como parte da plataforma .NET. A sua sintaxe orientada a objetos foi baseada no C++, mas inclui muitas influncias de outras linguagens de programao, como Object Pascal e Java. Durante o desenvolvimento da plataforma .NET, as bibliotecas foram escritas originalmente numa linguagem chamada Simple Managed C (SMC), que tinha um compilador prprio. Mas, em Janeiro de 1999, uma equipe de desenvolvimento foi formada por Anders Hejlsberg, que fora escolhido pela Microsoft para desenvolver a linguagem. D-se inicio criao da linguagem chamada Cool. Um pouco mais tarde, em 2000, o projeto .NET era apresentado ao pblico na Professional Developers Conference, e a linguagem Cool foi renomeada e apresentada como C#. A criao da linguagem, embora tenha sido feita por vrios programadores, atribuda principalmente a Anders, hoje um Distinguished Engineer na Microsoft. Ele foi o arquiteto de alguns compiladores da Borland, e entre suas criaes mais conhecidas esto o Turbo Pascal e o Delphi. MSDN O Microsoft Developer Network ( MSDN ) a parte do Microsoft responsvel pela gesto de relacionamento da empresa com os desenvolvedores e testadores, www.msdn.com.br. Nela possvel aprender mais sobre os produtos framework .NET e tambm possui um completo frum divididos pelos componentes .NET e tambm produtos Microsoft. Acesse e confira.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 2 Visual StudioO Microsoft Visual Studio um pacote de programas da Microsoft para desenvolvimento de software especialmente dedicado ao .NET Framework e s linguagens Visual Basic (VB), C, C++, C# (C Sharp) e J# (J Sharp). Tambm um grande produto de desenvolvimento na rea web, usando a plataforma do ASPNET. Muita gente acha que o Visual Studio uma linguagem, mas no . Escrevendo primeiro programa Exerccio 1 - Desenvolver um programa de console que imprima a seguinte frase Meu primeiro programa em C#. 2 Desenvolver um programa de console que imprima o nome do aluno.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 3 VariveisDeclarao de variveis Uma varivel uma localizao da memria que armazena um valor, ou seja, uma caixa na memria do computador que contm informaes temporrias. Voc deve atribuir a cada varivel em um programa um nome no ambguo que o identifica de forma nica no contexto em que utilizada. O c# pode armazenar e processar muitos tipos diferentes e valores - inteiros, nmeros, ponto flutuante e sequncia de caractere e entre outros. Ao declarar uma varivel, voc deve especificar o tipo de dado que ela armazenar. Palavra Chave Bool Byte Char decimal double Float Int Long Sbyte Short String Uint Ulong Ushort Tipo System.Boolean System.Byte System.Char System.Decimal System.Double System.Single System.Int32 System.Int64 System.Sbyte System.Int16 System.String System.UInt32 System.UInt64 System.UInt16 0 a 4,294,967,295 0 a 18,446,744,073,709,551,615 0 a 65,535 true ou false -127 a 128 U+0000 a U+ffff 1,0 10-28 a 7,9 1028 5,0 10-324 a 1,7 10308 1,5 10-45 a 3,4 1038 -2.147.483.648 a 2.147.483.647 -9,223,372,036,854,775,808 a 9,223,372,036,854,775,807 0 a 255 -32,768 a 32,767 Faixa de valores

Modo para declarar uma varivel: string textValor = "500";

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Dicas Uma varivel declarada, em sua forma mais simples, informando o tipo de dados (int, float, double, string, etc) e ento o nome da varivel. Uma vez declarada a varivel, podemos definir o valor que ser armazenado inicialmente. Isso chamado de "atribuir um valor inicial varivel". possvel declarar mais de uma varivel do mesmo tipo. Basta separ-las por vrgulas. Recomendo que utilize sempre variveis S-U-G-E-S-T-I-V-A-S! Quero dizer com isto que o nome da varivel deve corresponder ao seu contedo, e quando se l o nome da varivel, saiba-se do que se esta a falar. Com essa dica no podemos declarar uma varivel com um nome simplificado como, por exemplo: calcPagPrestM

Exerccio 1 Desenvolver um programa de console que declare as variveis: inteiro, flutuante, decimal, double, lgica e caracteres. Cada varivel declarada deve receber um valor qualquer desde que obedea a seu tipo de dados. Operadores aritmticos O C# suporta as operaes aritmticas que voc aprendeu no colgio: O sinal de mais (+) para adio, o sinal de menos (-) para subtrao, o asterisco (*) para multiplicao e a barra (/) para diviso. Esses smbolos so denominados operadores por que operam em valores para criar novos valores. Nem todos os operadores so aplicados a todo tipo de dados. Exemplo, o operador (-) no pode ser utilizado em um tipo de dados bool. Exerccio 2 - Desenvolver um programa que declare duas variveis recebendo os valores 5 e 6 respectivamente. Criar uma terceira varivel que receba a somatria da primeira e segunda varivel. 3 Desenvolver um programa que declare uma varivel recebendo a operao (2 / 3) e mostre esse valor na tela. 4 Desenvolver um programa que declare uma varivel que receba o valor 1 e uma outra varivel que receba a operao de subtrao da primeira varivel com o valor 7, formula: varivel_1 7. Mostre o valor na tela. 5 Desenvolver um programa que declare uma varivel inteira contendo o valor 8. Adicionar mais um a varivel e imprimir para o usurio. Converses de tipo dadosStephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

A converso de tipo de dados se faz necessria quase que todo momento durante a vida de execuo de um sistema. Um exemplo disso quando informamos na interface do sistema o valor de um produto, pois, esse valor quando informado pertence ao tipo de dados String e para que o sistema utilize necessrio que seja utilizado o tipo de dado Decimal. Para converter um determinado dado necessrio utilizar o nome do tipo de dado + a utilizao do mtodo Parse(). Por exemplo; string textValor = "500"; decimal valor = decimal.Parse(textValor); Dicas

Para receber um valor do console, ou seja, onde o usurio informa algum valor deve ser utilizado a instruo Console.ReadLine(); e essa instruo deve ser recebida por uma varivel do tipo string.

Exerccio 6 - Crie um novo projeto onde dever criar duas variveis do tipo int recebendo os valores do console e criar uma terceira varivel que ir receber a somatria das duas primeiras variveis. O valor da varivel total dever ser mostrado em tela. 7 - Crie duas variveis do tipo string que receba nome de empresas utilizando o console. Criar a terceira varivel que receber no momento da declarao a somatria das duas primeiras variveis. Imprimir em tela e diga o que acontece. 8 - Crie um programa que receba do console quatro nmeros e faa os seguintes processos: A Criar uma varivel que receba a somatria de todas as variveis recebidas do console. B - Criar uma varivel que receba a multiplicao de todas as variveis recebidas do console. C - Criar uma varivel que receba a diviso (somatria das duas primeiras variveis dividida pelas duas ultimas variveis). D - Criar uma varivel que receba a subtrao da primeira varivel pela ultima varivel recebida do console. 9 - Faa um algoritmo que receba o salriobase de um funcionrio, calcule e mostre o salrio a receber, sabendose que esse funcionrio tem gratificao de 5% sobre o salriobase e paga imposto de 7% sobre o valor liquido. 10 - Faa um algoritmo que receba o ano de nascimento de uma pessoa e o ano atual. Calcule e mostre: a idade dessa pessoa e quantos anos ela ter em 2015. 11 Faa um programa que receba dois parmetros do sistema, dois nmeros. Imprima na tela todas as operaes (+, -, *, /) entre os dois nmeros informados pelo usurio. 12 Faa um programa que receba dois nmeros do usurio, some-os e depois multiplique pelo primeiro nmero. O resultado deve ser mostrado para o usurio.Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

13 Faa um programa onde dever receber o nome, o cdigo da pea, valor da pea e a quantidade de pea. Calcule e mostre o nome, cdigo da pea e tambm o valor total. 14 Faa um programa que receba o valor do dinheiro em dlar e o valor do dlar perante o Real. Imprima para o usurio o valor em Reais. 15 Faa um programa que receba um valor do console. Some o valor mais 500 e transforme o resultado para string. Imprima para o usurio.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 4 Instrues de decisesTodo software necessita de decises, decises estas que servem para barrar uma operao como no momento de efetuar um cadastro onde se o usurio no cadastrar seu nome e data de nascimento no poder ir para o prximo processo. No C# fornecido um tipo de processo chamado operador booleano. Um operador booleano um operador que faz um clculo cujo resultado verdadeiro ou falso. Entendendo operadores de igualdade e relacionais Operador == != < >= IF, ELSE A funo da palavra reservada IF tomar deciso em cima do calculo feito atravs dos operadores booleano. Aps o calculo o sistema desvia ou continua o fluxo. Exemplo: int idade = 42; if (idade >= 50) Console.Write("Pessoa velha"); else Console.Write("Pessoa meia boca"); Exerccio: 1 Escreva um programa que receba a nota do aluno e informe: APROVADO caso a nota final seja maior ou igual a sete. RECUPERAO caso a nota final seja menor que sete. 2 - Faa um programa que leia dois nmeros e exiba qual o maior. 3 Faa um programa onde a pessoa dever informar seu nome. Se o nome informado for diferente do seu nome (quem est desenvolvendo o programa) dever imprimir a seguinte mensagem: voc no eu. Se o nome for igual, dever imprimir a seguinte mensagem: Voc sou eu, que legal!. 4 Escreva um programa que receba o salario base do trabalhador e processe as seguintes informaes: Se o salario for menor que R$ 1000,000 acrescente vale gs que est valendo R$Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Significado Igual a Diferente de Menor que Menor ou igual Maior que Maior ou igual

Exemplo Idade == 100 Idade != 0 Idade < 21 Idade 16 Idade >= 42

Resultado sendo idade igual a 42 Falso Verdadeiro Falso Falso Verdadeiro Verdadeiro

Curso linguagem C# e ADO.NET

15,00. Se o salario for maior igual a R$ 1000,00 desconte o vale alimentao que est valendo R$ 50,00. Mostre na tela o valor do salario final do trabalhador. AND (&&), OR (||) Muitas vezes o sistema necessita ter mais de um parmetro para tomar deciso. Por exemplo, listar no relatrio produtos que estejam na promoo e que esteja abaixo do estoque permitido. O sistema para tomar essa deciso necessita ter dois parmetros para que ele liste os produtos corretos no relatrio. Exemplo AND int idade = 22; bool mulher = true; if (!mulher) Console.Write("To fora"); else if(mulher && idade < 25) Console.Write("Vou pegar"); else Console.Write("No gosto de panela velha"); Repare que na segunda deciso existem dois caracteres especiais (&&) que tem a funo de verificar se a outra deciso tambm verdadeira. Neste caso o sistema s exibe a mensagem Vou pegar se a varivel mulher verdadeira e se a idade menor que 25. Este um caso onde se utiliza AND que quer dizer quero essa deciso e tambm aquela outra. Voc pode colocar quantos AND quiser em um s IF. Exemplo OR int idade = 22; bool mulher = true; bool rica = true; if (mulher) { if (idade < 25 || rica) Console.Write("Vou pegar"); } Neste outro exemplo so utilizadas duas decises no segundo IF onde uma das duas deve ser verdadeira para ser executada, idade deve ser menor que 25 anos OU a mulher ser rica. Voc pode utilizar quantos OR quiser em um IF.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Exerccio: 5 Faa um programa que dever informar para o usurio qual a quantidade em quilo mxima que ela dever comer no almoo seguindo as regras: Se o usurio for do sexo feminino o Estiver na idade entre 5 a 10 anos, dever ser de 300 gramas. o Estiver na idade entre 11 a 15 anos, dever ser de 380 gramas. o Estiver na idade entre 16 a 20 anos, dever ser de 450 gramas. o Maior que 20 anos, dever ser de 500 gramas. Se o usurio for do sexo masculino o Estiver na idade entre 5 a 10 anos, dever ser de 390 gramas. o Estiver na idade entre 11 a 15 anos, dever ser de 420 gramas. o Estiver na idade entre 16 a 20 anos, dever ser de 500 gramas. o Maior que 20 anos, dever ser de 600 gramas. 6 Escreva um programa que receba o valor de um produto e a forma de pagamento (avista ou parcelado). Se o produto custar mais que R$ 100 e a forma de pagamento for vista o produto tem 10% de desconto, se a forma de pagamento for a prazo tem 5% de acrscimo. Se o produto custar menos ou igual a R$ 100 e a forma de pagamento for vista o produto tem 5% de desconto, se a forma de pagamento for a prazo tem 3% de acrscimo. Imprimir na tela o valor do produto calculado. 7 - Faa um programa que leia a altura de duas pessoas (A e B) e suas idades. Verifique: Se a pessoa for maior que 1,70 ou tiver menos que 13 anos, imprima a mensagem Pessoa {A ou B} tem mais de 1,70 ou tem 13 anos. Se a pessoa for menor que 1,60 ou tiver mais que 20 anos, imprima a mensagem Pessoa {A ou B} muito baixa ou j passou dos 20. Se a pessoa no atender a essas regras deve mostrar a mensagem Pessoa {A ou B} normal, eu acho!. 8 - Faa um programa que pergunte em que ano voc nasceu e exiba quantos anos voc tem. Exiba tambm se voc mais velho que 18 anos inclusive, se est entre 15 e 18 anos, ou se tem menos que 15 anos. 9 - Faa um programa que permita o usurio digitar o nmero do ms escolhido e exiba o ms por extenso. 10 Faa um programa que receba o nome do produto, valor, quantidade em estoque e quantidade mnima permitida de estoque. Calcule e imprima a seguinte mensagem: Se o produto estiver com estoque maior que quantidade mnima, produto {nome do produto} bem gerenciado. Se o produto contiver quantidade de estoque igual quantidade de estoque mnima e o valor do produto custar mais que R$ 1.000,00 imprima a mensagem cuidado! Compre mais do produto {nome do produto}. Se o produto tiver a quantidade de estoque mnima maior que quantidade de estoque real e o valor do produto custar mais que R$ 1.000,00, Perdeu play boy. Se o produto no atender nenhuma dessas regras imprima fique tranquilo.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

SWITCH Algumas vezes, ao escrever uma instruo IF em cascata, todas elas so semelhantes, por que todas avaliam uma expresso idntica. A nica diferena que todos os IF compara o resultado da expresso com um valor diferente. Para resolver este problema podemos utilizar a funcionalidade do switch. Um dos objetivos do switch deixar claro o cdigo quanto os possveis fluxos. Exemplo string tipoUsuario = "secretaria"; double salario; switch (tipoUsuario) { case "mdico": salario = 10000; break; case "secretaria": salario = 1200; break; case "analisa": salario = 1210; break; default: break; } Neste exemplo acima todas as decises so sobre a varivel tipoUsuario que dependendo do resultado recebe um valor diferente. A opo default significa quando nenhum dos casos foram atendidos. Exerccios: 11 Desenvolva um programa que imprima o status de uma guia de consulta informada pelo usurio seguindo a regra: 0 pendente; 1 solicitada; 2 executada. O cdigo do status ser informado pelo usurio. 12 - Seu programa pede para que o usurio digite apenas duas opes (S ou N) para fechar ou no o programa. Dever mostras o resultado Programa Aberto ou Programa Fechado. 13 - Faa um programa que permita o usurio digitar o nmero do ms escolhido e exiba o ms por extenso. 14 Construir um programa para ler um numero de 1 a 7 e informar o dia da semana correspondente, sendo o domingo do dia de numero 1. Se o numero no corresponder a um dia da semana dever ser mostrada a mensagem dia errado.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Exerccios do capitulo 15 Criar um programa para ler o preo e a categoria de um produto. Calcular e mostrar o reajuste de acordo com a categoria: A = 50%, B = 25%, C = 15% e outras 5%. 16 Desenvolva um programa que pea uma letra para ser informada pelo usurio. O sistema dever informa se a letra ou no uma vogal. 17 Crie uma calculadora onde o usurio dever informar o primeiro valor, a operao (+, -, *, /) e o segundo valor. O sistema dever retornar o resultado do calculo.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 5 StringExiste uma srie de mtodos no C# que podem ser usados em uma varivel do tipo string. Este tipo de trabalho muito comum em programao, uma vez que o usurio usa o teclado para a entrada de dados. Por exemplo, quando o usurio entra com um nmero via teclado, este nmero entra no programa como um valor string, isto , o programa trata este valor como uma palavra (texto). Mesmo que este texto seja a idade da pessoa, se voc quiser usar este valor em uma operao matemtica ter antes que transforma-la para nmero (string int) para depois operar o contedo da varivel nmero. Outro exemplo tpico em mquinas. Por exemplo, se o seu programa estiver usando uma balana para verificar o peso de alguma pea, e, esta balana estiver conectada ao computador via serial. O valor recebido pelo programa na forma de um valor do tipo string, uma sequncia de palavras. Se voc quiser mostrar somente o peso no monitor, voc ter que separar a palavra que contm o nmero que indica o peso e ainda transformar esta palavra em nmero, uma vez que a balana manda uma srie de palavras alm do valor do peso, como por exemplo, a unidade. Para separar uma ou mais palavras dentro de uma string, transformar uma string em nmero, ou ainda contar o nmero de caracteres e tantas outras tarefas o C# possui uma srie de mtodos para ajudar voc. Este tipo de operao chamado de manipulao da string e este captulo mostra como usar estes mtodos. ToString Converte um objeto para sua representao de sequncia de caracteres para que seja adequado para exibio. Muito utilizado para transformar nmeros (qualquer tipo como int; float; double) para string. Qualquer objeto possui este mtodo. Length o Retorna o nmero de caracteres. Substring o Com o mtodo substring podemos pegar um pedao da string no C#. Devemos passar como parmetro a posio inicial seguida do nmero de caracteres que devem ser extrados a partir da posio inicial. Replace o extremamente til. Com eles podemos remover espaos em branco, pontos ou trocar qualquer outro caractere ou conjunto de caracteres em uma string por outros valores. ToUpper o Retornar em maisculo o conjunto de caracteres existente na string ToLower o Retorna em minsculo o conjunto de caracteres existente na string Contains o Retorna verdadeiro ou falso se o texto passado como parmetro est contido na string. StartsWith o Retorna verdadeiro ou falso se o conjunto de caracteres existente comea com o valor do parmetro EndsWitho

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NETo

Retorna verdadeiro ou falso se o conjunto de caracteres existente termina com o valor do parmetro.

Exerccio 1 - Criar um programa que declare uma varivel do tipo int e que receba o valor 5. Declare uma varivel do tipo string que receba o contedo da primeira varivel do tipo int. 2 - Criar um programa que receba do usurio uma palavra. O programa deve responder quantos caracteres tem a palavra e se existe sim ou no vogal contida. 3 - Criar um programa que receba do usurio uma palavra. O programa deve imprimir para o usurio a palavra informada, mas caso a palavra tenha mais que 5 caracteres, deve retornar apenas os caracteres da posio 2, 3, 4. 4 Criar um programa que receba uma palavra do usurio. Manipular a string para que caso contenha as seguintes letras seja feita as seguintes substituies: A por BC B por EG E por III A palavra manipulada dever ser impressa para o usurio. 5 Criar um programa que receba uma carteira de usurio de plano de sade. Validar se a carteira valida (deve conter 17 dgitos). O sistema deve mostrar para o usurio: Cdigo da operadora do usurio (4 primeiros dgitos) e o plano (2 dgitos depois do cdigo da operadora).

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 6 DATETIMEEm qualquer sistema que voc utilize sempre h a possibilidade de utilizar datas e tambm a manipulao de datas. Para isso mostraremos a seguir os principais recursos de data em C#. Para utilizar a funcionalidade de data utilizamos a classe DateTime que possui mtodos e propriedades estticos como o caso da propriedade NOW que retorna um tipo de dado datetime com o valor da data e hora no momento da instruo. Abaixo listamos alguns exemplos: //Data e hora de agora DateTime dataAgoar = DateTime.Now; //Dia int diaHoje = DateTime.Now.Day; //Ms int mesHoje = DateTime.Now.Month; //Ano int anoHoje = DateTime.Now.Year; //Hora int horaAgora = DateTime.Now.Hour; //Minutor int minutorAgora = DateTime.Now.Minute; //Segundo int segundoAgora = DateTime.Now.Second; Para que possamos efetuar subtrao de uma data com a outra utilizamos a classe TimeSpan que pode possuir o resultado da diferena entre uma data e outra. Exemplo abaixo. DateTime nascimento = DateTime.Parse("25/11/1985 07:01:00"); TimeSpan resultado = DateTime.Now.Subtract(nascimento); double dias = resultado.TotalDays; Existem outras propriedades que tambm podem ser utilizadas nesta classe, como total de minutos, total de segundos e varias outras. Exerccios 1 Faa um programa e insira a data de seu nascimento e hora e com isto: a) Imprima o dia em que voc nasceu. b) Imprima quantos anos voc tem hoje (ano de nascimento ano hoje). c) Imprima quantos dias faz que voc nasceu. 2 Faa um programa que receba uma data qualquer do ano (dd/mm/yyyy). Imprima para o usurio quantos dias faltam para a chegada do prximo ano contando a partir da data inserida pelo usurio.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 7 Estrutura de repetioAs estruturas de repetio so usadas para controlar a execuo de cdigos repetidamente at que uma condio seja verdadeira. Uma estrutura de repetio tambm conhecida como Loop/Lao. For Com uma instruo for, voc pode escrever uma verso mais formal desse tipo de construo combinando a inicializao, a expresso booleana e a atualizao (a organizao do loop). for( inicializao; expresso booleana; atualizao da varivel de controle) instruo Exemplo for (int i = 0; i < 10; i++) { Console.Write(i); } Exerccio 1 Criar um programa que imprima os nmeros de 0 a 10. 2 - Criar um programa que calcule e mostre a tabuada de um nmero fornecido pelo usurio. 3 - Receber dois nmeros inteiros e exibir todos os nmeros inteiros existentes entre eles. Observao: O primeiro nmero informado deve ser menor que o segundo nmero informado, caso contrrio o sistema dever exibir a mensagem de que o usurio errou nas informaes e finalizar o programa. 4 - Ler 15 nmeros (um de cada vez e todos informados pelo usurio) e imprimir na tela o seu triplo (No ato da informao do usurio). 5 - Calcular e mostrar o quadrado dos nmeros inteiros de 15 a 30. 6 - Receber dois nmeros inteiros e exibir todos os nmeros mpares inteiros existentes entre eles. While Voc utiliza uma instruo while para executar uma instruo repetidamente enquanto alguma condio se mantiver verdadeira. A sintaxe de uma instruo while esta. While(expresso booleana) Instruo

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

A expresso booleana avaliada e, se for verdadeira, a instruo executada e a expresso booleana ento avaliada novamente. Se a expresso se mantiver verdadeira, a instruo repetida e ento a expresso booleana avaliada de novo e assim continua o fluxo at que a instruo seja falsa. Exemplo int i = 0; while (i < 10) { Console.Write(i); i++; } Exerccios: 7 Criar um programa que imprima de 0 a 10. 8 - Criar um programa que calcule e mostre a tabuada de um nmero fornecido pelo usurio 9 - Receber dois nmeros inteiros e exibir todos os nmeros inteiros existentes entre eles. 10 - Ler 15 nmeros (um de cada vez) e imprimir na tela o seu triplo. 11 Imprimir todo nmero informado pelo usurio enquanto o mesmo no informar zero. Do As instrues while e for testam suas expresses booleanas no incio do loop. Isso significa que se a expresso avaliada como false no primeiro teste, o corpo do loop no executado nem mesmo uma vez. A instruo do diferente: sua expresso booleana avaliada aps cada iterao e, portanto, o corpo sempre executado ao menos uma vez. A sintaxe da instruo do a seguinte (no esquea o ponto-e-vrgula no final); do instruo while(expresso booleana); Exemplo int i = 0; while (i < 10) { i++;Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

}

Console.Write(i);

Break e Continue Anteriormente vimos que a instruo break utilizada para sair de uma instruo switch. Voc tambm pode utilizar uma instruo break para sair do corpo de uma instruo de repetio. Quando voc sai de um loop, ele encerra imediatamente e a execuo continua na primeira instruo aps o loop. Nem a atualizao nem a condio do loop so executadas novamente. Por outro lado, a instruo continue faz com que o programa execute imediatamente a prxima iterao do loop.

Exemplo: int i = 0; while (i < 10) { i++; Console.Write(i); if (i == 5) break;

}

Outro exemplo int i = 0; while (i < 10) { i++; if (i == 5) continue; } Console.Write(i);

Exerccios: 13 Usurio dever informar vrios nmeros, o fim desse lao termina quando o usurio digitar 0. Para todos os nmeros informados pelo usurio o sistema dever imprimir o total.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

14 Criar um programa que faa um lao de 0 a 1000000 e imprimir para o usurio quantas vezes aparece os dgitos 1, 3 e 4 nesta ordem e independente da posio. 15 Durante uma corrida de automveis com N voltas de durao foram anotados para um piloto, na ordem, os tempos registrados em cada volta. Fazer um programa em C# para ler os tempos das N (quando informado 0 deve finalizar a repetio) voltas, calcular e imprimir: A. Melhor tempo B. A volta em que o melhor tempo ocorreu C. Tempo mdio das N voltas. 16 Criar um programa em C# que receba do usurio dois nmeros inteiros onde dever imprimir todos os nmeros existentes entre eles multiplicados pelo maior numero informado. 17 Faa um programa que receba do usurio os itens de uma nota fiscal: nome do produto, valor unitrio e quantidade. Usurio poder informar quantos quiser at que informe o valor 0 no nome do produto. Imprima o valor total da nota e a mdia do valor unitrio dos produtos. 18 Criar um programa que faa um lao onde sejam somados todos os nmeros de 0 a 1000000. Dever tambm mostrar para o usurio qual foi o tempo total em milissegundos que demorou a execuo do lao.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 8 - ArrayTodos os tipos de dados que aprendemos at o momento tem uma coisa em comum, todos eles armazenam um tipo de dados. O que acontece se voc precisar armazenar um conjunto de itens (int, float, double, string)? Uma soluo seria criar uma varivel para cada item do conjunto, mas isso leva a vrias questes adicionais: de quanta varivel voc precisa? Como voc deve nome-las? Arrays e colees fornecem mecanismos que ajudam a resolver os problemas colocados por essas questes. Neste capitulo iremos aprender sobre array e nos prximos captulos aprenderemos sobre colees. Array: uma sequncia no ordenada de elementos. Todos os elementos em uma array tm o mesmo tipo (ao contrrio dos campos em uma estrutura ou classe, que tm tipos diferentes). Os elementos de uma array residem em um bloco contguo da memria e so acessados por meio de um ndice inteiro. Voc declara uma varivel de array especificando o nome do tipo de elemento, seguido por um par de colchetes, seguido pelo nome da varivel. Os colchetes significam que a varivel um array. Por exemplo, para declarar um array de variveis int chamada bebidas, voc deve escrever: string[] bebidas; Segue o exemplo para instanciar um array: bebidas = new string[3]; bebidas[0] = "Skol"; bebidas[1] = "Boemia"; bebidas[2] = "Kaiser"; Ou bebidas = new string[3] {"Skol", "Boemia", "Kaiser" }; Para acessar um item de um array necessrio um ndice. string item1 = bebidas[0]; Ou string valor; for (int i = 0; i < bebidas.Length; i++) { valor = bebidas[i]; }

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Nos exemplos mostrado, tanto 0 como a varivel i do for so ndices que serviro para acessar a posio do array e com isso retornar seu contedo. A instruo bebidas.Length retorna a quantidade de itens armazenados no array. Mesmo que eu tenha instanciado o array e no gravado nenhum valor em seus itens a propriedade Length ir retorna a quantidade de itens que o array pode ter.

Exerccio 1 Criar um array de inteiro que receba as nota 7, 5, 4, 10. Some todos os valores (sem utilizao de lao) do array e imprima para o usurio. 2 Criar um array de inteiro que receba as nota 7, 5, 4, 10. Some todos os valores (com utilizao de lao) do array e imprima para o usurio. 3 Fazer um programa para ler 15 nmeros, calcular a mdia dos mesmos e exibir os nmeros que estiverem acima da mdia. 4 Fazer um programa que leia 10 nmeros, mostrar o maior numero e sua posio. 5 Faa um programa que receba a lista de compras para levar ao mercado. Essa lista contem o nome do item e o preo. Essa lista deve ter no mximo 8 itens. Calcule e mostre o produto mais caro e seu nome. 6 Faa um programa que receba uma lista de 8 nmeros. Calcule e mostre o maior nmero, a soma e a mdia dos nmeros. 7 Fazer um programa que leia 5 nmeros, o sistema deve mostrar randomicamente um numero da lista para o usurio. 8 Criar um programa que receba do usurio 5 nomes e guardar essa lista em um array. O sistema dever perguntar ao usurio a posio do array que ser excluda. Neste momento o sistema dever passar os nomes no excludos para um novo array e mostrar na tela. 9 Crie um programa que receba do usurio quantidade de letras que possui uma palavra e armazene a palavra informada pelo usurio em um array. Processe e mostre quantas vogais existe na palavra informada.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 9 Mtodos e escopoCriando mtodos Mtodo uma seqncia nomeada de instrues. Cada mtodo tem um nome e um corpo. O corpo contem instrues que vo ser executadas quando o mtodo for chamado. O nome do mtodo deve ajudar a identificar seu propsito, ex: CalcularImpostoVenda. A maioria dos mtodos recebe informaes, processa-os e retorna a informao ou o resultado do processamento. Mtodo um mecanismo fundamental e poderoso. tipoDeRetorno nomeDoMetodo ( listaDeParamentros opcional ) { // corpo do mtodo }

tipoDeRetorno o tipo de dado que vai ser retornado pelo mtodo aps sua execuo. Pode ser o nome de qualquer tipo como int ou string. Se o seu mtodo no for retornar valor algum, voc precisa usar a palavra reservada void aqui, especificando que o mtodo no retorna nada. nomeDoMetodo o nome que vai ser usado para chamar o mtodo. Este nome deve seguir as mesmas recomendaes usadas nos nomes das variveis. ListaDeParametros descreve o tipo e os nomes das informaes opcionais que o mtodo recebe. Voc escreve os parmetros dentro dos parnteses como se fossem declarar variveis: nome do tipo seguido pelo nome do parmetro. Se o seu mtodo tiver mais que um parmetro, separe-os com vrgula. Corpo do mtodo linhas de cdigo que vo ser executadas quando o mtodo chamado.

Abaixo um exemplo de um mtodo chamado AdicionarValores que retorna um numero inteiro (int) e recebe dois nmeros inteiros como paramentos.int AdcionarValores(int numeroPequeno, int numeroGrande) { // // Corpo do mtodo. Aqui coloca-se as Instrues // } return 0;

Abaixo segue um exemplo de um outro mtodo mas este no retorna nenhum valor. Sabemos disso por que o mtodo voidvoid ConfigurarValorInicial(int valor) { valor = 6; }

Veja acima que como este mtodo void no corpo do mtodo no foi utilizado palavra reservada return.Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Se voc quer que seu mtodo retorne uma informao (em outras palavras que retorne um tipo e no um void), voc precisa escrever um cdigo de retorno dentro do mtodo. Para isso voc usa a palavra reservada return, seguida da expresso que calcula o valor a ser retornado. Ateno, porque o resultado da expresso deve ser do mesmo tipo que o especificado como tipoDeRetorno do mtodo, seno o programa no vai compilar. Por exemplo: int IdadeDoPaciente() { return 56; } Vejam que no foi passado nenhum parmetro por que para a regra do mtodo no foi necessria. E tambm deve ser observado que o nmero retornado 56 do mesmo tipo do mtodo (int). Lembre-se do ponto-e-vrgula ao final de cada instruo. O retorno do mtodo deve estar no final do mtodo porque ele causa a finalizao do mtodo. Qualquer cdigo depois da linha que faz o retorno no vai ser executado. Chamada de mtodos Mtodos existem para serem chamado, caso contrario apague o seu mtodo pois est gerado lixo para seu cdigo. Voc chama um mtodo pelo seu nome para ele executar uma tarefa. Se esse mtodo precisa de informaes para realizar sua tarefa (parmetros), voc precisa enviar essas informaes pra ele. Se o mtodo retornar uma informao, voc precisa ter uma forma de receber essa informao, como uma varivel, por exemplo. nomeDoMetodo Precisa ser exatamente igual ao nome do mtodo que voc esta chamando, lembre-se que o C# case-sensitive ou seja, diferencia maisculas de minsculas. listaDeArgumentos Informaes adicionais que o mtodo aceita, voc precisa passar um valor para cada parmetro e este valor precisa ser compatvel o tipo correspondente ao parmetro. Se o mtodo que voc esta chamando tiver dois ou mais parmetros, voc precisa separar os valores com vrgula.

Importante: Voc precisa escrever os parnteses ao final de cada mtodo, mesmo que o modo no tiver parmetro algum. Por exemplo, lembre-se do mtodo adicionarValores:

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

int AdicionarValores(int numeroPequeno, int numeroGrande) { return numeroPequeno + numeroGrande; } Este mtodo tem dois parmetros entre os parnteses, para cham-lo, faa assim:AdicionarValores(39, 3);

Esta a maneira correta de chamar o mtodo, se voc tentar das seguintes formas no vai conseguir: adicionarValores; adicionarValores(); adicionarValores(39); adicionarValores("39", "3"); // Falta parnteses // Falta argumentos // Falta um argumento // Tipos errados

O mtodo AdicionarValores retorna um numero inteiro. Este valor inteiro pode ser usado em qualquer lugar que uma varivel int possa ser usada. Por exemplo: int resultado = adicionarValores(39,3); mostrarResultado(adicionarValores(39,3)); No primeiro exemplo atribumos o retorno a uma varivel chamada resultado. No segundo atribumos o resultado a outro mtodo, que vai utilizar este resultado como parmetro para sua execuo. Exerccios: 1 - Desenvolva um mtodo que declara um array do tipo string com 5 posies. O programador deve preencher as posies do array. Ao final, o mtodo deve exibir o valor da posio 4 do array. 2 - Desenvolva um mtodo que declara um array do tipo inteiro com 6 posies. O programador deve preencher as posies do vetor. Ao final, o mtodo deve exibir o valor de todas as posies do vetor. 3 - Desenvolva um mtodo que declara um array do tipo string com 8 posies que guarda nomes de pessoas informadas pelo usurio. Ao final, o mtodo que recebeu e preencheu o array deve passar por parmetro para outro mtodo que ter a funo de exibir o valor de todas as posies do vetor. 4 - Desenvolva um mtodo que declara um vetor do tipo inteiro com 4 posies. O usurio deve preencher as posies do array atravs do console. Ao final o mtodo deve exibir o total da soma do valor de todas as posies do vetor.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

5 - Desenvolva um mtodo que declara dois array do tipo inteiro, cada um com 5 posies. O usurio deve preencher as posies dos dois vetores (primeiro um array e quando preenchida todas as posies seguir para o prximo array). Um segundo mtodo dever ser criado para receber por parmetro os dois array preenchidos e um terceiro vetor dever ser criado e dever preencher este terceiro vetor com o valor de todas as posies dos dois primeiros array. Ao final, dever ser criado um terceiro mtodo que receber como parmetro o terceiro array e exibir o valor de todas as posies deste array. 6 Criar um programa que dentro do mtodo Main o usurio informe seu nome atravs do console. Esse nome dever ser passado como parmetro para outro mtodo que ir substituir a letra A pela palavra Mulher e devolver o valor para o mtodo main que ter a funo de exibir o resultado para o usurio. 7 Criar um programa que dentro do mtodo Main o usurio ir informar dois nmeros atravs do console. Passar os dois nmeros como parmetro para um mtodo que ir calcular a soma e retornar para o mtodo Main que por fim ir imprimir para o usurio. 8 Desenvolva um mtodo que receba como parmetro um nmero e faa a impresso da tabuada deste numero. 9 Usurio dever informar dois nmeros e partir dai o sistema dever exibir o seguinte menu que poder ser acessado quantas vezes o usurio quiser: A. B. C. D. E. Maior numero. Multiplicar. Somar. Subtrao. Sair do sistema.

Se o usurio informar a letra A dever chamar o mtodo responsvel que verifica qual o maior numero entre os informados e mostrar este resultado. Informando a letra B o sistema dever chamar o mtodo responsvel por multiplicar os nmeros informados e mostrar este resultado. Na letra C o sistema dever chamar o mtodo responsvel por somar os nmeros informados e mostrar o resultado. Na letra D o usurio dever chamar o mtodo responsvel por efetuar a subtrao entre os nmeros informados e mostrar o resultado. Por ultimo, na letra E o sistema dever sair do lao e encerrar o programa. Sobrecarga Quando dois ou mais mtodos so definidos na mesma classe com o mesmo nome, dizemos que houve uma sobrecarga de mtodos. Uma sobrecarga de mtodos s valida se as listas de parmetros dos mtodos so diferentes de si. Exemplos de sobrecarga existem nas bibliotecas do C# por exemplo, WriteLine() pode receber vrios parmetros diferentes, mas a funo de todas elas a mesma. Exerccios: 9 - Crie um mtodo que possua trs verses diferentes do mtodo Somar():Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Com dois parmetros; Com trs parmetros; Com quatro parmetros;

O objetivo deste mtodo, em todas as verses, ser retornar a soma de todos os parmetros informados. Qualidade de cdigo em mtodo Desenvolver um mtodo que a maquia entenda fcil, difcil desenvolver um mtodo que as pessoas compreendam Autor desconhecido. http://www.stephanyhenrique.blogspot.com/

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Capitulo 10 ClassesClasses algo que podemos classificar como o objeto fundamental da POO (Programao Orientada Objetos), uma vez que impossvel obtermos um programa em C# (ou em qualquer outra linguagem OO) sem que tenhamos pelo menos uma classe. As classes vieram melhorar muito a programao devido reutilizao de cdigo, no perdendo assim tanto tempo como na programao em tempos anteriores, em que a programao era funcional ou estruturada. Como tantos outros conceitos na informtica, as classes foram inspiradas no mundo real e podemos associ-las ao ato de denominar uma entidade que compartilha alguns comportamentos e que possuem um conjunto de propriedades comuns. Fazendo um paralelo com nossa gramtica, seria como os substantivos em seu conceito mais primitivo [a palavra que designa seres em geral], onde, por exemplo, usamos o substantivo COMPUTADOR, quando queremos referenciar um objeto formado por monitor, teclado, processador [propriedades], capaz de ligar, desligar, instalar softwares, compilar programas, acessar a internet, manipular documentos [comportamento]. "O termo orientao a objetos significa organizar o mundo real como uma coleo de objetos que incorporam estrutura de dados e um conjunto de operaes que manipulam estes dados." Agora vamos olhar a sua estante, o seu guarda-roupa, o seu armrio, a sua cozinha. Em todos estes lugares voc classificou coisas no seu domnio e, somente de olhar para eles voc j sabe relacionar a classificao que utilizou em cada um deles e como classificou as coisas que esto nestes lugares. Na estante voc agrupou e organizou os livros, no guarda roupa suas camisas, calas, meias, ternos, etc. Todos os objetos que voc classificou nestes lugares foram organizados baseados em alguma concepo que voc possua sobre eles. No contexto orientado a objeto a estante, o armrio, a cozinha chamada de classes. A estrutura de uma Classe Pois bem, e como codificar essa maravilha do mundo da POO. A figura abaixo apresenta a estrutura de uma classe com os elementos possveis que a mesma suporta, que quando bem utilizados, tornam suas aplicaes seguras, performticas, estveis e legveis, enfim, os adjetivos essenciais para uma soluo de boa qualidade, capaz de tornar seu time de desenvolvimento competente. using System; namespace EstudoCSharp { class PessoaStephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

{

string nome; string cpf; string rg; DateTime dataNascimento; public Pessoa(string nome, string cpf) { this.nome = nome; this.cpf = cpf; } public int GetIdade() { return DateTime.Now.Year - dataNascimento.Year; }

} }

A primeira linha informa o pacote (biblioteca) do framework utilizado para a construo do sistema. O pacote utilizado o System que o mnimo que devemos ter para criar uma aplicao em NET por mais bsica que esta seja. Para utilizar um pacote em nossa aplicao devemos utilizar a instruo reservada using. Nesta seo podemos utilizar vrios pacotes como, por exemplo, o pacote System.Data utilizado para conectar e manipular banco de dados. O pacote tem a funo de importar as classes prontas para nossos sistemas para que possamos utilizar e com isso no precisaremos refaz-las novamente. Lembre, este o beneficio da programao orientada a objetos. A prxima linha informa em que espao de classe (namespace) nossa classe ser criada. A namespace no obrigatria, mas tem a funo de organizar as classes. Por exemplo. Ao construir todo o sistema da empresa, teremos que criar classes que so de determinados setores e ao criar podemos organizar as classes por setores (namespace financeiro, namespace contas, namespace ti). Assim ao criar um programa que utilize as classes do financeiro iremos declarar no using apenas o financeiro, pois os restos das classes de outros setores no so importantes. using System; using Financeiro; namespace Contas { public class Pagamento { } }

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Note que o corpo do exemplo da primeira classe est entre chaves { }. Dentro do corpo da classe temos variveis declaradas (nome, cpf, rg e dataNascimento). Estas variveis quando declaradas no corpo de uma classe so chamadas de atributos. Entendemos por atributos [Campo], qualquer varivel associada classe cuja funo armazenar valores utilizados em suas funcionalidades. Nada impede que outros tipos de variveis possam ser criados como, por exemplo, variveis locais. Dentro do corpo da classe de exemplo temos dois mtodos. Se notarem a diferena estrutural destes mtodos tem uma que no retorna nenhum valor e tambm no do tipo void. Isso acontece por que este mtodo um construtor e este nunca retorna nenhum valor. Os mtodos construtores so executados quando a classe instanciada e jamais so acessados diretamente pelo cliente que possui o objeto da classe. No se preocupe com a palavra reservada public escrita em cada mtodo. Logo aprenderemos sobre eles. Apenas escreva em todos os seus mtodos. Exerccio 1 Escreva a classe carro com a namespace automvel. Na classe declare os atributos: marca, modelo, ano e potencia do motor. Escreva um construtor que aceite todos os parmetros necessrios para preencher os valores da classe. 2 Escreva a classe Calcula onde dever existir o mtodo VerificaQualMaiorNumero que receba como parmetro dois nmeros e retorne o maior nmero. 3 Escreva a classe Mensagem que dever ter o atributo nomePessoa onde dever ser atribudo no momento da instancia do objeto (construtor). Dever existir tambm o mtodo MostrarNomePessoa que ser responsvel por imprimir na tela o valor do atributo nomePessoa. 4 - Crie uma classe para representar uma pessoa, com os atributos nome, idade e altura. Crie os mtodos pblicos necessrios para sets e gets e tambm um mtodos para imprimir os dados de uma pessoa.

Modificadores de acesso Quando desenvolvemos classes temos atributos, mtodos e construtores. Em algumas classes podemos ter 20, 30 ou mais atributos. Quem utilizar essa classe no precisa saber da existncia de atributos que no so necessrios saber, precisa saber apenas o que necessrio para manipular o objeto. Um exemplo disso um carro. Quem utiliza apenas precisa saber das funcionalidades necessrias. Por exemplo: acelerar, frear, trocar macha e etc. A pessoa que dirige o carro no precisa saber como a gasolina vai para o motor e nem to pouco o tamanho da corrente utilizada pela bateria para dar a partida. Para esses exemplos em classes temos algo que cuida da visibilidade de atributos e mtodos, ou seja, o que deve ou no ser mostrado para o cliente.

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Os modificadores permitem ento que o desenvolvedor possa controlar o nvel de acesso de cada membro, permitindo que as caractersticas de cada objeto sejam modificadas de uma forma segura e vistas de uma forma necessria ao sistema.

using System; namespace Contas { public class Pagamento { public DateTime dataVencimentoPagamento; public decimal valorPagamento; public string codigoBarras; private DateTime dataHoje; private bool atrasado; public Pagamento() { dataHoje = DateTime.Now; } public void Pagar(DateTime dataVencimentoPagamento, decimal valorPagamento, string codigoBarras) this.dataVencimentoPagamento = dataVencimentoPagamento; this.valorPagamento = valorPagamento; this.codigoBarras = codigoBarras; VerificaSePagamentoEstaEmAtraso();

{

}

}

}

private void VerificaSePagamentoEstaEmAtraso() { if (dataHoje > dataVencimentoPagamento) atrasado = true; else atrasado = false; }

Modificadores de acesso public privateStephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Descrio Membro acessado de qualquer lugar Membro pode ser acessado somente dentro

Curso linguagem C# e ADO.NET

da classe que o define protected Pode ser acessado dentro da classe que o define e pelas classes que a herdam

Exerccios 5 Crie uma classe que represente um objeto do mundo real. Este objeto deve possuir no mnimo 5 atributos e 5 funes. Os atributos da classe devem ser privados e os mtodos pblicos.

Escopo de variveis Presta ateno na classe Contas using System; namespace Contas { public class Pagamento { private int valorPagamento = 0; public int GetValorPagamento() { return valorPagamento; } public void AlterarValorPagamento(int valorPagamento) { valorPagamento = 3; }

}

}

Abaixo temos a classe que chama a classe Contas using System; using Contas; namespace Variaveis { class Program { static void Main(string[] args) {Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

}

}

}

Pagamento p = new Pagamento(); p.AlterarValorPagamento(3); int valor = p.GetValorPagamento();

Qual o valor no fim da execuo do atributo da classe conta valorPagamento? Ela foi utilizada no programa? Como podem observar o exemplo engana o programador que deseje entender o cdigo fonte. No mtodo AlterarValorPagamento a varivel utilizada no pertence a classe e sim ao mtodo que recebe como parmetro. Essa varivel de parmetro s tem vida til durante a execuo do mtodo, aps isso podemos dizer que ela destruda da memria. J o atributo da classe chamado tambm valorPagamento esse sim tem uma durao de vida mais longa, pois ela existir enquanto o objeto estiver na memria, pois ela faz parte da classe e no de algum mtodo. Preste muita ateno no momento de desenvolver sistema, verifique a que escopo a varivel pertena.

Propriedade Conforme visto anteriormente, declarar atributos de classe com visibilidade publica no legal e o maior motivo para isso que seu cdigo fica menos seguro e muito acoplado, pois outros objetos esto vendo coisas internas de outros objetos. Lembre-se do exemplo do carro, voc no precisa saber sobre as parte internas do motor, voc apenas necessita saber em como dirigir com segurana. Para deixar nossas classes conforme segue a lei, ser necessrio proteger os atributos e criar mtodos que configuram ou retornem os seus valores. Abaixo segue um exemplo de como programar tal modelo: using System; namespace Contas { public class Pagamento { private int valorPagamento; private DateTime dataPagamento; private string nomeResponsavel; public void SetValorPagamento(int valorPagamento) { this.valorPagamento = valorPagamento; }Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

public int GetValorPagamento() { return valorPagamento; } public void SetDataPagamento(DateTime dataPagamento) { this.dataPagamento = dataPagamento; } public DateTime GetDataPagamento() { return dataPagamento; } public void SetNomeResponsavel(string nomeResponsavel) { this.nomeResponsavel = nomeResponsavel; } public string GetNomeResponsavel() { return nomeResponsavel; }

}

}

Em Java este processo tambm feito dessa maneira. Com a utilizao de propriedades este exemplo fica mais fcil de entender e em menos cdigo. using System; namespace Contas { public class Pagamento { private int valorPagamento; public int ValorPagamento { get { return valorPagamento; } set { valorPagamento = value; } } private DateTime dataPagamento; public DateTime DataPagamentoStephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

{ }

get { return dataPagamento; } set { dataPagamento = value; }

private string nomeResponsavel; public string NomeResponsavel { get { return nomeResponsavel; } set { nomeResponsavel = value; } }

}

}

Note que vez de criar um mtodo para get e set utilizada uma propriedade que j envolve get e set. Com isso o cdigo reduzido. Caso voc queira que o atributo seja apenas de leitura, ou seja, que no seja possvel algum de fora alterar seu valor, voc pode utilizar apenas get ou o contrario se preferir. Um lembrete importante, propriedade muito parecido com mtodo, mas no ento nunca utilize os caracteres de parentes de abrir e fechar aps o seu nome. Exerccios 6 Crie uma classe que represente um computador. Utilize atributos, propriedades e mtodos obedecendo a qualidade de cdigo. 7 Implemente um cofre, este deve ter um nome e uma funcionalidade de creditar moedas que no fim somadas devero retornar o valor total depositado no cofre. OBS: Posso creditar. 8 Desenvolva um sistema que cadastre disciplinas de estudo da faculdade (nome e valor da matria) e tambm os alunos cadastrados para a disciplina. 9 Desenvolva um sistema que cadastre voc (nome, idade e bebida preferida) e as garotas que voc j conquistou (nome e idade).

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10

Curso linguagem C# e ADO.NET

Stephany Henrique de Almeida Batista Analista de Sistemas Blog: stephanyhenrique.blogspot.com Email: [email protected] Twitter: @rickab10