Você está na página 1de 27

INTRODUO LINGUAGEM C#

Introduo ao paradigma de orientao a objetos e Noes gerais da linguagem C#


Marco Aurlio M. C. Regis
marcohp@terra.com.br

BIBLIOGRAFIA
C# 2010 for Programmers
HARVEY M. DEITEL & PAUL J. DEITEL 4 ed. Editora Prentice Hall

C# Como Programar
HARVEY M. DEITEL & PAUL J. DEITEL 1 ed. Editora Makron

Beginning Visual C# 2010


Karli Watson, Christian Nagel, Jacob Hammer Pedersen, Jon D. Reid, Morgan Skinner 1 ed. Editora Wiley Publishing

PARADIGMA DE ORIENTAO A OBJETOS


C# uma linguagem fortemente baseada no paradigma de orientao a objetos. Tal paradigma tem vrias caractersticas marcantes: Alta reutilizao de software Desenvolvimento sempre evolutivo Construes complexas a partir de construes simples Manuteno tende a ser simples

OBJETOS
No sentido mais simples, um objeto uma coisa (e.g. um carro, um relgio, etc.). Um objeto normalmente tem vrios atributos e operaes que o seu programa precisa executar nos atributos (estado e comportamento). Na programao orientada a objetos (POO), os programas focalizam objetos e suas operaes.

OBJETOS exemplo
Objeto = relgio Atributos = horrio atual e horrio de despertar Operaes = acertar a hora atual, acertar o despertador ou trav-lo

CLASSES
Abstraes para representar objetos com caractersticas e comportamentos comuns. Uma classe formada:
por um nome por atributos por mtodos

CLASSES - exemplo
classe Relgio { hora_atual; hora_alarme; atributos

acertaHora_atual(hora){ ... } acertaHora_alarme(alarme){ ... } travaAlarme(){... }

mtodos

INSTANCIAO
Um objeto uma instncia de uma classe.
classe Relgio { hora_atual; hora_alarme; acertaHora_atual(hora){ ... } acertaHora_alarme(alarme){ ... } travaAlarme(){... } } } objeto Relgio { hora_atual = 17:30:45; hora_alarme = 18:00:00; acertaHora_atual(hora){ ... } acertaHora_alarme(alarme){ ... } travaAlarme(){... }

ENCAPSULAMENTO
Orientao a objetos introduz um mecanismo importante, chamado encapsulamento. O objetivo do encapsulamento ocultar do mundo externo ao objeto os detalhes de implementao e restringir o acesso aos atributos e mtodos.

ENCAPSULAMENTO - vantagens
Segurana no acesso ao objeto Maior consistncia no estado interno, pois evita alterao incorreta de valores dos atributos Maior facilidade de modularizao Melhor gerenciamento no fluxo de dados

LINGUAGENS O.O.
Existem diversas linguagens orientadas a objetos, algumas delas com caractersticas bem variadas. Algumas mais familiares so:
C++ C# Java Object Pascal

Outras menos familiares so:


SmallTalk Eiffel

CARACTERSTICAS GERAIS DO C#
Sintaxe simples Fortemente tipada Multithreading Mecanismos de segurana bastante eficazes Mecanismos para tratamento de excees Garbage collection automtico Bom suporte de desenvolvimento Suporte fcil para aplicaes em rede Forte interligao com aplicaes WWW

VERSES
Language specification Version

ECMA

ISO/IEC

Microsoft
January 2002

Date

.NET Framework Visual Studio

C# 1.0 December 2002 C# 1.2 April 2003

January 2002

.NET Framework Visual Studio 1.0 .NET 2002

October 2003 September 2005[A]

April 2003

.NET Framework Visual Studio 1.1 .NET 2003


.NET Framework Visual Studio 2.0 2005

C# 2.0

June 2006

September 2006

November 2005

C# 3.0 None
(December

August 2007 2010)

November 2007

.NET Framework 2.0 (Except LINQ/Query Extensions) .NET Framework 3.0 (Except LINQ/Query Extensions) .NET Framework 3.5

Visual Studio 2008 Visual Studio 2010

C# 4.0

April 2010

April 2010

.NET Framework Visual Studio 4 2010

PLATAFORMA .NET FRAMEWORK


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 de tal plataforma. Ideia semelhante plataforma Java, o programador deixa de escrever cdigo para um sistema ou dispositivo especfico, e passa a escrever para a plataforma .NET.

PLATAFORMA .NET FRAMEWORK


A plataforma .NET executada sobre uma Common Language Runtime - CLR (Ambiente de Execuo Independente de Linguagem) interagindo com um Conjunto de Bibliotecas Unificadas (framework). Diferentes linguagens de programao, interagindo entre si como se fossem uma nica linguagem (ex. C#, Java, Pascal, Smaltalk, C++, Visual Basic, entre outras).

PLATAFORMA .NET FRAMEWORK


Compilao no gera um cdigo nativo. Gera um cdigo CIL (Common Intermediate Language) que ser interpretado linguagem de baixo nvel.

Common Language Runtime (CLR)


Mquina Virtual da plataforma .NET. Responsvel por interpretar o CIL para a plataforma corrente (compilao JIT).

Common Language Runtime (CLR)

PLATAFORMA .NET

ESTRUTURA DO .cs
using System; namespace HelloWorld { class Hello { static void Main( ) { Console.WriteLine("Hello World!"); } } }

DECLARAO DA Main
static void Main( ) { //... } static int Main() { //... return 0; } static void Main(string[] args) { //... } static int Main(string[ ] args) { //... return 0; }

namespaces
C# .NET framework utiliza namespaces para organizar suas classes prontas.

Ajuda no controle do escopo das classes e nomes de mtodos em grandes projetos de programao Ex: System um namespace, e Console uma classe deste namespace.

using como diretiva


Utilizado para criar um alias para um namespace ou importar tipos definidos em outros namespaces.
//using System; namespace HelloWorld { class Hello { static void Main( ) { System.Console.WriteLine("Hello World!"); //Console.WriteLine("Hello World!"); } } }

using como diretiva


Alias.
using System;
// Definindo um alias para uma classe using AliasToMyClass = NameSpace1.MyClass; namespace NameSpace1 { public class MyClass { public override string ToString() { return "You are in NameSpace1.MyClass."; } } }

using como diretiva (continuao)


Alias.
namespace NameSpace2 { // Using directive: using NameSpace1; class MainClass { static void Main( ) { AliasToMyClass instance1 = new AliasToMyClass( ); Console.WriteLine(instance1); } } }

using como instruo


Utilizado criar um escopo que ao final de sua execuo, libera recursos automaticamente atravs do mtodo Dispose().
TextWriter tw = new StreamWriter("arquivo.txt"); tw.WriteLine("Ol mundo"); //Libera os recursos alocados. tw.Dispose();

using como instruo (continuao)


Utilizado criar um escopo que ao final de sua execuo, libera recursos automaticamente atravs do mtodo Dispose().
using(TextWriter tw = new StreamWriter("arquivo.txt")) { tw.WriteLine("Ol mundo"); }

Ao trmino da execuo do bloco, os recursos sero automaticamente liberados.