Buscar

3 - Introdução C#

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 44 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Tópicos Especiais 
 
Introdução ao C#.NET 
Utilizando aplicações 
Windows Forms 
Aula 03 
Introdução ao C# 
Sua origem é fundamentada na linguagem C++ e também 
possui algumas características da linguagem Java; 
Assim como Java é orientado a objetos; 
Segue a mesma estrutura da linguagem Java e C++, com 
isso facilita a migração dos desenvolvedores; 
O C# possui o Garbage Collector (semelhante ao Java) que 
elimina os dados da memória que não estão mais sendo 
referenciados; 
Assim como acontece no Java, o C# não aceita herança 
múltipla, essa idéia pode ser feita utilizando o conceito de 
interfaces. 
Conceitos básicos de C# 
Todos os operadores utilizados em C# são os mesmos 
utilizados em Java 
Operadores aritméticos 
para teste, a variável x é igual a 10 
Operador Exemplo Resultado 
+ Adição z = x + 10; z = 20 
- Subtração z = x - 10; z = 0 
* Multiplicação z = x * 10; z = 100 
/ Divisão z = x / 10; z = 1 
% Módulo (resto de uma operação de divisão) z = x % 3; z = 1 
++ Incremento antes z = ++x; z = 11 
Incremento depois z = x++; z = 10 
-- Decremento antes z = --x; z = 9 
Decremento depois z = x--; z = 10 
Conceitos básicos de C# 
Operadores de atribuição 
para teste, as variáveis são x = 10 e y = 2 
 
Operador Exemplo Equivalência Resultado 
= x = y - x = 2 
+= x += y x = x + y x = 12 
-= x -= y x = x - y x = 8 
*= x *= y x = x * y x = 20 
/= x /= y x = x / y x = 5 
%= x %= y x = x % y x = 0 
Conceitos básicos de C# 
Operadores de comparação 
para teste a variável x é igual a 10 
Operador Descrição Exemplo 
== Igual a x == 20 (falso) 
!= Diferente de x != 20 (verdadeiro) 
< Menor que x < 20 (verdadeiro) 
<= Menor ou igual a x <= 10 (verdadeiro) 
> Maior que x > 20 (falso) 
>= Maior ou igual a x >= 10 (verdadeiro) 
Conceitos básicos de C# 
Operadores lógicos 
para teste as variáveis são: x = 10 e y = 2 
Operador Descrição Exemplo 
&& e (x > y && y < 5) (verdadeiro) 
|| ou (x > y || y > 5) (verdadeiro) 
! Negação ! (x != y) (falso) 
Expressão 1 Expressão 2 && || 
true true true true 
true false false true 
false true false true 
false false false false 
Expressão ! 
true false 
false true 
Tabela verdade 
Tipos de Dados em C# 
Tipo de dados em C# Equivalente no Framework .Net 
bool System.Boolean 
byte System.Byte 
char System.Char 
double System.Double 
float System.Single 
int System.Int32 
long System.Int64 
short System.Int16 
string System.String 
Declaração de uma variável 
 
Tipo nome; 
ou 
Tipo nome = valor inicial; 
Exemplo: 
 
int i; 
int idade=29; 
Estrutura de Controle - if 
 if (Condição) 
{ 
 //instruções 
 } 
else 
{ 
 //instruções 
 } 
Exemplo: 
 
int a = 10; 
int b = 15; 
 
if (a == b) 
{ 
 MessageBox .Show(“A = B"); 
} 
else 
{ 
 MessageBox .Show (“A != B"); 
} 
Estrutura de controle - switch 
Verifica somente a relação de igualdade (==), não permite utilizar operações 
lógicos e operadores de comparação 
 
 
switch(valor) 
{ 
case 1: 
 //instruções 
 break; 
case 2: 
 //instruções 
 break; 
case n: 
 //instruções 
 break; 
default: 
 //instruções 
 break; 
} 
Exemplo: 
 
int valor; 
valor = Convert.ToInt32(textBox1.Text); 
switch (valor) 
{ 
 case 1: 
 MessageBox.Show("Você escolheu segunda"); 
 break; 
 case 2: 
 MessageBox.Show("Você escolheu terça"); 
 break; 
 case 3: 
 MessageBox.Show("Você escolheu quarta"); 
 break; 
 case 4: 
 MessageBox.Show("Você escolheu quinta"); 
 break; 
 case 5: 
 MessageBox.Show("Você escolheu sexta"); 
 break; 
 default: 
 MessageBox.Show("Final de semana..."); 
 break; 
 } 
Estrutura de controle – while e do...while 
while (condição) 
{ 
//instruções 
} 
 
do 
{ 
//instruções 
} while (condição); 
Exemplo: 
 
int valor = Convert.ToInt32(textBox1.Text); 
int i = 0; 
String conteudo = ""; 
while (i <= valor) 
{ 
 conteudo += "nº" + i + "\n"; 
 i++; 
} 
MessageBox.Show(conteudo); 
Estrutura for 
for(valor inicial; condição; incremento/decremento) 
{ 
//instruções 
} 
 
Exemplo: 
 
int valor = Convert.ToInt32(textBox1.Text); 
String conteudo = ""; 
for (int i = 0; i<= valor; i++) 
{ 
 conteudo += "nº" + i + "\n"; 
} 
MessageBox.Show(conteudo); 
Java x C#.Net 
• Uso de programação orientada a objetos (POO) 
• Ambiente de desenvolvimento 
– Java (NetBeans, Eclipse, JCreator, etc) 
– C#.Net (Visual Studio) 
 
• Vantagens e desvantagens Java? 
– OpenSource, código aberto, multi-plataforma 
• Vantagens e desvantagens C#.Net? 
– Operacionalidade, produtividade, limitação de ambiente 
Estrutura de decisão 
 Java 
 
if (condição) 
{ 
 //instruções 
} 
else 
{ 
 //instruções 
} 
 C# 
 
if (condição) 
{ 
 //instruções 
} 
else 
{ 
 //instruções 
} 
Estrutura de decisão (cont.) 
 Java 
 
switch (valor) 
{ 
case condição : 
 //Instruções 
 break; 
... 
default: 
 //instruções 
} 
 C# 
 
switch (valor) 
{ 
case condição : 
 //Instruções 
 break; 
... 
default: 
 //instruções 
} 
Estruturas de repetição 
 Java 
 
while (condição) 
{ 
 //instruções 
} 
 
 
 
 C# 
 
while (condição) 
{ 
 //instruções 
} 
 
Estruturas de repetição (cont.) 
 Java 
 
do 
{ 
 //Instruções 
} while (condição); 
 C# 
 
do 
{ 
 //Instruções 
} while (condição); 
Estrutura de repetição (cont.) 
 Java 
 
for (inicialização;condição;incremento){ 
 //instruções 
} 
 C# 
 
for (inicialização;condição;incremento){ 
 //instruções 
} 
Procedimento/Funções/Métodos 
 Java 
 
- Procedimento 
modificador void nome(parâmetros){ 
 //instruções 
} 
 
- Função 
modificador tipo nome(parâmetros){ 
 //instruções 
 return <valor> 
} 
 
 C# 
 
- Procedimento 
modificador void nome(parâmetros){ 
 //instruções 
} 
 
- Função 
modificador tipo nome(parâmetros){ 
 //instruções 
 return <valor> 
} 
 
Classe: Java x C#.Net 
 Java 
 
public class Pessoa { 
 private String nome; 
 private String cpf; 
 
 public Pessoa(String nome, String cpf) { 
 this.nome = nome; 
 this.cpf = cpf; 
 } 
 
 public String getNome() { 
 return nome; 
 } 
 
 public void setNome(String nome) { 
 this.nome = nome; 
 } 
 ... 
} 
 C# 
 
public class Pessoa { 
 private String nome; 
 private String cpf; 
 
 public Pessoa(String nome, String cpf) 
 this.nome = nome; 
 this.cpf = cpf; 
 } 
 
 public String Nome { 
 get { 
 return nome; 
 } 
 
 set { 
 nome = value; 
 } 
 } 
 ... 
 } 
Classe: Java x C#.Net 
 Java 
 
public class Pessoa { 
 private String nome; 
 private String cpf; 
 
 public Pessoa(String nome, String cpf) { 
 this.nome = nome; 
 this.cpf = cpf; 
 } 
 
 public String getNome() { 
 return nome; 
 } 
 
 public void setNome(Stringnome) { 
 this.nome = nome; 
 } 
 
 ... 
} 
 C# 
 
public class Pessoa { 
 
 
 
 public Pessoa(String nome, String cpf) { 
 this.nome = nome; 
 this.cpf = cpf; 
 } 
 
 public string Nome { get; set; } 
 
Outra forma de declarar set e get 
Não é necessário criar uma variável private para 
Nome 
 
 
 ... 
} 
Herança: Java x C# .Net 
 Java 
 
public class Aluno extends Pessoa { 
 private String rgm; 
 
 Aluno(String nome, String rgm, String cpf){ 
 super(nome, cpf); 
 this.rgm=rgm; 
 } 
 
 public String getRgm() { 
 return rgm; 
 } 
 
 public void setRgm(String rgm) { 
 this.rgm = rgm; 
 } 
} 
 C# 
 
 
public class Aluno : Pessoa { 
 private String rgm; 
 
 public Aluno(String nome, String rgm, String cpf) 
 : base(nome, cpf) { 
 this.rgm=rgm; 
 } 
 
 public String Rgm { 
 get{ 
 return rgm; 
 } 
 
 set { 
 rgm = value; 
 } 
 } 
} 
Herança: Java x C# .Net 
 Java 
 
public class Aluno extends Pessoa { 
 private String rgm; 
 
 Aluno(String nome, String rgm, String cpf){ 
 super(nome, cpf); 
 this.rgm=rgm; 
 } 
 
 public String getRgm() { 
 return rgm; 
 } 
 
 public void setRgm(String rgm) { 
 this.rgm = rgm; 
 } 
} 
 
 C# 
 
 
public class Aluno : Pessoa { 
 
 
 public Aluno(String nome, String rgm, String cpf) 
 : base(nome, cpf) { 
 this.rgm=rgm; 
 } 
 
 public String Rgm { set; get;} 
 
} 
 
Outra forma de declarar set e get 
Não é necessário criar uma variável 
 private para Rgm 
 
Java x C# .Net - Curiosidade 
Os destrutores só existem em .NET e são métodos que são executados 
automaticamente quando o objeto não é mais utilizado e referenciado. A definição 
de um destrutor segue as seguintes regras: 
• Assim como o construtor, não pode ser chamado diretamente; 
• não tem tipo de retorno; 
• tem o mesmo nome da classe precedido de “~”; 
• não pode conter parâmetros; 
• não pode ser sobrecarregado; 
• não é herdado (processo de herança de classes); 
Os destrutores foram concebidos principalmente para liberação de memória, 
processo que deveria ser feito manualmente pelo programador em linguagens 
como C e C++. Como no .NET a memória é gerenciada pelo “Garbage Collector”, 
não temos controle de quando o destrutor será executado. 
C# - Curiosidade 
 C# 
 
 
public class Aluno : Pessoa { 
 
 
 public Aluno(String nome, String rgm, String cpf) 
 : base(nome, cpf) { 
 this.rgm=rgm; 
 } 
 
 public String Rgm { set; get;} 
 
 ~ Aluno { // Destrutor 
 // comandos 
 } 
 
} 
C# - Exemplo 
public class Aluno 
 { 
 
 //Construtor 
 public Aluno() { Console.WriteLine("Chamando o construtor"); } 
 
 //Destrutor 
 ~Aluno() { Console.WriteLine("Chamando o destrutor"); } 
 
 } 
 
 
 
 class Program 
 { 
 static void Main(string[] args) 
 { 
 Aluno a = new Aluno(); 
 a = null; 
 GC.Collect(); // força chamada ao Garbage Collector 
 Console.ReadKey(); 
 } 
 } 
Interface Gráfica: Java x C#.Net 
 
 
Interface Gráfica: código (Java) 
private void initComponents() { 
 
 jLabel1 = new javax.swing.JLabel(); 
 jLabel2 = new javax.swing.JLabel(); 
 ... 
 txtTitulo = new javax.swing.JTextField(); 
 txtRgm = new javax.swing.JTextField(); 
 ... 
 bnt_Prof = new javax.swing.JButton(); 
 btn_Aluno = new javax.swing.JButton(); 
 ... 
 jLabel1.setText("PROFESSOR"); 
 getContentPane().add(jLabel1); 
 jLabel1.setBounds(20, 150, 80, 14); 
 ... 
 
 getContentPane().add(txtTitulo); 
 txtTitulo.setBounds(90, 200, 130, 20); 
 
 getContentPane().add(txtRgm); 
 txtRgm.setBounds(80, 40, 120, 20); 
 
 bnt_Prof.setText("Exibir"); 
 bnt_Prof.addActionListener(new 
java.awt.event.ActionListener() { 
 public void 
actionPerformed(java.awt.event.ActionEvent evt) { 
 bnt_ProfActionPerformed(evt); 
 } 
 }); 
 getContentPane().add(bnt_Prof); 
 bnt_Prof.setBounds(310, 200, 70, 23); 
 ... 
 ... 
 } 
 
Interface Gráfica: código (C# .Net) 
 private void InitializeComponent(){ 
 this.Label1 = New System.Windows.Forms.Label 
 this.Label2 = New System.Windows.Forms.Label 
 ... 
 this.txtRgm = New System.Windows.Forms.TextBox 
 this.txtNomeAluno = New System.Windows.Forms.TextBox 
 ... 
 this.btnAluno = New System.Windows.Forms.Button 
 this.btnProf = New System.Windows.Forms.Button 
 ... 
 this.Label1.AutoSize = True 
 this.Label1.Location = New System.Drawing.Point(30, 33) 
 this.Label1.Name = "Label1" 
 this.Label1.Size = New System.Drawing.Size(44, 13) 
 this.Label1.TabIndex = 0 
 this.Label1.Text = "ALUNO" 
 ... 
 this.txtRgm.Location = New System.Drawing.Point(129, 56) 
 this.txtRgm.Name = "txtRgm" 
 this.txtRgm.Size = New System.Drawing.Size(100, 20) 
 this.txtRgm.TabIndex = 5 
 ... 
 this.btnAluno.Location = New System.Drawing.Point(394, 59) 
 this.btnAluno.Name = "btnAluno" 
 this.btnAluno.Size = New System.Drawing.Size(75, 23) 
 this.btnAluno.TabIndex = 9 
 this.btnAluno.Text = "Exibir" 
 this.btnAluno.UseVisualStyleBackColor = True 
 ... 
 this.AutoScaleDimensions = New System.Drawing.SizeF(6F ,13F) 
 this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font 
 this.ClientSize = New System.Drawing.Size(491, 299) 
 this.Controls.Add(this.btnProf) 
 this.Controls.Add(this.btnAluno) 
 this.Controls.Add(this.txtTitulo) 
 this.Controls.Add(this.xtNomeProf) 
 this.Controls.Add(this.txtNomeAluno) 
 this.Controls.Add(this.txtRgm) 
 this.Controls.Add(this.Label6) 
 this.Controls.Add(this.Label5) 
 this.Controls.Add(this.Label4) 
 this.Controls.Add(this.Label3) 
 this.Controls.Add(this.Label2) 
 this.Controls.Add(this.Label1) 
 this.Name = "Form1" 
 this.Text = "Form1" 
 this.ResumeLayout(False) 
 this.PerformLayout() 
 } 
 
Eventos (botões) 
• Java 
 private void btn_AlunoActionPerformed(java.awt.event.ActionEvent evt) { 
 Aluno a = new Aluno("Juliana","11.111-1","111.111.111-11"); 
 txtNomeAluno.setText(a.getNome()); 
 txtRgm.setText(a.getRgm()); 
 } 
• C# .Net 
 private void btnAluno_Click(object sender, EventArgs e) { 
 Aluno a = new Aluno("Juliana","11.111-1","111.111.111-11"); 
 txtRgm.Text = a.Rgm; 
 txtNomeAluno.Text = a.Nome; 
 } 
Criando uma SOLUÇÃO e PROJETO C# 
Windows Forms 
Ambiente Visual Studio (C#) 
Toolbox (Ctrl+Alt+X) 
View > Toolbox 
Properties (F4) 
View > Properties WIndows 
Solution Explorer (Ctrl+Alt+L) 
View > Solution Explorer 
Projeto Principal 
• Criar ainterface abaixo: 
Projeto BasicCSharp 
Na solução criada 
anteriormente, 
adicionar o 
projeto chamado 
BasicCSharp. 
 
Nesse projeto 
iremos organizar 
todas as classes. 
 
Exemplo 
• Vamos criar as classes: 
– Pessoa 
– Aluno com herança de Pessoa 
– Professor com herança de Pessoa 
Classe Pessoa 
Classe Pessoa 
public class Pessoa 
 { 
 public string Cpf { get; set; } 
 public string Nome { get; set; } 
 
 public Pessoa() { } 
 
 public Pessoa(string cpf, string nome) 
 { 
 this.Cpf = cpf; 
 this.Nome = nome; 
 } 
 } 
Classe Aluno 
public class Aluno: Pessoa 
 { 
 public string Rgm { get; set; } 
 
 
 public Aluno(string cpf, string nome, string rgm) 
 : base(cpf, nome) // chamada ao construtor da classe pai (super em java) 
 { 
 this.Rgm = rgm; 
 } 
 } 
Classe Professor 
public class Professor:Pessoa 
 { 
 public string Titulo { get; set; } 
 
 public Professor(string cpf, string nome, string titulo) 
 : base(cpf, nome) // chamada ao construtor da classe pai (super em java) 
 { 
 this.Titulo = titulo; 
 } 
 } 
No projeto Aula04 onde 
contém o Windows Forms 
iremos adicionar a 
referência ao projeto 
BasicCSharp onde estão 
criadas as classes. 
 
Formulário 
using System; 
using System.Windows.Forms; 
using BasicCSharp; 
namespace Aula04 
{ 
 public partial class Form1 : Form 
 { 
 Aluno aluno; 
 Professor professor; 
 public Form1() 
 { 
 InitializeComponent(); 
 aluno = new Aluno(); 
 professor = new Professor(); 
 } 
 
 private void btnExibirAluno_Click(object sender, EventArgs e) 
 { 
 
 aluno.Nome = "Luiz Carlos Reis"; 
 aluno.Cpf = "111-111-111-11"; 
 
 txtNomeAluno.Text = aluno.Nome; 
 txtRgm.Text = aluno.Rgm; 
 } 
 
 private void btnExibirProfessor_Click(object sender, EventArgs e) 
 { 
 professor.Nome = "Alexander Gobbato"; 
 professor.Titulo = "Mestre"; 
 } 
 } 
} 
Formulário 
private void Form1_Load(object sender, EventArgs e) 
 { 
 aluno = new Aluno("111.111.111-11", "Nome Aluno", "RGM"); 
 professor = new Professor("222.222.222-22", "Nome Professor", "Título"); 
 
 txtNomeAluno.Text = aluno.Nome; 
 txtRgm.Text = aluno.Rgm; 
 
 txtNomeProfessor.Text = professor.Nome; 
 txtTitulo.Text = professor.Titulo; 
 } 
Exercício 
• Criar uma classe de nome Comprador com atributos privados para nome, cpf, endereço e telefone 
 
• Criar uma clase de nome Carro com atributos privados do tipo Modelo, Portas e Acessórios 
 
• Criar uma interface gráfica que permita criar um objeto das classes referenciadas acima. 
 
Referências 
• DEITEL, H. M. C# Como Programar. São Paulo: 
Pearson Education do Brasil, 2003 
 
www.cruzeirodosul.edu.br

Continue navegando