Programar em C# Criação de Classes
Índice 1.Introdução
...pag.2
2.O que se entende por uma classe 3.Para construir uma classe 4.processo de abstracção
...pag.2
..pag.2
pag. 2&3
5.Conceito de Namespace
. pag. 3
6.Porque usar variáveis e métodos
. .pag. 3
7.Estrutura de uma classe em C#......................................................pag. 3&4 8.Passo a Passo como criar um projecto em C#...............................pag. 4/7 9.Demonstração de um novo método para criar classes
..pag. 7/11
10.Conclusão
.pag. 11
11.Bibliografia
..pag.11
Marta Blanquet 6 de Abril 2005
1
Programar em C# Criação de Classes
1. Introdução
Este trabalho tem como finalidade, demonstrar o objectivo das classes e sua função em C#. Servirá de apoio a quem estiver a iniciar este tipo de linguagem, irá ter conteúdos práticos para uma melhor compreensão e exemplos de classes. Irei demonstrar um novo método de criar classes sem perder muito tempo, que ainda está a ser desenvolvido. 2. O que se entende por uma classe?
Uma classe é a descrição de um conjunto de objectos com características e comportamentos semelhantes. Mas podemos defini-la como uma entidade capaz de armazenar dados, sob a forma de campos e funcionalidades, os métodos que manipulam esses dados, disponibilizando a sua estrutura para outras entidades que a utilizam para realizar uma ou mais tarefas que um assembly C# se propõe. 3. Para Construir uma classe
Ao construir uma classe temos de ter em conta alguns factores que nos serão úteis para facilitar o nosso trabalho no desenvolvimento de um programa, tais como o destaque de atributos (adjectivos, nomes) e o destaque de operações (Verbos). Exemplo de Modelação de Uma Classe
Automóveis
Marca ♦Modelo ♦Cor ♦
Atributos
Acelerar () ♦Travar () ♦Ligar () ♦
Operações
4. Processo de Abstracção
Este é um dos conceitos básicos quando se fala de OOP. Antes de definir uma classe é importante consumir algum tempo a pensar como fazê-lo. E este trabalho deve levar-se a cabo numa primeira fase com um certo nível de abstracção, ou seja quais são as coisas mais importantes, aquelas que faz sentido tornar visíveis.
Marta Blanquet 6 de Abril 2005
2
Programar em C# Criação de Classes
Por exemplo, quando se vai à caixa Multibanco existem várias opções à disposição. Se quiser levantar dinheiro basta escolher a opção “Levantamentos”, e embora “por trás” isso desencadeie vários processos, estes não são visíveis para quem usa a caixa. O que se ganha com isto? Uma Classe é definida uma vez, mas é susceptível de ser utilizada n vezes por nós ou por terceiros. Com a abstracção vem uma maior facilidade de utilização da classe, diminuição da probabilidade de enganos, aumento de rapidez do desenvolvimento e melhoria da legibilidade do código. 5. Conceito de Namespace
Um Namespace é uma entidade lógica que visa a organização das classes dentro de uma ou mais aplicações possibilitando ter várias classes dentro de um namespace. Exemplos de namespaces
System; System. Data; System.Windows.Forms, etc. 6. Porque usar Variáveis e Métodos de instância?
O uso de métodos é para implementar o comportamento da classe que funcionam como funções ou procedimentos que podem conter uma lista de parâmetros e retomar valores. Ex: o método Get e o Set. public void setnome (string Nome) { _nome = Nome; } public string getNome() { return _nome; }
As variáveis servem para definir o corpo de uma classe representando o estado de uma
classe, devem ser privadas para não serem visualizadas em outros forms. Uma variável pode ser inicializada pelo programador imediatamente aquando da sua declaração. Em C# é possível declarar numa só linha várias variáveis do mesmo tipo e atribuir imediatamente um valor: Ex: int um = 5, dois = 10; 7. A estrutura de uma Cl a sse C# class paciente {
//variáveis de instância private private private private
string _nome; string _datanascimento; int _nbeneficiario; string _historial;
Marta Blanquet 6 de Abril 2005
3
Programar em C# Criação de Classes
//métodos de instância public void setnome (string Nome) { _nome = Nome; } public string getNome() { return _nome; } public void setDatanascimento(string Datanascimento) { _datanascimento = Datanascimento; } public string getDatanascimento() { return _datanascimento; } public void setNbeneficiario(int Nbeneficiario) { _nbeneficiario = Nbeneficiario; } public int getNbeneficiario() { return _nbeneficiario; } public void setHistorial(string Historial) { _historial = Historial; } public string getHistorial() { return _historial; }
8.Agora vou explicar alguns passos para criar um programa passo a passo e m C# 1. Inicio do programa
Marta Blanquet 6 de Abril 2005
4
Programar em C# Criação de Classes
2.Abrir novo projecto (File new Project)
3.Escolher a aplicação em que vai trabalhar Windows ou outra.
4.Estrutura do programa
Marta Blanquet 6 de Abril 2005
5
Programar em C# Criação de Classes
5. Se pretender continuar um projecto (File,Open Project)
6. Para adicionar Forms e outros ( Proje ct Add WindForm)
Marta Blanquet 6 de Abril 2005
6
Programar em C# Criação de Classes
7. Onde serão criadas as int erfaces
FORM
8.A to olbox para poder desenhar as interf aces
Toolbox
9. Agora vou demonstrar um novo método de criar classes sem perder muito t empo, que ainda está a ser desenvolv ido.
1. 2. 3. 4.
Enter the Namespace Enter the Class Name Input the field names Click on Generate! Reload Form
Number of fields (defaults to 5) Namespace:
teste
ClassName:
Private Field Prefix (default is blank):
pessoa
( e.g. 'm_' or '_')
Marta Blanquet 6 de Abril 2005
7
Programar em C# Criação de Classes string
Nome
int
Idade
int
telefone
string
localidade
string
pais
Prefix Type to private members? Create Database Access Layer Methods? generate class
using System; // Generated by http://www.csharpfriends.com namespace teste { public class pessoa { // private members string strNome; string strIdade; string strTelefone; string strLocalidade; string strPais;
// empty constructor public pessoa () { } // full constructor public pessoa (string Nome, string Idade, string Telefone, string Localidade, string Pais) { this.strNome = Nome; this.strIdade = Idade; this.strTelefone = Telefone; this.strLocalidade = Localidade; this.strPais = Pais; } // public accessors public string Nome { get { return strNome;} set { strNome = value; } } public string Idade { get { return strIdade;} set { strIdade = value; } } public string Telefone
Marta Blanquet 6 de Abril 2005
8
Programar em C# Criação de Classes { get { return strTelefone;} set { strTelefone = value; } } public string Localidade { get { return strLocalidade;} set { strLocalidade = value; } } public string Pais { get { return strPais;} set { strPais = value; } } } } using System; using System.Data; using System.Data.Client; namespace teste.Data { public class SqlDataProvider { public SqlDataProvider(){}
public void AddPessoa(Pessoa Pessoa) { // Initialize SPROC SqlConnection conn = new SqlConnection(Globals.ConnectionString); SqlCommand cmd = new SqlCommand("teste_Pessoa_Add", conn); cmd.CommandType = CommandType.StoredProcedure; // Add Parameters cmd.Parameters.Add("@Nome", Pessoa.Nome); cmd.Parameters.Add("@Idade", Pessoa.Idade); cmd.Parameters.Add("@telefone", Pessoa.Telefone); cmd.Parameters.Add("@localidade", Pessoa.Localidade); cmd.Parameters.Add("@pais", Pessoa.Pais); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } public void UpdatePessoa(Pessoa Pessoa) { // Initialize SPROC SqlConnection conn = new SqlConnection(Globals.ConnectionString); SqlCommand cmd = new SqlCommand("teste_Pessoa_Update", conn); cmd.CommandType = CommandType.StoredProcedure;
Marta Blanquet 6 de Abril 2005
9
Programar em C# Criação de Classes // Update Parameters cmd.Parameters.Add("@Nome", Pessoa.Nome); cmd.Parameters.Add("@Idade", Pessoa.Idade); cmd.Parameters.Add("@telefone", Pessoa.Telefone); cmd.Parameters.Add("@localidade", Pessoa.Localidade); cmd.Parameters.Add("@pais", Pessoa.Pais); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } public void DeletePessoa(Pessoa PessoaID) { // Initialize SPROC SqlConnection conn = new SqlConnection(Globals.ConnectionString); SqlCommand cmd = new SqlCommand("teste_Pessoa_Delete", conn); cmd.CommandType = CommandType.StoredProcedure; // Delete Parameters cmd.Parameters.Add("@PessoaID", PessoaID); conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } public Pessoa GetPessoaByID(Pessoa PessoaID) { // Initialize SPROC SqlConnection conn = new SqlConnection(Globals.ConnectionString); SqlCommand cmd = new SqlCommand("teste_Pessoa_GetByID", conn); cmd.CommandType = CommandType.StoredProcedure; SqlDataReader reader = null; Pessoa pessoa = null; // GetByID Parameters cmd.Parameters.Add("@PessoaID", PessoaID); // Execute conn.Open(); reader = cmd.ExecuteReader(CommandBehavior.CloseConnection); if(reader.Read()) { pessoa = SqlDataHelpers.PopulatePessoaFromSqlDataReader(reader); } conn.Close();
return pessoa; }
Marta Blanquet 6 de Abril 2005
10
Programar em C# Criação de Classes public static Pessoa PopulatePessoaFromSqlDataReader(SqlDataReader dr) { Pessoa pessoa = new Pessoa(); pessoa.Nome = Convert.ToString(dr["Nome"]); pessoa.Idade = Convert.ToString(dr["Idade"]); pessoa.Telefone = Convert.ToString(dr["telefone"]); pessoa.Localidade = Convert.ToString(dr["localidade"]); pessoa.Pais = Convert.ToString(dr["pais"]);
return pessoa; } } }
10.Conclusão
Com o meu trabalho tentei fazer uma demonstração do que é o C#, expondo alguns conteúdos importantes para criar classes e para que estas servem, como também desenvolvi outros assuntos como funcionar com o C# e descobri uma nova forma de facilitar a vida ao programador com um criador de classes automático que demonstro no meu trabalho. Ao desenvolver este trabalho durante a pesquisa na net deparei que não existe quase nenhum conteúdo sobre C# em português assim finalizo o meu trabalho e esperando que possa ser útil a outras pessoas. 11. Biblio grafia
http://www.csharpfriends.com/demos/csharp_class_generator.aspx?ftd=10?ftd=4?ftd Consulta a um trabalho de PowerPoint Da Universidade Moderna Utilizei exercícios aplicados nas aulas e consulta do manual do professor João Ferreira. Trabalho realiz ado por: Marta Blanquet Nº8 Da turma de te cnolo gias de programação (t ps)
Marta Blanquet 6 de Abril 2005
11