A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução C# e Net.Framework

Apresentações semelhantes


Apresentação em tema: "Introdução C# e Net.Framework"— Transcrição da apresentação:

1 Instituto de Treinamento em Técnica e Tecnologia ITTT Técnica de Linguagem de Programação 11ª classe Prof: Eng. Divava Sebastião Salakiaku Luanda - 2019 Introdução ao C# e.NET Framework

2 Introdução C# (CSharp) é uma linguagem de programação orientada a objetos criada pela Microsoft, faz parte da sua plataforma.Net. A companhia baseou C# na linguagem C++ e Java. História A linguagem C# foi criada junto com a arquitetura.NET. Embora existam várias outras linguagens que suportam essa tecnologia (como VB.NET, C++, J#), C# é considerada a linguagem símbolo do.NET pelas seguintes razões: * Foi criada praticamente do zero para funcionar na nova plataforma, sem preocupações de compatibilidade com código de legado. * O compilador C# foi o primeiro a ser desenvolvido. * A maior parte das classes do.NET Framework foram desenvolvidas em C#.

3 Introdução A criação da linguagem, embora tenha sido feita por vários desenvolvedores, é atribuída principalmente a Anders_Hejlsberg, hoje um Distinguished Engineer na Microsoft. Anders Hejlsberg era desenvolvedor de compiladores na Borland, e entre suas criações mais conhecidas estão o Turbo Pascal e o Delphi.

4 Plataforma.NET A plataforma.NET é um ambiente de desenvolvimento e execução de aplicações que integra diferentes linguagens de programação e facilita a distribuição destas aplicações por diversos aparelhos como dispositivos móveis, computadores pessoais e servidores. Seu padrão de desenvolvimento de Web Services utiliza-se de código XML, que possibilita que aplicativos externos de terceiros (ou não) comuniquem-se com o seu aplicativo não importando o tipo de computador, linguagem ou sistema operacional que estejam usando. As vantagens do uso do.NET são muitas. A alta portabilidade do código diminui a preocupação do desenvolvedor com o dispositivo que irá rodar a aplicação. O requisito essencial é que o dispositivo possua uma instalação funcional da plataforma.NET.

5 O gerenciamento de memória é uma das outras grandes vantagens. O espaço destinado aos objetos que não estão sendo mais utilizados é automaticamente disponibilizado na memória pela CLR. Este procedimento é importante para a liberação de recursos que as aplicações utilizam de maneira extensiva para todos os tipos de tarefas, das mais simples às mais complexas. A plataforma.NET também possui uma biblioteca de componentes comuns (Base Class Library) que visa facilitar o desenvolvimento de aplicações. Essa biblioteca é um conjunto de objetos (classes) distribuídos através de namespaces. A compatibilidade entre os tipos das diversas linguagens utilizadas pelo.NET é TOTAL. Isso deve-se ao fato de que todos os tipos são instâncias de tipos definidos dentro da classe Object. Afinal, tudo em.NET são objetos. Assim, fica mais fácil a conversão do código escrito em uma linguagem para outra.

6 Todos os programas desenvolvidos para a plataforma.NET são compilados duas vezes. Na primeira (quando é feita a distribuição) o código gerado é um tipo de código intermediário conhecido como bytecodes, em uma linguagem chamada Microsoft Intermediate Language. Na primeira execução do programa é feita a segunda compilação, desta vez para um código de nível mais baixo, compatível com o dispositivo no qual a aplicação está instalada. Todas as futuras execuções desta aplicação fazem uso deste código.

7 O Common Language Runtime é o ambiente de execução. É usado por qualquer aplicação.NET independente da linguagem em que foi desenvolvida. É ele quem faz a limpeza da memória através do Garbage Collector. CTS O Common Type System é parte integrante da CLR e possui todas as definições dos tipos.NET e seus respectivos métodos. Esses tipos serão usados por qualquer linguagem.NET. Como já foi dito: todos os tipos são objetos derivados da classe Object. CLS A Common Language Specification é a parte da CTS responsável pela definição de como as linguagens.NET devem ser interpretadas pelo compilador. Ela assegura a execução de todo o código gerado nas linguagens compatíveis com a plataforma. Como foi mostrado, há muito proveito em se desenvolver aplicações para um ambiente gerenciado, multi-linguagem e multi-plataforma como o.NET.

8 Nosso primeiro programa C# /* programa Olá mundo para compilar utilize csc OlaMundo.cs */ namespace OlaMundo { class Ola { static void Main() { System.Console.WriteLine(“Olá Mundo!”); } Observe o que significa cada linha do programa anterior.

9 Comentário Usamos comentários para descrever partes complexas de código, a fim de facilitar a manutenção de quem elaborou o software e de terceiros. Comentários não são inter- pretados pelo compilador C#. Podemos definir como um comentário: textos, caracteres especiais, trechos de código, números etc. O C# nos permite definir comentários de duas maneiras: usando barras duplas (//) ou os caracteres /* e */. Barras duplas (//) convertem o restante da linha em comentários: //

10 Método Main() Um programa C# deve conter um método Main, que controla o início e o fim. Nele você cria objetos e executa outros métodos. Um método Main pode não retornar valores. static void Main() {//... } ou retornar um valor inteiro (int): static int Main() {//... return 0; } Com ambos os tipos (void ou int), o método Main pode conter parâmetros static void Main(string[] args) {//... } ou static int Main(string[] args) {//... return 0; }

11 Sintaxe C# Todas as instruções devem estar entre chaves e sempre ser finalizadas com um ponto- e-vírgula, como você verá a seguir: { // Código aqui; }

12 Variáveis As variáveis são utilizadas para armazenar informações na memória do computador, enquanto o programa C# está sendo executado. As informações contidas nas variáveis podem ser alteradas durante a execução do programa. As variáveis devem conter um nome para que possam ser atribuídos valores a ela. Além do nome, devemos também definir o tipo de dados e o escopo (local onde a variável estará acessível). O escopo é definido pelos modificadores de acesso.

13 Variáveis Ao nomear uma variável devemos observar as seguintes restrições: O nome deve começar com uma letra ou _. Não são permitidos espaços, pontos ou outros caracteres de pontuação, mas podemos usar números. O nome não pode ser uma palavra reservada do C#. Exemplo: if, this, while etc. O nome deve ser único dentro do contexto atual. A sintaxe utilizada para declarar uma variável é: Tipo nome; Exemplo: string nome; int idade=50; Os tipos de dados definem a quantidade de memória que será reservada para a vari- ável. As variáveis devem ser nomeadas levando-se em conta as tarefas que descrevem, além disso, os nomes devem ser curtos para que possam ser facilmente digitados.

14 Tipos de dados Como C# é uma linguagem fortemente tipada (strongly typed). Todas as variáveis e objetos devem ter um tipo declarado. Os tipos de dados se dividem em value types e reference types. Todos os value types são derivados de System.ValueType, enquanto os reference types são derivados de System.Object. Variáveis baseadas em tipos de valor (value types) contêm diretamente o valor. Quando copiamos uma variável para outra, uma cópia do valor é passado, enquanto em tipos de referência (reference types) somente uma referência do objeto é passada. Os values types se dividem em duas categorias principais: estruturas (structs) e enu- merações (enum).

15 Tipos de dados As estruturas – struct se dividem em tipos numéricos (tipos integrais, ponto flutuante e decimal), bool e estruturas personalizadas criadas pelos programadores. A seguir, na Tabela 1.1, temos os tipos integrais com seu tamanho e a faixa de valores que podem conter:

16

17

18 C# e Orientação a Objetos Consultar o Manual será usado na aula, quem não tiver não devera assistir aula : k31-C# Orientação a Objetos Aula explicativa

19 Fundamentos da programação orientada a objetos Objetos são instâncias de classes, que determinam qual informação um objeto contém e como ele pode manipulá-la. Um dos grandes diferenciais da programação orientada a objetos em relação a outros paradigmas de programação que também permitem a de fi nição de estruturas e operações sobre essas estruturas está no conceito de herança, mecanismo através do qual de fi nições existentes podem ser facilmente estendidas. Juntamente com a herança deve ser enfatizada a importância do polimor fi smo, que permi- te selecionar funcionalidades que um programa irá utilizar de forma dinâmica, durante sua execução

20 Classe A de fi nição de classes e seus inter-relacionamentos é o principal resultado da etapa de projeto de software. Em geral, esse resultado é expresso em termos de alguma linguagem de modelagem, tal como UML. Uma classe é um gabarito para a de fi nição de objetos. Através da de fi nição de uma classe, descreve-se que propriedades — ou atributos — o objeto terá. Além da especi fi cação de atributos, a de fi nição de uma classe descreve também qual o compor- tamento de objetos da classe, ou seja, que funcionalidades podem ser aplicadas a objetos da classe. Essas funcionalidades são descritas através de métodos

21 Classe. Um método nada mais é que o equivalente a um procedimento ou função, com a restrição que ele manipula apenas suas variáveis locais e os atributos que foram de fi nidos para a classe. Uma vez que estejam de fi nidas quais serão as classes que irão compor uma aplicação, assim como qual deve ser sua estrutura interna e comportamento, é possível criar essas classes em Java. Na Uni fi ed Modeling Language (UML), a representação para uma classe no diagrama de classes é tipicamente expressa na forma grá fi ca, como mostrado na Figura 1.1. Como se observa nessa fi gura, a especi fi cação de uma classe é composta por três regiões: o nome da classe, o conjunto de atributos da classe e o conjunto de métodos da classe.

22 Classe.

23 O nome da classe é um identi fi cador para a classe, que permite referenciá-la posteriormente — por exemplo, no momento da criação de um objeto. O conjunto de atributos descreve as propriedades da classe. Cada atributo é identi fi cado por um nome e tem um tipo associado. Em uma linguagem de programação orientada a objetos pura, o tipo é o nome de uma classe. Na prática, a maior parte das linguagens de programação orientada a objetos oferecem um grupo de tipos primitivos, como inteiro, real e caráter, que podem ser usados na descrição de atributos. O atributo pode ainda ter um valor_default opcional, que especi fi ca um valor inicial para o atributo. Os métodos de fi nem as funcionalidades da classe, ou seja, o que será possível fazer com objetos dessa classe. Cada método é especi fi cado por uma assinatura, composta por um identi fi cador para o método (o nome do método), o tipo para o valor de retorno e sua lista de argumentos, sendo cada argumento identi fi cado por seu tipo e nome. Através do mecanismo de sobrecarga (overloading), dois métodos de uma classe podem ter o mesmo nome, desde que suas assinaturas sejam diferentes. Tal situação não gera con fl ito pois o compilador é capaz de detectar qual método deve ser escolhido a partir da análise dos tipos dos argumentos do método. Nesse caso, diz-se que ocorre a ligação prematura (early binding) para o método correto.

24 O modi fi cador de visibilidade pode estar presente tanto para atributos como para métodos. Em princípio, três categorias de visibilidade podem ser de fi nidas: público, denotado em UML pelo símbolo +: nesse caso, o atributo ou método de um objeto dessa classe pode ser acessado por qualquer outro objeto (visibilidade externa total); privativo, denotado em UML pelo símbolo -: nesse caso, o atributo ou método de um objeto dessa classe não pode ser acessado por nenhum outro objeto (nenhuma visibilidade externa); protegido, denotado em UML pelo símbolo #: nesse caso, o atributo ou método de um objeto dessa classe poderá ser acessado apenas por objetos de classes que sejam derivadas dessa através do mecanismo de herança

25 Objetos Objetos são instâncias de classes. É através deles que (praticamente) todo o processamento ocorre em sistemas implementados com linguagens de programação orientadas a objetos. Objetos objetos, obedecendo aos princípios associados à sua de fi nição conforme estabelecido no paradigma de desenvolvimento orientado a objetos, é chave para o desenvolvimento de sistemas complexos e e fi cientes. Um objeto é um elemento que representa, no domínio da solução, alguma entidade (abstrata ou concreta) do domínio de interesse do problema sob análise. Objetos similares são agrupados em classes. No paradigma de orientação a objetos, tudo pode ser potencialmente representado como um objeto. Sob o ponto de vista da programação orientada a objetos, um objeto não é muito diferente de uma variável normal. Por exemplo, quando de fi ne-se uma variável do tipo int em uma linguagem de programação como C ou Java, essa variável tem: um espaço em memória para registrar o seu estado (valor);

26 Herança O conceito de encapsular estrutura e comportamento em um tipo não é exclusivo da orientação a objetos; particularmente, a programação por tipos abstratos de dados segue esse mesmo conceito. O que torna a orientação a objetos única é o conceito de herança. Herança é um mecanismo que permite que características comuns a diversas classes sejam fa- toradas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especi fi cadas. Cada classe derivada ou subclasse apresenta as características (estrutura e métodos) da classe base e acrescenta a elas o que for de fi nido de particularidade para ela. Há várias formas de relacionamentos em herança:

27 Herança O conceito de encapsular estrutura e comportamento em um tipo não é exclusivo da orientação a objetos; particularmente, a programação por tipos abstratos de dados segue esse mesmo conceito. O que torna a orientação a objetos única é o conceito de herança. Herança é um mecanismo que permite que características comuns a diversas classes sejam fa- toradas em uma classe base, ou superclasse. A partir de uma classe base, outras classes podem ser especi fi cadas. Cada classe derivada ou subclasse apresenta as características (estrutura e métodos) da classe base e acrescenta a elas o que for de fi nido de particularidade para ela. Há várias formas de relacionamentos em herança:

28 Polimor fi smo Polimor fi smo é o princípio pelo qual duas ou mais classes derivadas de uma mesma superclasse podem invocar métodos que têm a mesma identi fi cação (assinatura) mas comportamentos distintos, especializados para cada classe derivada, usando para tanto uma referência a um objeto do tipo da superclasse. Esse mecanismo é fundamental na programação orientada a objetos, permitindo de fi nir funcionalidades que operem genericamente com objetos, abstraindo-se de seus detalhes particulares quando esses não forem necessários

29


Carregar ppt "Introdução C# e Net.Framework"

Apresentações semelhantes


Anúncios Google