COLÉGIO ESTADUAL PEDRO MACEDO Ensino Profissionalizante Internet e Programação Web 4° Técnico – Prof. Cesar 2014 1 O que é o Java ? O Java é: * Uma liguagem de programação; * Um ambiente de desenvolvimento; * Um ambiente de aplicação; O Java é resultado de uma busca por uma linguagem de programação que pudesse fornecer uma ligação com o C++, mas com segurança. Os primeiros objetivos alcançados com desenvolvimento desta nova linguagem foram: * Criação de uma linguagem orienta a objetos; * Fornecimento de um ambiente de desenvolvimento por dois motivos: * Velocidade no desenvolvimento - eliminando o ciclo de compilar-linkarcarregar-testar; * Portabilidade do Código - com um interpretador que especifica a forma do nível do sistema operacional. ( Pode rodar em qualquer tipo de sistema operacional); * Não tem acesso a ponteiros do sistema operacional; * Fornece dinamismo durante a manutenção de programas; Garbage Collection (Libera uma coleção) O Java não segura áreas de memória que não estão sendo utilizadas, isto porque ele tem uma alocação dinâmica de memória em tempo de execução. No C e C++ (e em outras linguagens) o programa desenvolvido é responsável pela alocação e desalocação da memória. Durante o ciclo de execução do programa o Java verifica se as variáveis de memória estão sendo utilizadas, caso não estejam o Java libera automaticamente esta área que não esta sendo utilizada. 2 Segurança no Código Os arquivos do Java são compilados e são convertidos de arquivos texto para um formato que contém blocos independentes de bytes codes (Código Intermediário). Em tempo de execução estes bytes codes são carregados, são verificados através do Byte Code Verifier (uma espécie de segurança), passam asseguir para o interpretador e são executados. Caso este código seja acionado diversas vezes, existe um passo chamado JIT Code Generator, que elimina o utilização por demasia do tráfego da rede. Class Loader Javac T1.java Byte Code Verifer T1.class Runtime hardware Abra o Notepad e crie o seguinte programa. Salve-o como Projeto0001.java public class Projeto0001 { public static void main (String arg []) { System.out.println("Olá mundo"); } } // código explicado public class Projeto0001 { public static void main (String arg []) /* Public todos podem acessar Static Void não haverá dado de retorno Main nome do médoto (String arg []) argumentos do método. Esse metodo deve receber uma matriz de strings e a matriz chamara args*/ { //chave de abertura do médoto 3 System.out.println("Olá mundo "); // toda instrução deve terminar com ponto e virgula. } } Após terminar o programa compile-o e execute-o: C:\.....\Javac Progr0101.java C:\.....\ Java Prog0101 import javax.swing.JOptionPane; public class Projeto0002 { public static void main (String[] args) { JOptionPane.showMessageDialog(null, "Olá mundo"); } } 4 Capítulo 02 Comentários Estes são os três tipos permitidos de coméntarios nos programas feitos em Java: // comentário de uma linha /* comentário de uma ou mais linhas */ /** comentário de documentação */ (Arquivos de documentação) Ponto e vírgula, Blocos e o espaço em branco * No java, os comandos são terminados com o sinal de ponto e vírgula (;) * Um bloco tem iníco e tem o seu fim representados pelo uso das chaves {}; * O uso do espaço em branco permite uma melhor visualização dos comandos e em consequencia facilita a sua manutenção. Identificadores Na linguagem Java um identificador é startado com uma letra, undersco ( _ ), ou sinal de dólar ($), e existe uma diferenciação entre letras maiúsculas e minúsculas: Identificadores válidos: * identifier * userName * User_name * _sys_var1 *$change Tipos Básicos no Java No Java existem oitos tipos básicos e um tipo especial. Tipo Lógico - boolean: on e off; true e false ou yes e no. Tipo Textual - char e String 5 Um caracter simples usa a representação do tipo char. O tipo char representa na forma Unicode um caracter de 16-bit. O literal do tipo char pode ser representado com o uso do (‘ ‘). ‘\n’ – nova linha ‘\r’ – enter ‘\u????’ – especifica um caracter Unicode o qual é representado na forma Hexadecimal. ‘\t’ – tabulação ‘\\’ - \ ‘\” ”’ - “” O tipo String, como não é primitivo, é usado para representar uma seqüência de caracteres. Palavras Reservadas abstract boolean breaak 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 throw throws transient true try void volatile while Tipo Integral – byte, short, int e long Existem quatro tipos de integral: Tamanho da Integral Nome ou Tipo Espaço 8 bits 16 bits 32 bits 64 bits byte short int long -27 . . . . 27 - 1 -215 . . . . 215 - 1 -231 . . . . 231 - 1 -263 . . . . 263 - 1 6 Tipo Ponto Flutuante Uma variável do tipo ponto flutante pode ser declarada usando a palavar float ou double. 3.14 6.02E23 2.718F 123.4E+306D Um ponto flutuante simples; Um valor de ponto flutuante largo; Um valor de ponto flutuante simples; Um valor de ponto flutuante usando o tipo double. Convenção de Código no Java Class - Nomes de classes podem ser maiúsculas ou minúsculas ou misturado (maiúsculas e minúsculas), mas por convenção o nome das classes começam por letra maiúscalas.; Interfaces - Nomes de Interfaces suportam nomes iguais aos das classes; Métodos - Nomes de métodos podem ser verbos, podendo misturar entre maiúsculas e minúsculas, sendo entretando a primeira letra maiúscula; Constantes - Nomes de constantes podem ser maiúsculas, minúsculas, misturadas, separadas com underscores. Variáveis - Todas as instancias, classes e variáveis globais suportam maiúsculas e minúsculas. Controles de Estruturas- Convencionou-se o uso de { } (chaves); Espaços - Convencionou-se o uso de quatro espaços para identações; Comentários - Use os comentários para explicar os segmentos de código que não são obvios. 7 Exercícios: 1 – Implemente um programa que apresente uma mensagem de erro ao usuário. Nome do projeto – Exercicio0001 2 – Implemente um programa que apresente uma mensagem de saudações ao usuário. Nome do projeto – Exercicio0002 3 – Implemente um programa que apresente uma mensagem de erro “usuário ou senha incorreto”. Nome do projeto – Exercicio0003 8 Capítulo 03 Variáveis e Tempo de vida Você tem dois meios para descrever variáveis: usando o tipo simples de ligação int e float ou usando tipos de classes definidas pelo programa. Você pode declarar variáveis de duas formas, uma dentro de um método e a outra dentro da classe a qual este método está incluído. Inicialização de variáveis No Java não é permitido o uso de variáveis indefinidas. Variáveis definidas dentro do método são chamadas de variáveis automáticas, locais, temporárias ou estáticas e devem ser inicializadas antes do uso. Quando um objeto é criado, as variáveis membro são inicializadas com os seguintes valores em tempo de alocação: Tipo de variável byte short int long float Double Char Boolean Valor inicial 0 0 0 0L 0.0f 0.0d ‘\u0000’ (Null) false Tamanho 8 bits 16 bits 32 bits 64 bits 32 bits 64 bits 64 bits public class Projeto003 { public static void main (String arg []) { int a = 5; a = a + 5; System.out.println(" O valor da variavel a = " + a); } } Operadores No Java os operadores são muito similares ao estilo e funcionalidade de outras linguagens como por exemplo o C e o C++. Pré-incremento: 9 x = 10; x = x + 1; O valor da variável x é 11 ou x = 10; ++x O valor da variável x é 11. Pós-Incremto: x = 10; x = x + 1; O valor da variável x é 11 ou x = 10; x++ O valor da variável x é 11. Diferença entre o Pré-Incremento e o Pós-Incremento: x = 10 ++x => neste exato momento a variável a vale 11 x =10 x++ => neste exato momento a variável x vale 10 Separadores: . [] () ; , Operadores: Operadores == != +-*/ && || Descrição Igualdade Negação Aritméticos e ou Concatenação O operador + é utilizado para concatenar objetos do tipo String, produzindo uma nova String: 10 String PrimeiroNome = “Antonio”; String SegundoNome = “Carlos”; String Nome = PrimeiroNome + SegundoNome; Casting ( Conversão de tipos ) A linguagem Java não suporta conversões arbitrárias de tipos de variáveis. Você deve explicitar a conversão entre tipos de variáveis. Exemplo: long bigval = 6; // Operação válida int smallval = 99L; // Operação inválida porque são de tipos diferentes float z = 12.414F; // Operação válida float zp = 12.414; // Operação inválida porque esta tentando atribuir um valor double. Convertendo Long bigValue = 99L; Int squashed = (int)(bigValue); Exercícios: 4 – Implemente um programa que receba o salário de R$ 2.500 subtrai R$ 60 de vale refeição, e apresente o valor final. Nome do projeto – Exercicio0004 5 – Implemente um programa que some o salário de R$ 2.500 mais a comição de R$ 4.000, e apresente o valor final. Nome do projeto – Exercicio0005. 6 – Implemente um programa que receba o salário de R$ 2.500 subtrai R$ 60 de vale refeição, R$ 20 do plano de saúde e R$ 135 de INSS. Nome do projeto – Exercicio0006. 7 – Implemente um programa que tenha uma variável que receba o nome da pessoa e uma variável que receba o sobrenome. No final do programa apresente o nome e o sobrenome concatenado. Nome do projeto – Exercicio0007. 8 – Implemente um programa que receba a base e a altura de um triângulo. Em seguida, escreva a área do mesmo. Obs.: Área = ( Base * Altura ) / 2 11 Nome do projeto – Exercicio0008. 9 – Implemente um programa que calcule o comprimento de um circunferência tendo o raio como valor de entrada. Comprimento = 2*pi*r Nome do projeto – Exercicio0009. 10 – Dado as seguintes informações de um funcionário: Nome, idade, cargo e o seu salário bruto considere: a) O salário bruto teve um reajuste de 38%. b) O funcionário receberá uma gratificação de 20% do salário bruto. c) O Salário total é descontado em 15% Implemente um programa para: • Imprimir Nome, idade e cargo. • Imprimir o salário bruto. • Imprimir o salário líquido. Nome do projeto – Exercicio0010. Controle de Fluxos Declarações de Fluxos If, else if (expressão) // expressão cujo retorno é um valor do tipo boolean { Declarações ou blocos } else // caso a condição anterior não seja satisfeita { Declarações ou blocos } public class Projeto0004 { public static void main(String[] args) { int nota = 6; if(nota >= 8){ System.out.println("Aprovado"); 12 }else{ System.out.print("Reprovado"); if(nota >= 6){ System.out.println(", Mas pode fazer a recuperacao"); } } } } switch switch (expressão) // Esta expressão deve ser do tipo int ou char { case cond01: declarações; break; // usado para sair do case. case cond02: declarações; break; case cond03: declarações; break; } public class Projeto0005 { public static void main(String[] args) { char nota = 'A'; switch (nota) { case 'A': System.out.println("Aprovado"); break; case 'B': System.out.println("Aprovado"); break; case 'C': System.out.println("Aprovado"); break; default: System.out.println("Reprovado"); } } 13 } for Loops for (expr_inicial; condição_boolean; incremento) { Declarações ou blocos; } public class Projeto0006 { public static void main(String[] args) { int numero = 10; for(int x=0; x < numero; x++){ System.out.println(x); } } } while Loops while(condição_boolean) { Declarações ou blocos; } public class Projeto0007 { public static void main(String[] args) { int i = 1; while (i<2) { System.out.println("while: " + i); i++; } } } do Loops do { Declarações ou blocos; 14 } while(condição_boolean); public class Projeto0008 { public static void main(String[] args) { int i = 1; do{ System.out.println("Do while: " + i); i++; }while(i<2); } } Exercícios: 11 – Implemente um programa que: • leia três valores X,Y e Z ; • verifica se eles podem ser os comprimentos de um triângulo (um lado não pode ser maior que a soma dos outros dois lados do triângulo); • se puderem, verifique se é um triângulo equilátero (todos os lados iguais), isósceles (dois lados iguais) ou escaleno. Caso contrário imprima uma mensagem. Nome do projeto – Exercicio0011 12 – Uma empresa decidiu dar um aumento de salário a seus funcionários, mas de maneira diferenciada. Para quem ganha abaixo de R$ 1000,00 (inclusive), o aumento foi de 15%. Entre R$ 1.000 e R$ 1.500,00 (inclusive) o aumento foi de 10%. Acima de R$ 1.500 o aumento foi de 5%. Elabore um algoritmo que calcule o novo salário a partir da leitura do salário atual do funcionário. Nome do projeto – Exercicio0012. 13 – Em uma determinada escola, um aluno é recomendado para obter bolsa de estudo somente se possuir média acima de 8,5 e ter frequência maior que 70% ou 15 se sua renda familiar mensal for inferior a 500 reais. Elabore um algoritmo que leia as informações de um aluno e imprima se o mesmo pode ou não receber bolsa. Nome do projeto – Exercicio0013. 14 – A empresa Fortex vai pagar um bônus de fim-de-ano aos seus funcionários. Faça um algoritmo para ler o salário de um funcionário (em reais) e seu tempo de trabalho na empresa (em anos), e depois imprima este salário com um bônus, de acordo com os critérios abaixo: • Para salários até R$ 400,00 inclusive – bônus de 15% • Para salários entre R$ 401,00 e R$ 1000,00 inclusive – bônus de 12% • Para salários acima de R$ 1000,00 – bônus de 5% Todos funcionários com pelo menos 3 anos de casa também ganham um bônus extra de 105 sobre o salário-base. EX: R$ 1000,00 e quatro anos de casa: bônus de R$ 120,00 (12%) mais R$ 100,00 (10%) => Total: R$ 1220,00. Nome do projeto – Exercicio0014. 15 – Implemente um programa que apresente o menu das opções a seguir, permita ao usuário escolher a opção desejada, receba os dados necessários para executar a operação e mostre o resultado. Verifique a possibilidade de opção inválida e não se preocupe com restrições como salário negativo. OBS: utilizar o CASE; Menu de opções: 1 – Imposto 2 – Novo Salário 3 – Classificação < Digite a opção desejada > Na opção 1: Receber o salário de um funcionário, calcular e mostrar o valor do imposto, usado as regras a seguir: SALÁRIO Menor que R$500,00 De R$ 500,00 à R$ 850,00 Acima de R$ 850,00 PERCENTUAL IMPOSTO 5% 10% 15% Na opção 2: Receber o salário de um funcionário, calcular e mostrar o valor do novo salário, usado as regras a seguir: SALÁRIO Maiores do que R$ 1500,00 De R$ 750,00 à R$ 1500,00 De R$ 450,00 à R$ 749,00 Menores que R$ 450,00 AUMENTO R$ 25,00 R$ 50,00 R$ 75,00 R$ 100,00 Na opção 3: Receber o salário de um funcionário e mostrar a classificação usando a tabela a seguir: 16 SALÁRIO Até R$ 700,00 Maiores que R$ 700,00 CLASSIFICAÇÃO Mal Remunerado Bem Remunerado Nome do projeto – Exercicio0015. 16 – Implemente um programa que receba a idade e o peso de 15 pessoas. Calcule e mostre as médias dos pesos das pessoas da mesma faixa etária. As faixas etárias são: de 1 a 10 anos, de 11 a 20 anos, de 21 a 30 anos e acima de 31 anos. Nome do projeto – Exercicio0016. 17 – Implemente um programa que receba a idade e o peso de 15 pessoas. Calcule e mostre as médias dos pesos das pessoas da mesma faixa etária. As faixas etárias são: de 1 a 10 anos, de 11 a 20 anos, de 21 a 30 anos e acima de 31 anos. Nome do projeto – Exercicio0017. 18 – Uma empresa fez uma pesquisa de mercado para saber se as pessoas gostaram ou não de um novo produto lançado no mercado. Para isso forneceu o sexo do entrevistado e e sua resposta (S- Sim ou N- Não). Sabe-se que foram entrevistadas 10 pessoas. Faça um programa que calcule e mostre: - o número de pessoas que respondeu sim; - o número de pessoas que respondeu não; - o número de mulheres que respondeu sim; - a percentagem de homens que respondeu não entre todos os homens analisados. OBS: utilize o DO WHILE Nome do projeto – Exercicio0018. 17