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

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

PROGRAMANDO EM TypeScript

Apresentações semelhantes


Apresentação em tema: "PROGRAMANDO EM TypeScript"— Transcrição da apresentação:

1 PROGRAMANDO EM TypeScript
Dilvan Moreira

2 Java Tipos Primitivos: Números
Type Size Min Max byte 1 byte -128 127 short 2 bytes -32,768 32,767 int 4 bytes -2,147,483,648 2,147,483,647 long 8 bytes -9,223,372,036,854,775,808 9,223,372,036,854,775,807 float approx -3.4E38 (7 sig.digits) approx 3.4E38 (7 sig.digits) double approx -1.7E308 (15 sig. digits) approx 1.7E308 (15 sig. digits) 6 primitivos para números Inteiros vs. ponto flutuante (Reais) Tamanhos finitos  capacidade númerica finita

3 TypeScript: Tipos Primitivos: Números
Size Min Max double 8 bytes approx -1.7E308 (15 sig. digits) approx 1.7E308 (15 sig. digits) 1 primitivo para números Ponto flutuante (Reais) Tamanhos finitos  capacidade númerica finita

4 Java: Primitive Types: Non-numeric
Tipo caracter nome char Java usa o conjunto de caracteres Unicode, assim cada char ocupa 2 bytes de memória. Tipo boleano nome boolean Valores válidos True e false Representa yes/no, on/off

5 TypeScript Primitive Types: Non-numeric
any explicitly untyped void null or undefined, use for function returns only never functions that never return, variables that are never true readonly readonly value string including ES6 multi-line string templates number double precision 64 bits format IEEE 754 boolean boolean object may be an Object or non-primitive

6 Identificadores Identificadores devem
Começar com uma letra a ser seguida por Zero ou mais letas e/ou digitos Dígitos: Letras são as 26 do alfabeto inglês Ambas maiúsculas e minúsculas mais o $ e _ Mais os caracteres alfabéticos de outras línguas

7 Identificadores Identificadores devem
Começar com uma letra a ser seguida por Zero ou mais letas e/ou digitos Dígitos: Letras são as 26 do alfabeto inglês Ambas maiúsculas e minúsculas mais o $ e _ Mais os caracteres alfabéticos de outras línguas Quais desses não são identificadores válidos? userName user_name $cash ndName first name user.age _note_ note2

8 Identificadores Identificadores devem
Começar com uma letra a ser seguida por Zero ou mais letas e/ou digitos Dígitos: Letras são as 26 do alfabeto inglês Ambas maiúsculas e minúsculas mais o $ e _ Mais os caracteres alfabéticos de outras línguas Quais desses não são identificadores válidos? userName user_name $cash ndName first name user.age _note_ note2

9 Identificadores TypeScript é case sensitive Oreo oreo OREO 0reo
São diferentes identificadores, seja cuidadoso Essa é uma fonte comum de erros em programas

10 Identificadores TypeScript é case sensitive Oreo oreo OREO 0reo
São diferentes identificadores, seja cuidadoso Essa é uma fonte comum de erros em programas Esses são todos identificadores válidos?

11 Identificadores TypeScript é case sensitive Oreo oreo OREO 0reo
São diferentes identificadores, seja cuidadoso Essa é uma fonte comum de erros em programas Esses são todos identificadores válidos? 0reo não é. E ωψÅ? É, pois Java aceita caracteres de outras linguas

12 Identificadores Criando identificadores em seu programa
Lembre-se que outras pessoas vão ler esses nomes Crie nomes significativos e descritivos do para você e para eles Não há limite de tamanho para identificadores Mas use seu bom senso class ReallyLongNamesWillDriveYouCrazyIfYouGoOverboard { static test():void { alert ("Enough already!"); }

13 Lembrando: Estrutura de classe básica
Orientação a objetos com Java Lembrando: Estrutura de classe básica public class TicketMachine { A parte interna da classe omitida. } classe pública NomeDaClasse { Campos Construtores Métodos } O conteúdo de uma classe © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © David J. Barnes e Michael Kölling

14 Estrutura de classe básica
Orientação a objetos com Java Estrutura de classe básica class TicketMachine { A parte interna da classe omitida. } classe NomeDaClasse { Campos Construtores Métodos } O conteúdo de uma classe © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © David J. Barnes e Michael Kölling

15 Java: Conta Bancária - Variáveis
public class BankAccount{ double balance; }

16 Conta Bancária - Variáveis
class BankAccount{ protected balance:number; }

17 Java: Conta Bancária - Construtores
public class BankAccount{ double balance; public BankAccount() { balance = 0; }

18 Conta Bancária - Construtores
class BankAccount{ protected balance:number; constructor() { this.balance = 0; }

19 Java: Conta Bancária - Construtores
public class BankAccount{ double balance; public BankAccount() { balance = 0; } public BankAccount(double initialBalance) { balance = initialBalance;

20 Conta Bancária - Construtores
class BankAccount{ protected balance:number; constructor() { this.balance = 0; } constructor(initialBalance:number) { this.balance = initialBalance;

21 Java: Conta Bancária - Saldo
public class BankAccount{ double balance; ... public double getBalance() { return balance; }

22 Conta Bancária - Saldo class BankAccount{ private balance:number; ... getBalance():number { return this.balance; }

23 Java: Conta Bancária - Saque
public class BankAccount{ double balance; ... public void withdraw(double amount) { balance = balance - amount; }

24 Conta Bancária - Saque class BankAccount{ protected balance:number; ... withdraw(amount:number):void { this.balance = this.balance - amount; }

25 Java: Conta Bancária – Teste!
public class BankAccount{ double balance; public static void main(String[] args){ BankAccount harrys = new BankAccount(); harrys.deposit(2000) harrys.withdraw(500) System.out.println(harrys.getBalance()); }

26 Conta Bancária – Teste! class BankAccount{ protected balance:number; … } Harrys: BankAccount = new BankAccount(); harrys.deposit(2000) harrys.withdraw(500) alert(harrys.getBalance());

27 Java: Acesso public protected package private Todos podem acessar
Apenas objetos da classe, de seus decendentes e de classes no mesmo pacote podem acessar package Apenas objetos de classes do mesmo pacote podem acessar private Apenas objetos da classe podem acessar

28 Acesso public protected private Todos podem acessar
Apenas objetos da classe e de seus decendentes podem acessar private Apenas objetos da classe podem acessar

29 Java: Métodos de acesso
Orientação a objetos com Java Java: Métodos de acesso public int getPrice() { return price; } tipo de retorno nome do método início e fim do corpo do método (bloco) instrução de retorno modificador de visibilidade lista de parâmetro (vazia) © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © David J. Barnes e Michael Kölling

30 Orientação a objetos com Java
Métodos de acesso private getPrice():int { return price; } tipo de retorno nome do método início e fim do corpo do método (bloco) instrução de retorno modificador de visibilidade lista de parâmetro (vazia) © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © David J. Barnes e Michael Kölling

31 Orientação a objetos com Java
Métodos de acesso class Employee { private _fullName: string; get fullName(): string { return this._fullName; } set fullName(newName: string) { if (this._fullName === undefined) { this._fullName = newName; © David J. Barnes e Michael Kölling

32 Orientação a objetos com Java
Métodos de acesso class Employee { private _fullName: string; get fullName(): string { return this._fullName; } set fullName(newName: string) { if (this._fullName === undefined) { this._fullName = newName; let employee = new Employee(); employee.fullName = "Bob Smith"; alert (employee.fullName); employee.fullName = “John Doe"; alert (employee.fullName); © David J. Barnes e Michael Kölling

33 Lembrando: Métodos modificadores
Orientação a objetos com Java Lembrando: Métodos modificadores public void insertMoney(int amount) { balance = balance + amount; } tipo de retorno nome do método parâmetro modificador de visibilidade instrução de atribuição campo sendo modificado © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © David J. Barnes e Michael Kölling

34 Métodos modificadores
Orientação a objetos com Java Métodos modificadores protected insertMoney(amount:int):void { this.balance += amount; } tipo de retorno nome do método parâmetro modificador de visibilidade instrução de atribuição campo sendo modificado © David J. Barnes e Michael Kölling

35 Lembrando: Variáveis locais
Orientação a objetos com Java Lembrando: Variáveis locais public int refundBalance() { int amountToRefund; amountToRefund = balance; balance = 0; return amountToRefund; } Uma variável local Nenhum Modificador de visibilidade © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © David J. Barnes e Michael Kölling

36 Lembrando: Variáveis locais
Orientação a objetos com Java Lembrando: Variáveis locais public refundBalance():int { let amountToRefund:number; amountToRefund = this.balance; this.balance = 0; return amountToRefund; } Uma variável local Nenhum Modificador de visibilidade © 2008 by Pearson Education Programãção orientada com objetos JAVA – Uma introdução prática utilizando o BlueJ Barnes|Kölling © David J. Barnes e Michael Kölling

37 let vs var O let declara uma variável local com o escopo do bloco
Opcionalmente inicializando-a. O var define uma variável globalmente, ou localmente para toda uma função, sem levar em conta o escopo de bloco. Use o let!  tem um comportamento mais previsível e parecido com Java.

38 let vs var let não cria variáveis globais: var x = 'global';
let y = 'global'; console.log(this.x); // "global" console.log(this.y); // undefined

39 == vs === === igualdade sem type coertion: 0 == false // true
0 === false // false, ≠ type 1 == "1" // true, automatic conversion 1 === "1" // false, ≠ type null == undefined // true null === undefined // false '0' == false // true '0' === false // false

40 Modularização: Relógio digital
Exibir horas e minutos separados por dois-pontos. O mostrador exibe a hora de 00:00 a 23:59

41 Modularização: Relógio digital
Um mostrador de quatro dígitos? Ou mostradores de dois dígitos?

42 Modularização: Relógio digital
Mostrador de dois dígitos com limite. No caso das horas, o limite é entre “0” até “23”. No caso dos minutos, o limite é entre “0” até “59” Nível de Abstração maior Mostrador de dois dígitos para hora e outro para minutos Mostrador de quatro dígitos

43 Diagrama de Objetos Mostra os objetos e seus relacionamentos em um momento no tempo durante a execução de uma aplicação. Fornece as informações sobre objetos em tempo de execução. Apresenta a visualização dinâmica de um programa.

44 Diagrama de Objetos

45 Diagrama de Classes Mostra as classes de uma aplicação e os relacionamentos entre elas. Fornece as informações sobre o código-fonte e apresenta a visualização estática de um programa.

46 Diagrama de Classes

47 Tipo de objeto versus tipo primitivo
Tipos de objeto versus tipos primitivos NumberDisplay obj; tipo de objeto int i; tipo primitivo 32

48 Referência de Objeto ObjectType a; ObjectType b; b = a; int a; int b;
O diagrama de objeto mostra a referência de objeto. Assim, uma variável de tipo primitivo é mostrada como uma caixa branca e a referência de objeto é mostrada com uma seta. ObjectType a; ObjectType b; b = a; int a; int b; 32 32

49 Referência de Objeto As variáveis de tipos de objeto armazenam referências de objetos. Em outras palavras, quando uma variável armazena um objeto, o objeto não é armazenado na variável diretamente. Em vez disso, uma referência de objeto é armazenada na variável.

50 Java: A palavra-chave this
O construtor de uma classe pode ser escrito utilizando a palavra-chave this. public NumberDisplay(int rollOverLimit) { this.limit = rollOverLimit; this.value = 0; } ou não limit = rollOverLimit; value = 0;

51 A palavra-chave this O construtor de uma classe tem que ser escrito utilizando a palavra-chave this. constructor(rollOverLimit:number) { this.limit = rollOverLimit; this.value = 0; } limit = rollOverLimit; value = 0;

52 Depurador (debugger) ‘O primeiro bug de computador’ foi um inseto de verdade, uma mariposa, que foi encontrada no interior do computador Mark II por Grace Murray Hopper, uma pioneira na computação em 1945.

53 Depurador (debugger) No National Museum of American History do Smithsonian Institute mostra um registro com essa maripossa colada no livro e a observação “primeiro caso real de descoberta de um bug”.

54 Depurador (debugger) Instalação Primeiro projeto em TypeScript
Instale node.js Instale Visual Studio Code VS Code já vem com TypeScript Para instalar uma versão mais nova: > npm install -g typescript Primeiro projeto em TypeScript Debugging Typescript in VS Code and Chrome

55 Links Classes

56 Perguntas?


Carregar ppt "PROGRAMANDO EM TypeScript"

Apresentações semelhantes


Anúncios Google