Linguagens de Programação III Aula 02 Profa Cristiane Koehler [email protected] Linguagens de Programação • Técnica de comunicação padronizada para enviar instruções a um computador. • Assim como a linguagem humana, cada linguagem de programação tem sua sintaxe e gramática. • Existem diferentes tipos de linguagem de programação que podem ser utilizadas para criação de programas. 2 Categorias da Linguagens de Programação Linguagens de Programação de Alto Nível - É mais amigável ao usuário - O programa deverá ser traduzido através de um compilador - Exemplos: Java, C, C++, Basic, Fortran Linguagens de Montagem de Baixo Nível - Similares às linguagens de máquina - São mais simples e permitem a um programador substituir nomes por números - Linguagens de montagem estão disponíveis para cada família de CPU 3 Ciclo de Vida do Desenvolvimento de um Programa 4 Tipos de Erros Erros de Compilação ou Erros de Sintaxe - Ocorrem quando existem erros de sintaxe no programa - O compilador irá detectar o erro e o programa não será compilado - O programador estará impossibilitado de gerar um programa executável até que ele conserte o erro Erros de Execução - Compiladores não são perfeitos e não podem detectar todos os erros de compilação - Isto é especialmente verdadeiro nos erros de lógica como os laços de repetição infinitos - Este tipo de erro é chamado erro de execução 5 Histórico do Java - Criada em 1991 quando cientistas da Sun, liderados por Patrick Naughton e James Gosling, projetaram uma linguagem pequena para ser utilizada em eletrodomésticos em geral. O projeto se chamava Green. - Como os cientistas vinham de uma geração UNIX, eles basearam essa linguagem nova em C++ e ela foi chamada inicialmente de OAK. - OAK é um tipo de árvore que os autores apreciavam. - Posteriormente, mudaram o nome para Java, porque já havia uma linguagem com o nome OAK. 6 Histórico do Java 7 Histórico do Java • Os cientistas passaram os anos de 1993 e 1994 tentando vender a sua tecnologia ... Mas não encontraram clientes ... • Enquanto isso, a WEB crescia exponencialmente ... • A chave para a WEB é o browser que recebe o hipertexto e converte para a tela. Então, para mostrar o poder de Java eles construíram o browser HotJava. Este browser reconhecia applets, e por isso tinha uma máquina virtual Java embutida em si. • Em 1995, a Netscape decidiu tornar a próxima versão apta a reconhecer applets Java. A partir de então, todas as versões posteriores do Netscape, inclusive o Internet Explorer, reconhecem Java. 8 O que é a Tecnologia Java ? 9 Tecnologia Java: linguagem de programação 10 Tecnologia Java: ambiente de desenvolvimento 11 Tecnologia Java: ambiente de aplicação e distribuição 12 Característica Java: Máquina Virtual Java (MVJ) 13 Característica Java: Máquina Virtual Java (MVJ) • É um computador abstrato definido por uma especificação. Para executar um programa Java, precisamos de uma implementação desta máquina virtual. • Por exemplo, a Sun oferece uma implementação da MVJ que é o interpretador java.exe que vem juntamente com o ambiente de programação. 14 Características da Linguagem Java • Parecida com C/C++ o A sintaxe é muito semelhante a da linguagem C/C++. o Em Java, não existe aritmética de ponteiros, estruturas e uniões ... • Orientada a objetos o É uma linguagem voltada para programação orientada a objetos, por isso, todo código está contido dentro de classes. • Compilada e Interpretada o Todo programa é compilado e interpretado. Um programa em Java é compilado para um código composto por instruções chamadas bytecode. O bytecode é um código de uma máquina virtual, chamada Máquina Virtual Java (Java Virtual Machine – JVM). Os bytecodes são independentes da plataforma e são interpretados pela JVM para serem executados no computador. 15 Características da Linguagem Java • Todo interpretador Java ou browser que execute applets Java é uma implementação de uma Máquina Virtual Java. A JVM também pode ser implementada em hardware. • Além da JVM, a plataforma Java é composta também pela Java Application Programming Interface (Java API). A API Java é uma grande coleção de componentes de software disponibilizados que fornecem muitas capacidades interessantes e úteis, como, componentes de interface gráfica. A API Java é agrupada com bibliotecas (pacotes) de componentes relacionados. • O código Java é compilado uma única vez, porém o programa é interpretado toda vez que for executado. 16 Características da Linguagem Java 17 Características da Linguagem Java • Segura o A presença da coleta automática de lixo (Garbage Collection) evita erros comuns que os programadores cometem quando são obrigados a gerenciar diretamente a memória (C, C++, Pascal). Não se usa ponteiros, em favor do uso de vetores, objetos e outras estruturas substitutivas, que trazem benefícios em termos de segurança. • Suporta concorrência o Java suporta Multithreading que é a capacidade de um programa fazer mais de uma tarefa ao mesmo tempo, como por exemplo, imprimir enquanto lê um fax. A linguagem permite a criação, de maneira fácil, de vários threads de execução, que eliminam o período de inatividade do processador executando concorrentemente em sistemas multiprocessadores. 18 O Ambiente de Programação Java 19 Fases de um programa Java 20 Fases de um programa Java 21 Primeiro Programa - Exemplo /*Meu primeiro programa Java */ 2. public class Main 3. { 4. public static void main(String[] args) 5. { 6. System.out.println("Olá Mundo"); 7. } 8. } 1. 22 Primeiro Programa - Exemplo • Linha 2. public class Main o Esta linha utiliza a palavra reservada class para declarar que uma nova classe será definida aqui. o Main é o nome usado para identificar a classe. Toda definição de classe, inclusive todo o código e os dados, estará entre as chaves { e } que encontram-se nas linhas 3 e 8 deste exemplo. • Linha 4. public static void Main(String[] args) o A linha 4 contém a declaração do método main. Este método é simplesmente um ponto de partida para o interpretador Java. É por onde será iniciada a execução. o O método main deverá ser sempre declarado na forma acima. 23 Primeiro Programa - Exemplo • Linha 6. System.out.println("Olá Mundo"); o Esta linha executa o método println do objeto out. Este objeto é uma instância da classe OutputStream e foi declarado como variável de classe (static) na classe System. Esse método imprime na tela uma mensagem texto, no caso, “Olá Mundo”. Por causa do modelo de objeto, uma saída simples em tela é difícil de entender. Por isso, até aprofundarmos o conhecimento suficientemente, pense apenas em: System.out.println como um método para impressão na tela (saída do console). 24 Estruturas Fundamentais de Programação Java • Espaço em branco o Java é uma linguagem de formato livre. Não é necessário endentar para que ela funcione corretamente. Por exemplo, o nosso programa “Olá Mundo” poderia ser escrito da seguinte maneira: public class Main{public static void main(String[] args) {System.out.println("Olá Mundo");}} 25 Estruturas Fundamentais de Programação Java • Comentários o Os comentários em código-fonte podem ser de 3 tipos, de uma linha, de várias linhas e de documentação. o Os comentários de uma linha // esta é uma variável do tipo int o Os comentários de várias linhas /* esta é uma variável do tipo int e todas as variáveis dessa classe são Também do tipo int porque os valores atribuídos são do tipo inteiro */ o Os comentários de documentação /** este comentário serve para mostrar o uso da ferramenta JavaDoc para gerar documentação HTML */ 26 Estruturas Fundamentais de Programação Java • Palavras-chave reservadas o São usadas para identificar tipos, modificadores e mecanismos de controle de fluxo. Essas palavras, juntamente com os operadores e separadores, formam uma definição da linguagem Java. Elas não podem ser utilizadas como nome de variável, método ou classe. 27 Estruturas Fundamentais de Programação Java • Identificadores o Os identificadores são as palavras usadas para nomes de classes, métodos e variáveis. Um identificador pode ser qualquer sequência de caracteres de letras maiúsculas e minúsculas, números e caracteres de sublinhado. Mas observer: • Não podem começar com números para serem identificados como literais numéricos e • A linguagem Java é sensível a maiúsculas e minúsculas, por isso o identificador Valor ≠ valor Nome ≠ nome Endereco ≠ endereco 28 Estruturas Fundamentais de Programação Java • Convenções para nomes de identificadores o Variáveis e métodos – devem ser definidos com letras minúsculas. No caso do identificador ser formado por mais de um termo, o segundo termo e os termos seguintes devem iniciar com letra maiúscula. As variáveis são compostas por substantivos e adjetivos, enquanto os nomes dos métodos começam sempre com um verbo. o Exemplos: hora horaDoDia valorCorrente obterHoraDoDia ( ) 29 Estruturas Fundamentais de Programação Java • Classes o Os nomes das classes são escritas em minúsculo com a primeira letra em maiúscula. Para os nomes compostos por mais de um termo, usase começar os termos seguintes com letra maiúscula. Os nomes de classes Java são formados por substantivos e adjetivos. o Exemplos: InterfaceSimples Interface CalculaMaiorNumero 30 Estruturas Fundamentais de Programação Java • Declaração Import o Para utilizar os pacotes Java, usa-se a declaração de importação que define onde o compilador pode encontrar as classes destes pacotes. A declaração de importação import deve preceder a declaração de todas as classes. o O compilador irá procurar por pacotes dentro dos diretórios especificados na variável de ambiente classpath. Um pacote pode ainda estar compactado dentro de um arquivo JAR. 31 Estruturas Fundamentais de Programação Java • Tipos primitivos de dados o Java tem 8 tipos simples de dados que podem ser classificados em quatro grupos: o Inteiros: byte, short, int, long – que são usados para números inteiros. o Números de ponto flutuante: float, double – que são todos os números com precisão de fração. o Caracteres: char. o Valores lógicos: boolean – que é um tipo especial usado para representar valores lógicos. 32 Estruturas Fundamentais de Programação Java 33 Estruturas Fundamentais de Programação Java • Declaração e Inicialização de Valores o As variáveis do tipo byte, short, int, long, float, double, char e boolean podem ser declaradas de acordo com uma das formas exibidas abaixo: o As variáveis de dentro de uma classe não inicializadas recebem por default o valor 0 (zero). o As variáveis locais de dentro de um método não são inicializadas por default e por isso é gerado um erro de compilação, quando não são inicializadas e são acessadas. 34 Estruturas Fundamentais de Programação Java • Criar variáveis de cada tipo e exibir seus respectivos valores 35 Estruturas Fundamentais de Programação Java • Criar variáveis de cada tipo e exibir seus respectivos valores 36 Linguagens de Programação III Aula 02 Profa Cristiane Koehler [email protected]