Disciplina: Linguagem de Programação Notas de Aula 01: Introdução à linguagem de programação Java e ao ambiente de desenvolvimento NetBeans Objetivos da aula: Introduzir conceitos da linguagem Java Apresentar um histórico da linguagem Apresentar as principais características da linguagem Introduzir o ambiente NetBeans e a JDK Apresentar a estrutura e os comandos principais do Java Introdução A disciplina de Linguagem de Programação objetiva introduzir os conceitos da Programação Orientada a Objetos (POO). Para tanto, utiliza como ferramenta a linguagem Java, que é uma linguagem nativamente projetada para ser orientada a objetos e que possui ampla utilização no mercado. Ainda que a linguagem Java não seja o foco da disciplina, vamos utilizá-la como ferramenta. Então, torna-se necessário que nesta primeira aula nos dediquemos ao Java. Esta tarefa é simplificada e pode ser cumprida em uma aula pois a sintaxe e a semântica dos comandos Java é extremamente semelhante (praticamente igual) à sintaxe e semântica dos comandos C e C++ já utilizados nas disciplinas anteriores do curso. Histórico Primeira versão disponível ao público pela Sun Microsystems (1995); Green Group(1991); Oak; Green OS(GUI); *7 (PDA); Java (94); WebRunner(HotJava)(95);JDK: 1.0(95);1.1(97);1.2(J2SE);1…8. Edições Java SE (Standard Edition): principais artefatos da linguagem para versões desktop e web; Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação Java EE (Enterprise Edition): mapeamento objeto-relacional, internet, servidores e outros ambientes distribuídos; Java ME (Java 2 Platform, Micro Editions): mobiles e set-top boxes. Características Orientada a objetos Independente de plataforma Sem ponteiros Performance Segurança Multi-thread Recursos JDK (Java Development Kit) o Compilador o Máquina Virtual e JRE (Java Runtime Environment). o Visualizador de Applets o Bibliotecas de desenvolvimento o Programa para composição de documentação (javadoc) Ambientes visuais o Visual j++, J Builder, Visual Café, VisualAge for Java, Jblue, Jedit, JCreator, NetBeans, Eclipse ... Arquivos básicos o .java o .class Editando... Compilando... Executando... Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação Implantação do ambiente de desenvolvimento Java Instalação da JDK (Java Development Kit) A JDK não é um ambiente visual de programação. É composto apenas de ferramentas que podem ser utilizadas através da linha de comando (terminal de comandos). Atualmente é chamado de J2SE, Java 2 Standard Edition. Deve ser usado um editor de texto qualquer como o Notepad, mas existem alguns editores que incorporam funções de compilação e execução como o Textpad, o JCreator, JBuilder, BlueJ, etc. (todos necessitam da JDK para estas funções). Existem ambientes de desenvolvimento mais integrados e visualmente projetados para facilitar a programação e a depuração. São exemplos destes ambientes o NetBeans e o Eclipse. Baixar e executar a versão mais atual que estiver disponível em http://www.oracle.com/technetwork/java/javase/downloads/jdk8downloads-2133151.html?ssSourceSiteId=otnpt do arquivo .exe (Windows) ou .sh (Linux) com o Java SE. Serão instalados, no diretório que você escolher, o JAVA SDK, que contém o compilador e o interpretador JAVA, o JRE (JAVA Runtime Environment) que contém a JVM (JAVA Virtual Machine) e o plugin JAVA para navegadores. Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação Instalação do NetBeans: Esta ferramenta de desenvolvimento já possui mais recursos de depuração dos programas, comporta desenvolvimento paralelo em equipe, está integrada com aplicativos de controle de versões, gerenciamento de projetos, e ferramentas de projeto de arquitetura de software. Enfim, é uma ferramenta mais completa e profissional para desenvolvimento de projetos e é a ferramenta que utilizaremos nesta disciplina. Baixar e executar a versão mais atual do aplicativo que estiver disponível em https://netbeans.org/downloads/index.html. Instalação do NetBeans + JDK A Oracle oferece a possibilidade do download combinado das versões mais recentes da JDK e do NetBeans. No entanto, por virtude de legados ou de compatibilidade com componentes de terceiros, muitas vezes optamos por fazer o download de forma separada. Quando o desenvolvimento parte do zero, a opção de instalação combinada é a mais adequada e prática. Para isso, faça o download do Netbeans mais a JDK em: http://www.oracle.com/technetwork/pt/java/javase/downloads/index. html. Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação Sobre os Nomes de Arquivos Java Os nomes de arquivos fonte em Java devem ter a extensão “.java" e o nome do arquivo deve ser o mesmo nome da classe. Java é Case Sensitive, ou seja, diferencia maiúsculas e minúsculas. Tome cuidado ao escrever o nome do arquivo e da classe Java. Existe uma convenção para escrita de códigos em Java. Ao longo das aulas, essa convenção será abordada. A convenção está disponível em: http://www.oracle.com/technetwork/java/codeconventions-150003.pdf Primeiro programa em Java Abra o NetBeans. Crie um novo projeto (Arquivo -> Novo Projeto) e, na primeira tela, escolha a categoria Java e projeto como Aplicativo Java. Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação Na segunda tela, nomeie o projeto como Primeiro. A janela de edição que abre possui o seguinte aspecto: package primeiro; public class Primeiro { public static void main(String[] args) { // TODO: Add your code here } } Substitua o comentário dentro do main, por um programa que calcule a média de duas variáveis. O código é o seguinte (em vermelho): Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação package primeiro; public class Primeiro { public static void main(String[] args) { int a, b; float media; a = 2; b = 3; media = (a + b) / 2; System.out.println ("A média de " + a + " e " + b + " = " + media); } } Compile o projeto e execute-o (tecla F6). Na janela “Resultados do teste” deve aparecer: A média de 2 e 3 = 2.0 Sintaxe básica Tipos de dados. O Java possui os seguintes tipos básicos: GRUPO INTEIROS PONTO FLUTUANTE CARACTERES LÓGICOS TIPO byte short int TAMANHO 1 byte 2 bytes 4 bytes long float double char boolean 8 bytes 4 bytes 8 bytes 2 bytes (Unicode) 1 byte VALORES POSSÍVEIS –128 até 127 (-27 a 27-1) –32.768 até 32.767 (-215 a 215-1) –2.147.483.648 até 2.147.483.647 (-231 a 231-1) (-263 a 263-1) 1,40 X 10-45 a 3,40 X 1038 4,94 X 10-324 a 1,70 X 10308 ‘\u0000’ a ‘\uFFFF’ (0 a 65535) true ou false Comentários (duas formas): // Esta linha é um comentário /* Estas duas linhas ... ... são um único comentário */ Identificadores: o Case Sensitive (letras, dígitos, ‘_’, ‘$’). o Não podem ser iniciados com dígitos. Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação Convenção: iniciar variáveis com minúsculas. Usar maiúsculas entre os nomes, caso o identificador seja um nome composto. Não usar ‘_’ em identificadores com nomes compostos. A mesma regra se aplica para objetos e nomes de métodos (veremos essas definições mais adiante) Identificadores também não podem ser palavras reservadas da linguagem. A lista de palavras reservadas é a seguinte: abstract boolean break byte case catch char class continue default do double else extends false final finally float for if implements import instanceof int interface long native new null package private protected public return short static super switch synchronized this Exemplos de declaração de variáveis: float soma, media, mediaPonderada; int i, j, contadorNotas; boolean terminou; char primeirOpcao = ‘S’; double valor = 97.36458; } Operadores aritméticos: Operador + * / % + Significado Adição Subtração Multiplicação Divisão Resto da divisão inteira Sinal negativo (- unário) Sinal positivo (+ unário) Exemplo a+b s-b a*b a/b a%b -a +a Casos especiais: operadores de Incremento e Decremento Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. throw throws transiente true try void while Disciplina: Linguagem de Programação Operador ++<variável> <variável>++ --<variável> <variável>-- Significado Pré-incremento. Incrementa a variável de 1 e depois utiliza o novo valor na expressão Pós-incremento. Utiliza o valor atual da expressão e depois incrementa de 1. Pré-decremento. Decrementa a variável de 1 e depois utiliza o novo valor na expressão Pós-decremento. Utiliza o valor atual da expressão e depois decrementa de 1. Exemplo ++a a++ --a a++ Suponha c =5 e d = 5; Expressão System.out.println(c + " " + (c++) + " " + c ); Resultado 5 5 6 System.out.println(d + " " + (++d) + " " + d ); 5 6 6 Casos especiais: operadores compostos A linguagem Java possui vários operadores compostos de atribuição para abreviar expressões de atribuição. Qualquer instrução na forma <variável> = <variável> <operador> <expressão>; onde o <operador> seja +, -, *, / ou %, pode ser escrita na forma: <variável> <operador>= <expressão>; Por exemplo, a instrução: c = c + 3; pode ser abreviada com o operador composto de atribuição de adição: c += 3; Suponha: int c = 3, d = 5, e = 4, f = 6, g = 12; Operação += -= *= /= %= Forma abreviada c+=7 d-=4 e*=5 f/=3 g%=9 Forma abreviada c=c+7 d=d-4 e=e*5 f=f/3 g=g%9 Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Resultado 10 1 20 2 3 Disciplina: Linguagem de Programação Operadores relacionais: Operador Significado Exemplo == != > >= < <= Igual Diferente Maior que Maior ou igual a Menor que Menor ou igual a a == b a != b a>b a >= b a<b a <= b Operadores lógicos: Operador && || ! Significado E lógico (AND) OU lógico (OR) Negação (NOT) Exemplo a && b a || b !a Um “bloco” é um grupo de instruções delimitado por chaves {...}: { a = 2; b = c = d = 0; d = (a + b) * (++a) / (1 – c); } Instruções de desvio: if-else if (expressão_lógica) instrução_1; else instrução_2; if (a == b) System.out.println (“Valores iguais.”); else System.out.println (“Valores diferentes.”); Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação Instruções de desvio: switch-case switch (expressão_ordinal) { case ordinal_1 : instrução_1; break; case ordinal_2 : instrução_2; break; default: instrução_N; } switch (letra) { case ‘a’ : case ‘A’ : System.out.println (“Letra ‘a’ ou ‘A’”); break; case ‘z’ : case ‘Z’ : System.out.println (“Letra ‘z’ ou ‘Z’”); break; default : System.out.println (“Outra letra”); } Instruções de repetição: for for (iniciação; condição_de_execução; incremento) instrução; int i; for (i=0; i<10; i++) System.out.println (“iteração “ + i); Instruções de repetição: while while (expressão lógica) instrução; Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação int i = 0; while (i<10){ System.out.println (“iteração “ + i); i++; } Instruções de repetição: do-while do instrução; while (expressão_logica) int i = 0; do { System.out.println (“iteração “ + i); i++; } while (i<10); Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc. Disciplina: Linguagem de Programação Exercícios 1) Utilizando a ferramenta NETBEANS, crie um projeto contendo um programa que defina duas variáveis inteiras (x e y), que atribua a elas valores quaisquer (inicie as variáveis com valores à sua escolha) e que imprima o maior dos valores. 2) Utilizando a ferramenta NETBEANS, crie um projeto contendo um programa que defina duas variáveis inteiras (x e y), atribua a elas valores quaisquer (inicie as variáveis com valores à sua escolha) e que imprima diferentes mensagens caso os valores sejam ou não múltiplos um do outro. 3) Utilizando a ferramenta NETBEANS, crie um projeto contendo um programa que defina duas variáveis inteiras (x e y), que atribua a elas os valores 3 e 4 e que calcule o valor de xy. Professores: José Gomes de Carvalho Júnior, D.Sc. Pablo Rangel, D.Sc.