JAVA Professora Flabiana Felipe Apresentação do Curso. Mercado de Trabalho. Java no Mercado de Trabalho. O que é Linguagem de Programação? Exemplos de Linguagem de Programação. Java-Uma Linguagem Orientada a Objetos. E como funciona? Introdução á Linguagem Java,seus principais conceitos,estruturas,aplicações utilizando o programa NetBeans; Capacitação para o Mercado; O Mercado de trabalho x Capacitação; Mercado de trabalho x Postura; Programa de Computador Um programa de computador ou programa informático é uma coleção de instruções que descrevem uma tarefa a ser realizada por um computador. Ex:Internet,Word,Windows Windows O Windows e o um programa operacional ele e quem comanda todos os outros programas e nele que os programas são instalados,como Internet,Word e ect... O Windows e a primeira tela quando você liga o computador. As pastas são locais no computador aonde colocamos nossos trabalhos,textos,músicas,fotos a serem guardadas no computador. Ex; Na prática é como se você tivesse um arquivo desses de escritório, com algumas gavetas, várias pastas dentro de cada gaveta e assim por diante. No caso do Windows é muito semelhante, como você confere no exemplo abaixo, que mostra as pastas mais utilizadas pelos usuários: Faixa Salarial:2.000,00 até 6.000,00. Níveis de Conhecimento e experiências: Junior, Pleno e Sênior. JAVA Uma linguagem de programação é um método padronizado para comunicar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. PROGRAMA FRITAR_OVO RESERVAR OVO, FRIGIDEIRA, SAL, MANTEIGA ; USAR FOGÃO; COLOCAR FRIGIDEIRA NO FOGÃO; COLOCAR MANTEIGA NA FRIGIDEIRA; LIGAR FOGÃO; ESPERAR MANTEIGA FICAR QUENTE; QUEBRAR OVO; DERRAMAR OVO NA FRIGIDEIRA; COLOCAR SAL NO OVO; ESPERAR OVO FICAR FRITO; DESLIGAR FOGÃO; SERVIR OVO; END PROGRAMA Somar (5,6): Resultado 11 def somar(num1, num2): return num1 + num2 – Cálculo da média de um aluno: – Obter as notas da primeira e da segunda prova – Calcular a média aritmética entre as duas – Se a média for maior ou igual a 7, o aluno foi aprovado, senão ele foi reprovado – Troca de um pneu furado: – Afrouxar ligeiramente as porcas – Suspender o carro – Retirar as porcas e o pneu – Colocar o pneu reserva – Apertar as porcas – Abaixar o carro – Dar o aperto final nas porcas Algoritmo Média Var N1, N2, Média Início Leia N1, N2 Média := (N1+N2)/2 Se Então Média >= 7 Escreva “Aprovado” Senão Escreva “Reprovado” Fim. Algoritmo soma; Declare X:Inteiro; Y:Inteiro; SOMA:Inteiro; Inicio Leia X; Leia y; Y := X + Y; Escreva Y; Fim Algoritmo Exemplo_comando_de_saída_de_dados Var preço_unitario, preço_total: real quant : inteiro Início preco_unitario:= 5.0 quantidade := 10 preço_total:= preço_unitario* quantidade Escreva preço_total Fim. Algoritmo Ordenacao; Declare A:Inteiro; B:Inteiro; Inicio Leia A; Leia B; SE A > B Então Inicio Escreva B, A; Fim Senão Inicio Escreva A, B; Fim Fim http://www.youtube.com/watch?v=Ui72gDqUIGo &feature=related http://www.youtube.com/watch?v=FBrIPhiTmWk http://www.youtube.com/watch?v=k32yQDLoqSw &feature=relmfu Java e uma linguagem de programação que usa objetos do mundo real e se comunica entre eles. A origem da Linguagem Desenvolvida e concebida pela SunSoft, Herança do C++, Totalmente orientada a objetos; Independente da Plataforma; Quase idêntica ao C++; Orientada a Web; Fácil de Programar; Rápida programação; Segura e redução de erros. Jogos para Celulares; Web; Cartões; Smartphones; Java C ++ VB.NET Cobol Delphi O que são Objetos? De um modo geral podemos encarar os objetos como sendo os objetos físicos do mundo real, tal como: carro, avião, cachorro, casa, telefone, computador, etc., Os objetos conversam uns com os outros através de mensagens. Vantagens: Sensível redução no custo de manutenção do software. Aumento na reutilização de código. 1-O que é uma Linguagem de Programação?Mencione alguns exemplos. 2-O que são objetos em Java? 3-Quais são as vantagens da Linguagem Java? 4- Onde o Java pode ser utilizado? 5-Faça um algoritmo “Lavar Roupa”. 6-Quais são as características da Linguagem Java? 7- Site outros tipos de Linguagem parecidas com o Java que são orientadas a objetos. 8- Qual e a origem da Linguagem Java? 9-O que são programas de computador?De exemplos. Java Virtual Machine; Compiladores e Interpretadores; Vantagens e Desvantagem do Interpretador; Java e suas Edições. Máquina virtual Java (do Inglês Java Virtual Machine - JVM) é um programa que carrega e executa os aplicativos Java, convertendo os bytecodes (forma intermediária de código) em código executável de máquina. A JVM é responsável pelo gerenciamento dos aplicativos, à medida que são executados. Graças à máquina virtual Java, os programas escritos em Java podem funcionar em qualquer plataforma de hardware e software que possua uma versão da JVM, tornando assim essas aplicações independentes da plataforma onde funcionam. O computador tem sua própria linguagem que e o código binário. Binário por que ele trabalha com 0 e 1. Compiladores e interpretadores são formas de tradução de um código geralmente de alto nível para um código que o computador (a máquina) interprete. Este tradutor tem a função de traduzir uma linguagem abstrata para uma linguagem binária. Um compilador é um programa que traduz o código-fonte de um programa em um (ou mais) executáveis. Por exemplo, se eu quiser fazer um programa que mostre a mensagem: "Hello World!" e quiser usar a linguagem de programação c, eu posso usar o código-fonte: #include <stdio.h> void main() { printf("Hello World!"); } Depois o compilador transforma o código-fonte em um arquivo executável que você poderá usar para ver esta mensagem. O nome "compilador" é usado principalmente para os programas que traduzem o código de fonte de uma linguagem de programação de alto nível para uma linguagem de programação de baixo nível (por exemplo, linguagem de montagem assembly ou código de máquina O código compilado é mais rápido de ser acessado; Impossibilita ou pelo menos dificulta ser quebrado e visualizado o código-fonte original; Permite otimização do código por parte do compilador; Compila o código somente se estiver sem algum erro. Para ser utilizado o código precisa passar por muitos níveis de compilação; Assim como vantagem a possibilidade de não poder visualizar o código-fonte, pode ser uma desvantagem; Processo de correção ou alteração do código requer que ele seja novamente recompilado. O interpretador ao contrário do compilador roda o código-fonte escrito como sendo o código objeto, ele traduz o programa linha a linha, o programa vai sendo utilizado na medida em que vai sendo traduzido. Cada execução do programa precisa ser novamente traduzido e interpretado. O interpretador analisa sintaticamente e semanticamente o código, se estas duas etapas forem realizadas e executadas de forma correta o código está pronto para funcionar. Correções e alterações são mais rápidas de serem realizadas; Código não precisa ser compilado para ser executado; Multiplataforma; Compatibilidade; Portabilidade; Verificação da Segurança do Código; Toda Máquina pode ser Java Virtual por Software. Queda de Desempenho; Duas ferramentas;Compilador e Interpretador; Código Nativo-Plataforma Específica; Execução é mais lenta do programa. Java 2 Standard Edition; É uma edição de Java feita para rodar em desktops,Dispositivos embarcados(robôs,eletrodomésticos,etc) Java 2Enterprise Edition;É a edição com todo o suporte para rodar em aplicações em servidores WEB. Java2 Micro Edition; É a edição para rodar em dispositivos de pequeno porte,tais como celulares,Smartfones,tabletes. 1-O que e a Java Machine e para que ele e utilizada? 2-O que é um Interpretador? 3-Quais são as Desvantagens do Interpretador? 4-Quais são as vantagens do Interpretador? 5-Quais são as edições do Java? Explique suas utilidades. 6-O que e um Compilador? 7-Quais são as vantagens de um Compilador? 8-Quais são as desvantagens de um Compilador? 7-Qual e a vantagem de se usar um Java Machine? 8-Qual é a Linguagem que o computador “fala”? compiladores.avi http://www.youtube.com/watch?v=nj5z32_6SMk Como programar em Java para Iniciantes Aula 0001 http://www.youtube.com/watch?v=NGUjvuYFbdE &feature=related Prompt do Dos; Ambiente de Desenvolvimento; Configurando Variáveis; Java developement Kit; Eclipse; Criando Projetos; Executando Programa. A Sun Lançou juntamente com a Linguagem um Kit de desenvolvimento,o Java development kit(JDK). JDK Kit é a 1ª ferramenta para desenvolvimento Java.Distribuída gratuitamente pela Sun,Dispõe de um conjunto mínimo de recursos suficientes para gerar qualquer aplicação. Compilador -javac MinhaClasse.java O que é? Interpretador-java MinhaClasse O que é? Visualizador-appletviewer meuapplet.html O que é? Debugger-jdb Site para Baixar Gratuitamente o Kit: http://www.baixaki.com.br/site/dwnld46857.htm Instalação. 1-A seguir você verá os passos necessários para a instalação do JDK no Windows. O primeiro passo é executar o arquivo jdk6u17-windows-i586.exe que está na pasta SOFTWARES/JAVA/JDK dentro da pasta SOFTWARES. A instalação é bastante simples, bastando apenas avançar no assistente de instalação. Importante lembrar, nunca mude a pasta padrão de instalação. O que é? É um interpretador de linha de comando Para que serve? Era usado quando os windows "personalizados" (windows 95 em diante), não existiam.então, pra mexer pelo prompt, você tinha que digitar alguns comandos para abrir uma programa, por exemplo, fazia tudo que você faz pelo mouse hoje. O Prompt do Dos esta localizado na Pasta Acessórios. 1. Clique com o botão direito em cima do ícone “Meu Computador”. 2. Vá em “Propriedades”. 3. Selecione a aba “Avançado”. 4. Clique no botão “Variáveis de ambiente”. 5.Clique no botão “Nova” em “Variáveis do sistema”. 6. Nome da variável: JAVA_HOME 7. Valor da variável: Coloque aqui o endereço de instalação neste caso: C:\Arquivos de programas\Java\jdk1.6.0_17 8. Clique em OK. 9. Clique novamente no botão “Nova” em “Variáveis do sistema”. 10. Nome da variável: CLASSPATH 11. Valor da variável: .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar ;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\ htmlconverter.jar;%JAVA_HOME%\jre\lib;%JAV A_HOME%\jre\lib\rt.jar 12. Clique em OK. 12. Clique em OK. 13. Selecione a váriavel PATH em “Variáveis do sistema”. 14. Adicione o seguinte endereço ao campo Valor da variável: ;%JAVA_HOME%\bin 15. Clique em OK. 16. Clique em OK. 17. Clique em OK. Agora você vai testar a instalação. Clique no botão Iniciar, vá em Executar e digite cmd ou abra o Prompt de comando normalmente. No prompt do MS-DOS vamos testar o interpretador, digite java -version, deverá aparecer algo parecido com isto: Agora você vai testar o compilador, digite javac -version, deverá aparecer algo parecido com isto: O Eclipse e uma ferramenta de desenvolvimento de aplicações Java que pode ser utilizada livremente, sem pagamento de licenças. E uma ferramenta para edição,compilação,depuração e execução de programas Java Site para Download: www.java.sun.com ou www.eclipse.org Instalação Faça o Download no site http://java.sun.com Execução 1-Para rodar o Eclipse basta apenas executar o arquivo C:\pasta\eclipse-SDK-3.1.1win32\eclipse\eclipse.exe 2-Sempre que o Eclipse for aberto, ele pede que seja indicado uma pasta para colocar os arquivos criados nele. 3-Fazer um PASTA..... Cada programa Java pode ser composto por várias classes.Essas classes e as suas configurações ficam agrupadas em um PROJETO. Para criar um PROJETO, clique em MENU FILE,NEW,PROJECT. Depois selecione JAVA PROJECT,coloque o NOME DO PROJETO que será OI MUNDO. Selecionar Wizard “Java Project” e completar com o nome do projeto. O que são? As perspectivas mostram todas funcionalidades associadas a determinadas tarefas, por exemplo, a ‘Perspectiva Java’ esta associada a todas ferramentas necessária para criar aplicações em Java. Cada perspectiva tem uma visual (View) padrão, abas e editores apropriados para cada tarefa. Se uma view ou editor for movida para outro local, o eclipse ira guardar esta nova posição que se manterá da próxima vez que você retornar a ela. Abrir a Perspectiva Java para o código; Window,Open Perspective,Other,Java (Default) São definições genéricas dos Objetos “Moldes”. Portanto pode se existir vários objetos em uma classe,ex:Bicicletaria,Carrocinha,Escola. As classes são definidas a fim de que a partir delas possam ser gerados os objetos que assumem aquelas propriedades e executam aquela funcionalidade definida na classe. Criar uma nova classe e adicionar ao projeto 1- Clique no MENU FILE,NEW,CLASS 2-Dar um nome a classe que será PRINCIPAL e marcar para criar o método; Public.static void main(String[]args) Que significa: Ele e o chef e quem manda no programa. EXPLICAR O METODO MAIN 3-Adicionar a seguinte linha de código ao método main. System.out.println(“Hello World”); Que significa: (mostre na tela do computador “Hello World”) //Meu primeiro programa em Java. public class programa{ //Método principal que inicia a execução do programa. public static void main (String[] args){ System.out.println ("Curso de Java!"); }// fim do método. }// fim da classe 1-Selecione o arquivo Java e com o botão direito do mouse escolha RUN,AS,JAVA,APPLICATION. 2-O Eclipse pedirá para você salvar o arquivo,selecione-o e salve-o. 3-Depois dispare a execução como Java Application 1-O que é o JDK? 2-Para que serve o Programa Eclipse? 3-Qual e a classe principal de um projeto? 4-Quais são os componentes do JDK? 5-Cite os passos para se executar um programa. 6-Cite os passos para criar uma nova classe e adicionar ao projeto. 7-O que e uma classe?Para que ela serve? 8-Dê 3 exemplos de Classe. http://stthiaggo.blogspot.com.br/2011/08/d iagrama-de-classes-e-objetos.html http://pt.wikipedia.org/wiki/Classe_%28prog rama%C3%A7%C3%A3o%29 http://www.ic.unicamp.br/~cmrubira/aacesta /java/javatut9.html Depurando o programa; Estrutura de Programa em Java; Tipos e Classes básicos. Para que serve? Para procurar erros no código digitado. Como funciona? Para observar o valor de uma variável: 1-Coloque o Ponteiro sobre ela. 2-Clique no MENU WINDOW,OPEN PERSPECTIVE,DEBUG. Um programa em Java é uma coleção de classes(fabrica de Bicicletas,Carrocinha,Escola) que interagem entre si de forma totalmente orientada a objetos(carro,casa,pessoa). O método main() de partida da execução do programa deve pertencer a classe principal do programa. O nome do arquivo principal do programa deve ter o mesmo nome que a classe principal(aquela que contém o método main()) Public static void main(String args[]){ } Public class HelloWorld{ } O nome do arquivo deve ser HelloWord.java que depois irá gera o arquivo HelloWorld.class Public É um qualificador do método que indica que este é acessível externamente a esta classe (para outras classes que eventualmente seriam criadas), não se preocupe com ele agora, apenas declare todos os métodos como public. Static É um outro qualificador, que indica que o método deve ser compartilhado por todos os objetos que são criados a partir desta classe. Os métodos static podem ser invocados, mesmo quando não foi criado nenhum objeto para a classe, para tal deve-se seguir a sintaxe: <NomeClasse>.<NomemetodoStatic>(argumentos). particularmente o método main precisa ter essa qualificação porque ele é chamado sem que se crie nenhum objeto de sua classe (a classe AloMundo). main Todo programa Java deverá conter métodos. Um programa executável é aquele que contém o método principal (main). Este é um nome particular de método que indica para o compilador o início do programa, é dentro deste método principal e, através das iterações entre os atributos, variáveis e argumentos visíveis nele que o programa se desenvolve. (String args[]) É o argumento de main e por consequência do programa todo, ele é um vetor (array) de Strings que é formado quando são passados ou não argumentos através da invocação do nome do programa na linha de comando do sistema operacional, exemplo: Hello World argumentotexto1 argumentotexto2 Void É o valor de retorno da função, quando a função não retorna nenhum valor ela retorna void, uma espécie de valor vazio que tem que ser especificado. { ... } “Abre chaves” e “fecha chaves” delimitam um bloco de código. System.out.println("Alo Mundo!"); println assim como writeln de Pascal, imprime a String e posiciona o cursor na linha abaixo , Por hora você pode guardar esta linha de código como o comando para imprimir mensagens na tela, onde o argumento que vem entre aspas é a String a ser impressa. O ; “ponto e vírgula” separa os comandos. Finalmente o fecha chaves termina com a declaração da classe AloMundo. Bit (simplificação para dígito binário, "BInary digiT" em inglês) é a menor unidade de informação que pode ser armazenada ou transmitida. Usada na Computação e na Teoria da Informação. Um bit pode assumir somente 2 valores, por exemplo: 0 ou 1, verdadeiro ou falso Programa Conta { int numero; char *nome; char *sobrenome; float balanco; }; Inteiro:Apenas números inteiros, positivos ou negativos(O mais comum). ◦ ◦ ◦ ◦ Byte 8 bits Short 16 bits Int 32 bits Long 64 bits Ponto-flutuante; Números inteiros e fracionários, positivos ou negativos. Float 32 bits Double 64 bits Caracter: Representação de caracteres individuais Char 16 bits. Boleano:Tipo que só tem 2 estados: verdadeiro ou falso. Boolean true ou false. Byte -128 a 127 Short -32.768 a 32.767 Int -2.147.483648 a 2.147.483.647 Long -9.223.372.036.854775.808 a 9.223372.036.854.775807 Float -3,4E-38 a 3,4E-38 Double -1.7E-308 a 1.7E+308 Classes Especiais String-São tipos de dados não numéricos.também chamados de string. System-Realiza parte d.... Ex: 1-Para que depuramos um programa? 2-Quais são os tipos de dados?De exemplos de cada um deles. 3-O que são BITS? 4-Como e estruturado um programa Java? 5-Qual é a classe principal de um programa Java? Escreva sua estrutura. 6-Porque abrimos e fechas as chaves em um bloco de comando Java? Variáveis; Operadores e expressões; Comandos Básicos; Parâmetros de Entrada; Pacotes. Descrição técnica de Variáveis: Variáveis e constantes, são espaços reservados na memória ram do computador para guardar informações que serão utilizadas durante o código do programa. Podem ter valores de diversos tamanhos e tipos, tais como números inteiros, números reais, caracteres, frases, enfim, diversas coisas. Descrição mais simples: Imagine que você tem uma estante para guardar diversos livros, quando você compra os livros, os coloca na estante e quando quer ler um dele, o pega na estante... com o computador é a mesma coisa, a memória RAM é a estante e as variáveis e constantes são os livros, você cria elas (compra) e as joga na memória. Claro que o computador faz isso sozinho, você só precisa dizer o nome da variável e o tipo dela. Declaradas antes de serem utilizadas,em qualquer parte do programa(declarar e dar o tipo e o nome) Variáveis são nomes atribuídos a endereços na memória de um computador onde se guardam dados. A declaração de uma variável consiste em dar um nome para a variável; especificar qual tipo de dado será guardado. Podemos também declarar e ao mesmo tempo atribuir um valor a uma variável. Exemplo: int Idade=29; Inteiro: ex: 1, 2, 67, 999). String: ex: isso é legal, palavra. Caracter: ex: A, B, 7, J. Exemplo prático usando 3 variáveis 1 - Declaração de variáveis 2 - a: inteiro 3 - b: inteiro 4 - c: real 5 - Início do programa 6 - a <- 13 7 - b <- 2 8 - c <- a / b 9 - mostra ( c ) 10 - Fim do programa Explicação do código linha 1: comando que determina aonde começa a declaração das variáveis linha 2: a variável 'a' está sendo declarada do tipo INTEIRO linha 3: a variável 'b' está sendo declarada do tipo INTEIRO linha 4: a variável 'c' está sendo declarada do tipo REAL linha 5: comando que determina aonde termina a declaração das variáveis e começa o corpo do programa linha 6: a variável 'a' recebe o valor 13 linha 7: a variável 'b' recebe o valor 2 linha 8: a variável 'c' recebe o valor da divisão de 'a' por 'b' (13 div 2) linha 9: comando que coloca na tela o valor da variável 'c' (6.5) linha 10: comando que determina o fim do programa - como podemos ver, existe uma área aonde você declara as suas variáveis para serem usadas durante o programa e por serem variáveis, podem ter seu valor modificado. - logo no início do programa atribuímos valores para as variáveis 'a' e 'b' e para a variável 'c' atribuímos o resultado de uma divisão de dois números inteiros mas que resulta em número decimal e por isso a variável 'c' foi declarada do tipo REAL - ao fim do programa é mostrado o resultado ao usuário, no caso 6.5 que é o valor da divisão de 13 por 2 Operadores aritméticos ◦ Básicos +,-,*,/ e %(resto da divisão inteira) Operadores Conjugados com atribuição de valores a+=b <=> a=a+b a-b<=> a=a-b public class Aritmetica { static public void main (String args[]) { // Declaracao e inicializacao de duas variaveis int a = 5; int b = 2; // Varios exemplos de operacoes sobre variaveis System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("-b = " + (-b)); System.out.println("a + b = " + (a + b)); System.out.println("a - b = " + (a - b)); System.out.println("a * b = " + (a * b)); System.out.println("a / b = " + (a / b)); System.out.println("(float) a / b = " + ((float)a / b)); System.out.println("a % b = " + (a % b)); System.out.println("a++ = " + (a++)); System.out.println("--b = " + (--b)); System.out.println("a = " + a); System.out.println("b = " + b); } } == != < > <= >= igual diferente menor maior menor ou igual maior ou igual // Operadores relacionais em Java public class Relacional { static public void main (String args[]) { int a = 15; int b = 12; System.out.println("a = " + a); System.out.println("b = " + b); System.out.println("a == b -> " + (a == b)); System.out.println("a != b -> " + (a != b)); System.out.println("a < b -> " + (a < b)); System.out.println("a > b -> " + (a > b)); System.out.println("a <= b -> " + (a <= b)); System.out.println("a >= b -> " + (a >= b)); } } & ou && <=> and | ou || <=> or ! <=> not Comentários: ◦ Comentários de uma linha //linha comentada /* linhas comentadas */ • O comando while é um desvio de fluxo condicional (como o ‘if’) com a exceção de que o bloco de comandos é executado repetidamente enquanto a condição for verdadeira • A expressão de comparação é avaliada antes que o laço seja executado enquanto a expressão for verdadeira, o bloco será executado. while (<condição>) { <comandos> } class Main{ public static void main(String[] args) { int i = 0; while(i<10) { System.out.println("Contador é " + i); i = i + 1; } } } Pré-incremento x = 10; x = x + 1; O valor da variável x é 11 x = 10; ++x; O valor da variável x é 11. x = 10 ++x => neste exato momento a variável a vale 11 Pós-Incremento x = 10; x = x + 1; O valor da variável x é 11 x = 10; x++ O valor da variável x é 11. x =10 x++ => neste exato momento a variável x vale 10 e em seguida valerá 11 public class incremento { public static void main(String[] args) { int cont = 1; while(cont<=100){ System.out.println(cont); cont++; } } } public class Exemplo { public static void main(String[] args) { int cont =15; while (cont>=10){ System.out.println(cont); cont--; } } } • A forma mais simples de controle de fluxo é o comando condicional if-else. • Ele define um ou outro caminho a ser seguido, de acordo com a avaliação de uma expressão booleana. • Sintaxe: If ( [condição] ) [comando 1] // se true else [comando 2] // se false public class Loop{ public static void main(String[] args) { int i = 0; while(true){ if(i == 6) break; } } } System.out.println(i); i++; //Programa para cálcular a média de quatro números. import java.util.Scanner;//Importação da classe Scanner. public class media {//Declaração da classe Media. public static void main (String args[]) { //Método principal para executar o programa. float nota1,nota2,nota3,nota4,media; /*Variáveis do tipo float que receberão os números. Variável media que mostrará o resultado.*/ Scanner entrada = new Scanner(System.in); //Classe Scanner para obter entrada de dados externo. System.out.print("Entre com a nota do primeiro bimestre: ");//Entrada da primeira nota. nota1 = entrada.nextFloat();//Faz a leitura da primeira nota. System.out.print("Entre com a nota do segundo bimestre: ");//Entrada da segunda nota. nota2 = entrada.nextFloat();//Faz a leitura da segunda nota. System.out.print("Entre com a nota do terceiro bimestre: ");//Entrada da terceira nota. nota3 = entrada.nextFloat();//Faz a leitura da terceira nota. System.out.print("Entre com a nota do quarto bimestre: ");//Entrada da quarta nota. nota4 = entrada.nextFloat();//Faz a leitura da quarta nota. media = (nota1 + nota2 + nota3 + nota4)/4;//Faz o cálculo da média. if(media >= 6) { System.out.print("Voce foi APROVADO. "); } else { System.out.print("Voce foi REPROVADO. "); } System.out.println("Média = "+(double)media);//Mostra o resultado do cálculo. }//fim do método principal. • Há situações em que se as condições são representadas por valores absolutos • Nesses casos, a linguagem Java provê um comando de controle de fluxo chamado swich-case Condicionais Switch(expressão){ Case valor: Break; //outros cases Default: } O switch equivale logicamente a um conjunto de diretivas if encadeadas, embora seja usualmente mais eficiente durante a execução. // exemploSwitch.java import java.util.Scanner; public class NewClass { // exemploSwitch.java public static void main (String args[ ]) { Scanner teclado = new Scanner( System.in ); int mes; System.out.print("Informe um numero (1, 2 ou 3)"); mes = teclado.nextInt(); switch(mes) { case 1: System.out.println("Janeiro"); break; case 2: System.out.println("Fevereiro"); break; case 3: System.out.println("Marco"); break; default: System.out.println("Mes invalido."); } } } O while(enquanto) é o que chamamos de laço condicional, isto é, um conjunto de instruções que é repetido enquanto o resultado de uma expressão lógica (uma condição) é avaliado como verdadeiro. Abaixo segue a sintaxe desta diretiva enquanto seu o comportamento é ilustrado a seguir. while (expressão_lógica) diretiva; • O comando do.. while é utilizado quando se quer que o corpo do laço seja executado pelo menos uma vez. • A expressão de comparação é avaliada depois que o laço foi executado, e enquanto ela for verdadeira os comandos do laço serão executados. • Sintaxe: do { <comandos> } while (<condição>); • Exemplos: public static void main(String[] args) { int i=0; do { System.out.println("Contador é " + i); } while(++i<10) } • O comando for cria um laço de repetição no fluxo do programa baseado em três parâmetros: • • • expressão inicial: É executado apenas uma vez, na entrada do laço. condição: É executado a cada iteração do laço e determina quando o programa deve sair do mesmo. incremento: É uma operação normal, executada a cada iteração. Geralmente é usada para incrementar contadores ou configurar variáveis. • Sintaxe: for (<expr inicial>; <condição>; <incremento>) { <comandos> } • Exemplos: public static void main(String[] args) { for (int i=0; i<10; i++) { System.out.println("Contador é " + i); } for (;;) { System.out.println("Laço infinito."); } } Os parâmetros se usam para mandar valores à função, com os quais ela trabalhará para realizar as ações. São os valores de entrada que recebem uma função. Por exemplo, uma função que realizasse uma soma de dois números teria como parâmetros a esses dois números. Os dois números são a entrada, assim como a saída seria o resultado, mais isso será visto mais tarde. Um programa de linha de comando pode receber parâmetros pela própria linha de comando. O parâmetro String[] Um pacote (package) em Java nada mais é do que um diretório onde residem uma ou mais classes ou seja, é um conjunto de classes. Existem muitos objetos prontos que a linguagem Java nos proporciona. Como todos os objetos, eles podem conter dados e tem vários métodos para que possamos usá-los. É importante para um programador Java conhecer o máximo desses objetos que puder; eles facilitam o trabalho na medida que evitam que nos tenhamos o trabalho de inventar algo que já está pronto. Em Java, quando você quer usar algum de pacotes do Java, você usa a declaração de importação para contar para o compilador onde achar as classe que você vai usar. A declaração de importação (import) deve preceder a declaração de todas as classes. Assim, um import java.util.*; quer dizer: "eu vou utilizar alguns objetos do pacote java.util". Um programa pode ter tantos import quanto necessário. Em JAVA, concatenação de Strings com outros tipos de dados são interpretados automaticamente como concatenação e, portanto, a conversão de outros tipos para String não é necessária. public class concatenacao { public static void main(String[] args) { String nome1 = "André "; String nome2 = "dos "; String nome3 = "Santos"; String recebe = nome1.concat(nome2 + nome3); System.out.println(recebe); } } 1-O que são variáveis? De exemplos. 2-De exemplos de operadores lógicos. 3-O que são pacotes e para que servem? 4-O que é um parâmetro? Cite um exemplo. 5- D e exemplos de declaração de variáveis. 6-Para que serve a concatenação? 7-Qual o sinal de concatenação em Java? a) b) c) d) + – * / 8-Em Java qual o sinal utilizado para designar que o trecho digitado é um texto? a) b) c) d) ** '' “” -- 9-Circule o erro? public class ExeProva { public static void main(String[] args) { String aluna = “Maria”; int idade = “20”; JOptionPane.showMessageDialog(null, "A aluna " + aluna + " tem " + idade + “ anos”); } } 10-Em Java qual o comando que exibi uma mensagem na tela? a) JOptionPane.showMessageDialog(); b) Echo c) MessageBox.Show() d) System.out.println(""); Netbeans Instalação Ferramentas Pagina na Web para fazer o Donwload do Netbeans http://netbeans.org Barra de Menu Opções de trabalho Página de Entrada Janela de compilação 1-Arquivo,novo projeto; 2-Na janela que se abre escolha em categorias clique em JAVA e depois em APLICAÇÃO JAVA em PROJETOS e clique em próximo; 3- Na página Nome e localização do assistente, adote o procedimento a seguir (como mostrado na figura abaixo):no campo Nome do projeto, digite HelloWorldApp. Deixe desmarcada a caixa de verificação Utilizar pasta dedicada para armazenar bibliotecas. No campo Criar classe principal, digite helloworldapp.HelloWorldApp. Deixe marcada a caixa de verificação Definir como projeto principal. 4-Clique em Terminar. O projeto é criado e aberto no IDE. Agora você deve ver os seguintes componentes: A janela Projetos, que contém uma visualização em árvore dos componentes do projeto, incluindo arquivos de código-fonte, bibliotecas de que seu código depende, e assim por diante. A janela Editor de código-fonte com um arquivo chamado HelloWorldApp é aberta. A janela Navegador, que você pode utilizar para navegar rapidamente entre elementos dentro da classe selecionada. A janela Tarefas, que lista os erros de compilação bem como outras tarefas marcadas com palavraschave como XXX e TODO. Como a caixa de verificação Criar classe principal foi marcada no assistente de Novo projeto, o IDE criou uma classe principal de esqueleto. Você pode adicionar a mensagem "Hello World!" ao código de esqueleto substituindo a linha: // TODO lógica de aplicação do código. Aqui com a linha: System.out.println("Hello World!"); Salve a alteração escolhendo Arquivo > Salvar. Devido ao recurso Compilar ao salvar do IDE, não é necessário compilar manualmente o projeto para que seja executado no IDE. Quando um arquivo de código-fonte Java é salvo, ele é compilado automaticamente pelo IDE. O recurso Compilar na gravação pode ser desativado na janela Propriedades do projeto. Clique com o botão direito do mouse no projeto e selecione Propriedades. Na janela Propriedades do projeto, escolha a guia Compilação. A caixa de verificação Compilar ao salvar está bem na parte superior. Note que, na janela Propriedades do projeto, é possível definir várias configurações para o projeto: bibliotecas do projeto, empacotamento, construção, execução, etc. Para executar o programa: Escolha Executar > Executar projeto principal (F6). A figura abaixo mostra o que você deve ver agora. Parabéns! Seu programa funciona! Se houver erros de compilação, eles são marcados com glifos vermelhos nas margens esquerda e direita do Editor de código-fonte. Os glifos da margem esquerda indicam os erros das linhas correspondentes. Os glifos da margem direita mostram todas as áreas do arquivo que apresentam erros, incluindo os erros das linhas que não estão visíveis. É possível passar o mouse sobre a marca do erro para ver a descrição deste erro. É possível clicar em um glifo da margem direita para ir para a linha que apresenta o erro. Depois de escrever e executar o teste do aplicativo, você pode utilizar o comando Limpar e construir para construir o aplicativo para deployment. Quando o comando Limpar e construir é utilizado, o IDE executa um script de construção que realiza as tarefas a seguir: exclui os arquivos compilados anteriormente e outras saídas de construção. Recompila o aplicativo e constrói um arquivo JAR que contém arquivos compilados. Para construir seu aplicativo: Escolha Executar > Limpar e construir projeto principal (Shift-F11) É possível ver as saídas de construção abrindo a janela Arquivos e expandindo o nó HelloWorldApp. O arquivo bytecode compilado HelloWorldApp.class está no subnó build/classes/helloworldapp. O arquivo JAR implantável que contém o HelloWorldApp.class está no nó dist. Java Básico - 2 - Projetos NetBeans e Classes Projeto em java Classes; Objetos; Atributos,Métodos e Interfaces; Parâmetros de Entrada; Metodos e Atributos; Array-Vetor. Classes são Definições genéricas de objetos (moldes de objetos). Podem existir portanto vários objetos de uma única classe. Objetos são modelados como os objetos do mundo real, ou seja possuem existência “física” dentro de um programa,ocupando espaço de memória e armazenando as informações pertinentes. Objetos são instâncias das classes. O conjunto de propriedades da classe!!! Métodos são os comportamentos do objeto; Deve abranger, por definição,”todo” o comportamento desejado da classe,inclusive aqueles ainda não implementados,ou que devem ser implementados por subclasses. São métodos ou variáveis visíveis ao mundo exterior ao objeto. É a parte do objeto que interage com os outros objetos de um programa. Saída de Dados pelo Console • Para mostrar uma informação no console, devemos utilizar o objeto System.out • A função print(String mensagem) mostra o texto recebido entre os parênteses no console • A função println(String mensagem) mostra o texto recebido entre os parênteses no console, quebrando linha ao final Saída de Dados pelo Console Entrada e Saída de Dados utilizando swing • A biblioteca swing oferece algumas funções muito práticas para ler e mostrar dados para o usuário • O JOptionPane é uma classe que oferece funções prontas que não precisam de tratamento de I/O • • showMessageDialog showInputDialog Saída de Dados utilizando swing • A função showMessageDialog possui três variações, com diferentes configurações de parâmetros: Saída de Dados utilizando swing • A primeira variação recebe entre parênteses o componente pai (não nos preocuparemos com isso por enquanto e enviaremos sempre null) e a mensagem que deverá ser mostrada Saída de Dados utilizando swing • Se quisermos incrementar a mensagem, podemos usar a variação que envia entre os parênteses também o título da janela e o tipo de mensagem Saída de Dados utilizando swing • Outros tipos de mensagem são Informação (padrão), Questão, Aviso, Erro e Vazio Entrada de Dados utilizando swing • A entrada de dados pode ser feita utilizando a função showInputDialog Entrada de Dados utilizando swing • Você pode utilizar uma variação do sowInputDialog() para definir um valor padrão de entrada Exercícios • 1) Faça um programa que solicite ao usuário o nome e o sobrenome (em janelas distintas) e mostre em uma única janela o seu nome completo • 2) Faça um programa que solicite ao usuário cinco palavras (em janelas distintas) e mostre em uma única janela todas as palavras Conversão de tipos inteiros • Utilizamos o comando “Integer.parseInt(String)” para converter um texto em um número inteiro Conversão de tipos reais • Utilizamos os comandos “Float.parseFloat(String)” ou “Double.parseDouble(String)” para converter um texto em um número real Formatando textos com números decimais • • Utilizando a classe “java.util.Formatter” e suas classes derivadas para formatar textos com quaisquer tipos de dados: • http://download.oracle.com/javase/1,5.0/docs/api/java/util/Formatter.html#syntax O uso mais comum é para números decimais: Vetores e Matrizes Dentro de um bloco, podemos declarar variáveis e usá-las. int idade1; int idade2; int idade3; ... int idade9; int idade10; Quando são criadas mais de uma variável, para armazenar um mesmo tipo de informação com um mesmo tipo de dados, poderia ser substituído por um array. O Exemplo acima poderia ser substituído por: int [ ] idades; O int [ ] é um tipo. Um array é sempre um objeto, portanto, a variável idades é uma referência. Vamos precisar criar um objeto para poder usar o array. Como criamos o objeto-array? idades = new int[10]; Aqui o que fizemos foi criar uma array de int de 10 posições, e atribuir o endereço o qual ela foi criada. Agora podemos acessar e atribuir valores dentro de cada posição do array. idades[5] = 10; O código acima altera a sexta posição do array. No Java, os índices do array vão de 0 a n-1, onde n é o tamanho dado no momento que você criou a array. Se você tentar acessar uma posição fora desse alcance, um erro ocorrerá durante a execução. Definição • Objeto que armazena um número fixo de valores de um mesmo tipo • A quantidade de elementos é definida na criação do array • Os elementos são armazenados em um único bloco indexado: Um array é útil quando queremos agrupar objetos do mesmo tipo. Possui as seguintes características: - Todos os elementos devem ser do mesmo tipo - Cada elemento pode armazenar um único item - Os itens podem ser primitivos ou referências a objetos - O tamanho do array é fixado quando de sua criação Arrays podem conter qualquer tipo de elemento valorado (tipos primitivos ou objetos), mas você não pode armazenar diferentes tipos em um simples array. Ou seja, você pode ter um array de inteiros, ou um array de Strings, ou um array de array, mas você não pode ter um array que contenha ambos os objetos Strings e inteiros. Declaração e Inicialização • Pode ser declarado e inicializado ao mesmo tempo; • Pode ser inicializado com {}; Exemplo 1 Exemplo 2 • No exemplo ao lado, um array unidimensional de 5 elementos do tipo double está sendo declarado e inicializado. • No “for”, uma variável de controle (por exemplo, o famoso “i”) acessa os elementos do array, atuando como um índice Exemplo 3 public class Exemplo1 { • Neste exemplo, um array de Strings armazena alguns nomes e um for os mostra na tela public static void main(String[] args) { String nomes[] = new String[3]; nomes[0] = "Flabiana"; nomes[1]= "Felipe"; nomes[2] = "Madeira"; for(int i = 0; i<nomes.length;i++){ System.out.println(nomes[i]); } } } Declarar um vetor com 10 posições já inicializadas com valores de 1 a 10 e apresente em tela este mesmo vetor: public class Array1 { public static void main (String args [ ]) { int[ ] numeros1a10 = {1,2,3,4,5,6,7,8,9,10}; for (int i =0; i < numeros1a10.length; i++) { System.out.println( " Conteudo do Array " + numeros1a10 [i]); } Um outro exemplo, o que este faz ? public class Array2 { public static void main(String args[]) { int[] idades = new int[10]; for (int i = 0; i < 10; i++) { idades[i] = i * 10; } for (int i = 0; i < 10; i++) { System.out.println (idades[i]); } } } class AlgumaClasse{ public static void main(String args[]) { int[] idades = new int[10]; // for (int i = 0; i < 10; i++) { idades[i] = i * 10; } // imprimindo toda a array for (int x : idades) { System.out.println(x); } } } Array-Matriz; Referências a objetos; Declaração de Métodos; Declaração de Classe; Notação UML; Sobrecarga de Métodos; A partir do momento que uma array foi criada, ela não pode mudar de tamanho. Se você precisar de mais espaço, será necessário criar uma nova array, e antes de se referenciar para ela, copie os elementos da array velha. Dimensões • O par de colchetes de um array[] define a dimensão do mesmo; • A dimensão representa a indexação do array; • Isso significa que um vetor pode ter mais de uma dimensão, de forma que sua indexação pode ser composta. Nesse caso, costumamos chamá-lo de “matriz”; • Um array de uma dimensão é chamado comumente de “vetor”. A partir do conceito de vetor, fica mais claro entender a matriz. Uma matriz é um conjunto de variáveis, cada uma com um valor associado, como se fossem variáveis simples, porém todas possuem o mesmo nome. A diferença é que a matriz pode ser considerada um vetor bidimensional, ou seja, possui duas dimensões. Da mesma maneira que em um vetor, os índices são utilizados para referenciar os elementos deste conjunto. O conceito de matriz na programação é equivalente ao da matemática. Dia int[31] Mês int[12] Data [31][12] Data Data Data Data Data [0,0]= [0,1]= [0,2]= [1,0]= [2,1]= 1,1 1,2 1,3 2,1 (1 de Janeiro); (1 de Fevereiro); (1 de Março); ( 2 de Janeiro); Matriz -Exemplo 1 • Repare no exemplo que temos um array com dois pares de colchetes • A quantidade de elementos do array pode ser definida por D1 x D2 x... Dn • No exemplo, dois “for” aninhados “varrem” o array através de duas variáveis de controle, atuando com um índice composto de duas dimensões Preencha uma matriz de 10 linhas por 15 colunas com números aleatórios de 1000 a 2000. Em seguida exiba todo o seu conteúdo. package exerMatrizes; public class Principal { public static void main(String[] args) { // Declaração da matriz. int m [][] = new int [10][15]; // preenchimento da matriz com numeros de 1000 a 2000.(Na verdade só até 1999) for (int l = 0; l < 10; l++){ for (int c = 0; c < 15; c++){ m[l][c] = (int) (Math.random() * 1000) + 1000; } } } } //Exibição dos numeros contidos na matriz for (int l = 0; l < 10; l++){ for (int c = 0; c < 15; c++){ System.out.print(m[l][c]+" "); } } System.out.println(); A classe Math prove métodos de classe que executam várias funções matemáticas, como funções trigonométricas e logaritmos. Essa biblioteca tem dezenas de operações específicas. Para utilizá-la não é necessário dar a instrução de import, pois ela também faz parte do pacote java.lang, o qual é automaticamente importado em todas as classes java. Exemplos: Math.sqrt(); // retorna a raiz quadrada do numero passado. Math.pow (x, b); // retorna a potência de Xb Math.PI (); // retorna o valor constante do número Pi. Math.max(a,b); // retorna o maior valor entre a e b Math.random(); // retorna um numero aleatório que vai de 0 até 1 (0 incluído, 1 nunca será gerado) 1-Crie um vetor capaz de armazenar 50 números inteiros. Em seguida faça o seu preenchimento automático com os números de 101 a 150, ou seja, na posição número 0 ponha 101, na posição 1 ponha o número 102, e assim sucessivamente. Em seguida exiba os valores deste vetor. O Java contém 8 tipos de dados primitivos e um tipo referência. No entanto, poucos livros dedicam exemplos a este último tipo. Vamos começar analisando o trecho de código abaixo: public class Estudos{ public static void main(String args[]){ String nome = "Osmar J. Silva"; System.out.println(nome); System.exit(0); } } Se observarmos este código, veremos que a variável nome não é um tipo primitivo e sim uma referência. Desta forma, qualquer variável ou constante que não seja do tipo primitivo é uma referência a um objeto de uma classe, interface, etc. Arrays não são tipos primitivos também. Assim, variáveis ou constantes que apontam para arrays também são referências. É importante entender bem a noção de referências, visto que é por meio delas que acessamos um determinado objeto na memória. Uma lista pode ser passada como argumento a um método. Deve-se notar que listas são objetos e, na linguagem Java, objetos são sempre passados aos métodos por referência, ao passo que tipos primitivos são sempre passados por valor. Isto quer dizer que uma modificação à lista realizada no método chamado implicará na mesma modificação à lista definida no programa que chamou o método em questão. Em contraste com a estática dos dados, os métodos definem as ações a serem tomadas em diversos momentos da execução de um programa. Como em outras linguagens, como C, C++, Pascal, Fortran, etc, os métodos correspondem aos conceitos comuns de funções, procedimentos ou sub-rotinas. Estes são apenas conjuntos ordenados de declarações de dados, comandos e expressões. Em termos simples, são os métodos que realizam todas as tarefas para as quais o programa foi escrito, por exemplo, realizar cálculos, resumir informações de um arquivo, produzir um relatório, criar um gráfico, gerar um filme de animação, etc. A declaração mais simples que podemos fazer de um método (lembrando que isso deve ser feito dentro de uma classe) é a seguinte: void [nome do método] () { [corpo do método] } Onde o [nome do método] é um identificador que define o nome pelo qual o método é conhecido, e [corpo do método] consiste de uma lista ordenada de declaração de variáveis, de expressões e de comandos. A primeira palavra-chave, void, define o valor retornado pelo método, neste caso, nenhum. Podemos usar qualquer tipo de dado válido como valor de retorno de um método. Nesse caso, ao terminar, o método seria obrigado a devolver um dado do tipo especificado. Por exemplo, class Numero { double x = 1; void print() { System.out.println("O valor e " + x); } Define uma classe chamada Numero, a qual contém uma variável x, inicializada com 1, e um método sem valor de retorno, print, que apenas escreve um texto e o valor de x, através da chamada do método System.out.println. O par de parênteses adiante do nome do método introduz uma lista (vazia, neste caso) de argumentos. A chamada de um método pode ser acrescida de parâmetros, os quais são associados aos seus respectivos argumentos A Unified Modeling Language (UML) é uma linguagem de modelagem não proprietária de terceira geração. A UML não é uma metodologia de desenvolvimento, o que significa que ela não diz para você o que fazer primeiro e em seguida ou como projetar seu sistema, mas ela lhe auxilia a visualizar seu desenho e a comunicação entre objetos. Aonde Baixar: http://jude.change-vision.com/judeweb/index.html public class Biometrica{ public int altura,peso,idade; public Biometrica(int altura,int peso,int idade){ this.altura=altura; this.peso=peso; this.idade=idade; } } Ex: public class media { //Declaração da classe Media. Declaração do Objeto nada mais e do que declarar as variáveis que apontarão para as instâncias .Na declaração os objetos ainda não estão instanciados,mas apenas nomeados. Biometrica entrada, saida; Objetos são estruturas de dados definidas e agrupas dentro de uma classe. Sempre que utilizamos um objeto ou classe devemos reservar espaço em memória para que aquele objeto seja manipulado sem maiores problemas. Além do mais, também podemos utilizar a mesma classe (com todos os seus métodos e atributos) para manipular outros objetos que serão tratados de forma diferente (mesmo se tiverem as mesmas características do objeto anterior), pois serão dois endereços de memória diferentes. Sem contar que, se um objeto não é mais referenciado dentro do programa, o próprio Java trata de liberar os recursos de memória consumidos pelo objeto usando o Garbage Colletor - Coletor de Lixo. Quem faz o papel de instanciador em Java é o new. New trata de reservar memória o suficiente para o objeto e criar automaticamente uma referência a ele. Para new conseguir determinar o objeto, precisamos usar o método construtor que será usado como base para instanciar a classe e gerar o objeto. Tecnicamente, declaramos uma variável qualquer como sendo do tipo da classe (ex.: TV minhaTV; ), depois instanciamos o objeto atribuindo a variável o resultado obtido por new mais o método construtor (ex.: minhaTV = new TV(); ). Apesar de parecer muitos detalhes, isso fica mais facilmente visualizado no código abaixo. public class TV { int tamanho; int canal; boolean ligada; No código acima, criamos uma classe chamada TV Declaramos duas TV() { variáveis chamadas tamanho = 21; objeto1 e objeto2 canal = 0; sendo do tipo TV. ligada = false; Depois, instanciamos o } objeto usando new e o public static void main(String[] args) { método construtor. TV objeto1 = new TV(); TV objeto2; objeto2 = new TV(); } } Ex: Class Biometrica Entrada=new Biometrica (); Saida=new Biometrica (); 1-O que e um Array? Para que serve? 2-Circule o erro? public class ExeProva { public static void main(String[] args) { String aluno = João; String caracteristica = “estuda”; } JOptionPane.showMessageDialog(null, "O aluno " + aluno + " é um aluno que " + caracteristica); } 3-Explique a diferença básica entre um vetor simples e uma matriz. 4-O que é uma conotação UML? 5-Para que serve a Class Math? 6- Crie um vetor capaz de armazenar 50 números inteiros. Em seguida faça o seu preenchimento automático com os números de 101 a 150, ou seja, na posição número 0 ponha 101, na posição 1 ponha o número 102, e assim sucessivamente. Em seguida exiba os valores deste vetor. Classe Objeto e Instância Encapsulamento Tratamento de Exceções Manipulação de Arquivos Classe • Abstração: “Uma classe abstrai um conjunto de objetos com características similares.” • Objeto: “Uma classe define as características e métodos de um conjunto de objetos.” • Código-fonte do Objeto: “Uma classe é um arquivo texto que define as características e métodos de um conjunto de objetos.” Classe Cachorro: “Cachorro.txt” Objetos e Instâncias • Objeto é uma entidade que pode ser física, conceitual ou de software. Ou seja, uma representação genérica. • Instância é usada com o sentido de exemplo. É a concretização da classe. Ou seja, são os objetos de fato criados e ocupando espaço na memória. 1 Objeto Cachorro 3 objetos Cachorro Instâncias da classe Cachorro Totó Rex “Epaminôndas” Encapsulamento • É o mecanismo que permite separar detalhes de funcionamento “Características (variáveis) e funções (métodos)” de sua interface. • Exemplo: Para utilizarmos um liquidificador, não precisamos saber detalhes de seu funcionamento. A única interface que conhecemos são seus botões. Classe Liquidicador“Li quidificador.txt” Instância de um objeto de liquidificador: Muito mais fácil de usar. Encapsulamento - Atributos • São características (variáveis) da classe e podem ser divididos em dois tipos básicos: • Atributos de Instância: “determinam o estado de cada objeto.” • Atributos de Classe: “possue um estado que é compartilhados por todos os objetos de uma classe.” Encapsulamento - Método • É uma rotina que é executada por um objeto ao receber uma mensagem: “É a descrição da forma como o objeto realiza uma tarefa.” • Os métodos determinam o comportamento dos objetos de uma classe e são análogos à funções ou procedimentos da programação estruturada. Encapsulamento – Construtor e Destrutor • Métodos especiais que ocorrem automaticamente. • O construtor pode ser sobrecarregado e é executado sempre que um objeto é instanciado. • O Destrutor não pode ser sobrecarregado porque não aceita parâmetros e é executado quando o objeto é excluído. Tratamento de Exceções Definição • Evento que ocorre durante a execução de um programa, que interrompe o fluxo normal de instruções Funcionamento • Quando uma exceção ocorre em um método, o método cria um objeto que contém informações para manipular a exceção • • • • Tipo de Exceção Estado do programa Mensagem Exceção Ligada • Ao disparar uma exceção, o sistema procura na pilha de chamada de métodos o primeiro método que previu e capturou essa exceção Manipulador de Exceções • Para capturar uma exceção, utilizamos um manipulador de exceção • Ao encontrar na pilha de chamadas um método com um manipulador de exceção, o sistema passa ao manipulador o objeto criado na exceção • Se nenhum manipulador de exceção for encontrado na pilha de chamadas de métodos, a aplicação é encerrada A instrução try-catch • A instrução permite capturar uma exceção e executar um bloco de instruções caso ela aconteça Tarefa • Implemente as alterações abaixo, observando as implicações durante a execução do programa: • • • 1) Inclua um comando para mostrar o valor de ‘x’ após a linha 6; 2) Altere a linha 6 para: int x = 10 / 2; 3) Altere o programa para que o divisor seja solicitado ao usuário. Tente entrar com um número inválido. Sintaxe do try-catch Try{ //instruções que podem disparar uma exceção }catch(Exception e){ //instruções que devem ser executadas //se ocorrer uma exceção }finally{ //instruções que devem ser executadas sempre } O bloco catch • Podemos utilizar vários blocos catch para o mesmo try O bloco finally • O bloco finally é utilizado para que tenhamos instruções que sempre devem ser executadas, ocorrendo exceção ou não Checked e Unchecked • Checked exceptions são exceções que OBRIGATORIAMENTE precisam ser tratadas • Uma exceção é CHECKED se o método que a disparou foi declarado com a cláusula throws • Unchecked exceptions são exceções que não precisam ser tratadas obrigatoriamente • • Com isso, o programador pode simplesmente ignorar a manipulação de uma possível exceção Obviamente que é desaconselhável O comando throws • Quando uma exceção checked é necessária, podemos utilizar o comando throw para “passar a bola”, dando a responsabilidade do tratamento da exceção ao próximo método na pilha Disparando exceções • Se quisermos “forçar a barra” e disparar uma exceção propositalmente no software, podemos utilizar o comando throws como uma instrução Exercício • Altere o programa a seguir para avisar o usuário que uma das variáveis foi digitada incorretamente, informando qual foi Threads O que é uma Thread • Uma unidade básica de utilização de CPU • Mais “leve” que um processo; • Procedimento executado dentro de um processo de forma independente • Encontra-se dentro de um processo, utilizando seus recursos • Um processo pode ter um ou vários threads; O que é uma Thread • (a) Três processos, cada um com um thread; • (b) Um processo com três threads; Estados de umaThread • • • • • • Executando • Está em execução; Pronto • A thread está pronta para ser executada; Suspenso • A atividade da thread está parada temporariamente; Continue • Permite que a thread suspensa volte a executar; Bloqueado • A execução da thread está bloqueada à espera de um recurso; Terminado • A execução da thread foi encerrada, não podendo ser retomada; Processos vs Threads • Os processos estão isolados entre si • Os threads partilham os recursos entre si • A criação de threads resulta em menos sobrecarga para o sistema operacional do que a criação de processos • A gestão de threads necessita de menos recursos que a gestão de processos Exemplo Manipulação de Arquivos I/O • A API Java oferece uma série de classes para realizar (IN/OUT) Entrada e Saída de arquivos • Classes para manipular cadeias de dados e caracteres podem ser encontradas no pacote java.io • Classes para manipulação de arquivos podem ser encontradas no pacote java.nio I/O Stream • Um Stream (cadeia ou corrente) representa a origem da entrada ou o destino da saída • Podem representar vários tipos de entradas e a saídas como: • Arquivos • Dispositivos • Outros programas • Arranjos de memória • Suporta diferentes tipos de dados • Bytes • Tipos primitivos • Caracteres • Objetos Input Stream • Um programa utiliza um InputStream para ler dados de uma fonte de origem, um por vez Output Stream • Um programa utiliza um OutputStream para gravar dados em uma fonte de destino, um por vez ByteFileStreams – Copiando um arquivo Considerações • • • • • • Evidente que a pasta e o arquivo original devem existir A pasta e o arquivo podem ser criados manualmente Java considera o caracter ‘/’ como sendo o ‘\’ quando utilizados em camihos de arquivos Por quê o método read() retorna int e não byte? • Retornando um int ele permite que utilizemos o -1 para sinalizar que não há mais bytes para serem lidos e finalizar o loop Sempre fechar o stream • Garantir que será executado o método close() do stream, mesmo se acontecer uma exceção evita vazamento de recursos O ByteStream deve ser utilizado para ler e gravar arquivos binários, não arquivos texto CharacterStream • A plataforma JAVA utiliza as convenções Unicode, ASCII • Todas as classes são descendentes de Reader e Writer • No slide a seguir, um exemplo utilizando as classes FileReader e FileWriter FileCharacterStreams Considerações • A diferença, além do uso de classes diferentes, fica por conta do método read() • Num ByteStrem, o read() retorna um byte de 8 bits • Num CharacterStream, o read() retorna um character de 16 bits I/O linha-a-linha • É mais fácil manipular linhas inteiras do que carcateres • Um terminador de linha pode ser: • • • Carriage-return + Line Feed: “\r\n” Carriage-return: “\r” Line Feed: “\n” • No exemplo à seguir, utilizamos as classes BufferedReader e PrintWriter para copiar um arquivo texto linha-a-linha e não character-a-caracter BufferedReader & PrintWriter Criando Diretórios (Pastas) Listando arquivos de um diretório Excluindo arquivo ou diretório JFileChooser • Classe que permite abrir uma caixa de dialogo onde o usuário pode indicar um diretório ou arquivo • Faz parte da biblioteca javax.swing, que é utilizada para desenvolvimento de aplicativos desktop JFileChooser JFileChooser – Selecionando um Diretório Exercícios • 1) Faça um programa que grave no HD um arquivo texto com seu nome completo como conteúdo • 2) Faça um programa que crie no HD 10 arquivos (01.txt, 02.txt, 03.txt.,.., 10.txt)contendo cada um deles a tabuada correspondente ao seu nome • 3) Faça um programa que solicite ao usuário um arquivo e uma pasta destino. O programa deve fazer uma cópia do arquivo selecionado pelo usuário na pasta destino Polimorfismo Herança API Java Construtores Destrutores Garbage Colector Ocorre quando uma classe passa a herdar características (atributos e métodos) definidas em outra classe, especificada como ancestral ou superclasse. A classe receptora de recursos é denominada subclasse. Animal Ave Mamífero Cão Gato Pássaro Em Java: Class gato extends mamífero Class mamífero extends animal class Produto //ancestral ou superclasse { //variáveis de instância int codigo; String nome; int quantidade; double preco; public void mostraPreco () { System.out.println(preco); } public void atualizaPreco(double porc) } { preco = preco + preco * porc / 100; } class Usaproduto extends Produto { public static void main (String args[]) { Produto A; //instanciando as variáveis A = new Produto(); A.codigo = 10; A.nome = "Sabonete"; A.quantidade = 5; A.preco = 0.54; System.out.print(A.codigo + " " + A.nome + " "); System.out.println(A.quantidade + " " + A.preco + " "); A.mostraPreco(); A.atualizaPreco(12); } } A.mostraPreco(); Polimorfismo, significa 'muitas formas‘ Ex: Seu irmao gêmeo é = a vc? não parece ser = mais tem assinaturas diferentes!! (caracteristicas). O conceito de Hernaça e Polimorfismo andam juntos. Vou te dar um exemplo, e vai ficar mais fácil sua compreensão: Imagine uma classe que tenha uma Conta Bancária Simples, chamada ContaSimples e que tenha os métodos depositar(), donodaconta(), versaldo(), retirar(). Agora vamos usar uma herança, e uma classe poupança vai herdar todos os métodos da classe Conta Simples acima, e vamos ainda adicionar um método Juros() na classe Poupança. Acabamos de usar herança. Agora vc pode usar o polifmorfismo, ou seja, vc vai poder usar o depositar(), tanto para a Classe Simples, quanto a para Poupança, resumindo, vc usou de 2 formas diferentes o mesmo método. Polimorfismo é um recurso usado através da herança, é a capacidade que um método tem de responder de várias formas. Três classes, Animal, Cachorro, Cobra, analisando podemos perceber que Cachorro e Cobra são animais, más com características diferentes ex: locomover O cachorro anda com suas quatro patas e a cobra se rastejando. package Anim; public abstract class Animal { public abstract String andar(); } package Anim; public class Cachorro extends Animal { public String andar(){ return ("Cachorro: se locomove com quatro patas"); } } package Anim; public class Cobra extends Animal { public String andar(){ return ("Cobra: se locomove rastejando"); } } Um Outro exemplo: Um dono de uma fábrica de brinquedos solicitou que seus engenheiros criassem um mesmo controle remoto para todos os brinquedos de sua fábrica. A única restrição era que cada brinquedo atendesse aos comandos específicos definidos pelo controle O controle remoto teria vários botões, sendo que todos eles seriam úteis para todos os brinquedos. Assim, quando o usuário clicasse no botão mover,o controle enviaria o sinal MOVER para todos os brinquedos que estivessem no raio de dois metros. A Figura 2 ilustra tal situação. Assim quando o brinquedo recebe o sinal MOVER, ele se move de acordo com a sua função. Para o avião, mover significa VOAR, para o barco significa NAVEGAR, e para o automóvel CORRER. Observe que os brinquedos respondem ao mesmo sinal de formas diferentes. Temos aqui então um caso de polimorfismo. O Polimorfismo permite que diferentes objetos (avião, barco, automóvel) respondam uma mesma mensagem (mover) de formas diferentes (voar, navegar e correr). São documentações da Linguagem; Site para baixar: http://docs.oracle.com/javase/6/docs/ Construtores: Todo objeto tem seu tempo de vida que engloba desde o momento que ele é declarado até a sua "eliminação". No instante que o objeto é declarado, é alocado um espaço na memória pra ele. A partir desse momento, o objeto está pronto pra ser usado. Em Java, é necessário um mecanismo que "construa" objetos a partir de uma classe, o construtor.Os construtores servem pra criar objetos de uma classe. Para usar o construtor deve-se usa a palavra new. Construtores são métodos que possuem o mesmo nome da classe. A. B. C. O construtor inicializa o objeto. Construtores chamados pelo sistema no momento da criação de um objeto. Eles não possuem valor de retorno, porque você não pode chamar um construtor para um objeto, você só usa o construtor no momento da inicialização do objeto. public class Pessoa { private String nome; // Construtor public Pessoa(String novoNome) { this.setNome(novoNome); // Assim é mais correto } public void setNome(String nome) { this.nome = nome; } public String getNome() { return nome; } } Class teste{ String nome, telefone; int idade; void aniversario(){ idade = idade+1; } } Para criar construtores e criar objetos pertencentes à classe teste, faz o seguinte: Exemplo de construtor sem parâmetros: teste(){ } Exemplo de construtor com parâmetros: teste(String nome1, int idade1, String telefone1){ nome = nome1; idade = idade1; telefone = telefone1; } Na classe principal para criar objetos da classe teste: teste amigo1 = new teste(); teste amigo2 = new teste("João"); teste amigo3 = new teste("João",32,"33223311"); class curso{ String nome; int creditos; public curso(String nomeCurso,int qntCreditos){ nome = nomeCurso; creditos = qntCreditos; } } public class principal{ public static void main(String args[]){ curso c1 = new curso("Informática Básica",30); curso c2 = new curso("Estrutura de Dados",45); System.out.println(c1.nome); System.out.println(c2.nome); System.out.println(c2.creditos); Destrutores: Algumas Linguagens de programação precisam "eliminar"o objeto criado. Java usa o Garbage Colector(coletor de lixo), que elimina os objetos não utilizados na memória. Quando o objeto é eliminado, ele automaticamente executa seu destrutor. Encapsulamento – Construtor e Destrutor • Métodos especiais que ocorrem automaticamente. • O construtor pode ser sobrecarregado e é executado sempre que um objeto é instanciado. • O Destrutor não pode ser sobrecarregado porque não aceita parâmetros e é executado quando o objeto é excluído. 1-Explique encapsulamento e dê um exemplo; 2-O que é polimorfismo?Dê um exemplo. 3-Explique construtores e de um exemplo. 4- Explique destrutor. 5-Explique herança e de exemplos. Swing Formulários, controles e gerenciamento 29 5 http://docs.oracle.com/javase/tutorial/uiswi ng/ 29 6 São controles gráficos independentes e que podem ser invocados diretamente pelo sistema operacional O JFrame é um contêiner caracterizado por ser um formulário completo 29 7 Em geral, os formulários possuem um contênier raiz onde são organizados visualmente todos os outros controles visuais 29 8 O programa abaixo declara e instancia um objeto do tipo JFrame, define alguns atributos por meio de seus métodos e invoca o método que o torna visível 29 9 No programa abaixo, estamos criando duas instâncias 30 0 Ao instanciar um objeto, podemos escolher qual construtor queremos utilizar na inicialização 30 1 A herança nos permite criar uma classe estendendo todas as funcionalidades de outra classe já existente 30 2 Uma vez que estamos criando uma classe, podemos escrever nosso próprio construtor 30 3 Nossa classe estendida pode também ter atributos específicos, como um rótulo. prof. Ricardo Pupo Larguesa 30 4 30 5 30 6 30 7 ...que pode ser acessada no menu “Janela”/”Paleta” 30 8 ...que pode ser acessada no menu “Janela”/”Propriedades” 30 9 Arraste dois campos de texto, dois rótulos e um button para o formulário Altere as propriedades dos controles acionando a janela de propriedades pelo menu “Janela” ou acionando o menu de contexto do próprio controle Altere o posicionamento dos controles e as propriedades conforme imagem abaixo 31 0 Vamos criar um evento para ler os valores dos campos texto e mostrar em um JOptionPane 31 1 Altere o código do formulário anterior para tratar a exceção de número inválido, informando o usuário caso haja algum problema 31 2 Crie três formulários semelhantes, um para calcular subtração, outro para divisão e outro para multiplicação 31 3 Para garantir que um aplicativo Java rode com o leiaute correto em qualquer plataforma, foram criadas algumas classes para permitir gerenciar posicionamento e dimensões dos controles de forma proporcional e relativa São os LayoutManagers ◦ GroupLayout Gerencia agrupamentos verticais e horizontais de controles. É o padrão do NetBeans ◦ BorderLayout Gerencia cinco áreas (top, bottom, left, right, and center) com posição pré-definida e ancorada ◦ BoxLayout Organiza os componentes em uma única linha ou coluna ◦ CardLayout Permite sobrepor componentes no container e definir qual irá aparecer para o usuário em tempo de execução ◦ FlowLayout Organiza os componentes em uma única linha, dividindo-os em colunas diferentes caso exceda o tamanho ◦ GridBagLayout Permite gerenciar os componentes em um grid com muita flexibilidade, permitindo que os componentes compatilhes mais de uma célula ◦ GridLayout Permite gerenciar os componentes em um grid simples 31 4 31 5 É o gerenciador padrão do NetBeans A IDE nos fornece régua, alinhadores e ancoradores automáticos o trato visual dos componentes 31 6 Nos permite gerenciar os atributos de posicionamento em uma janela no estilo de uma grade prof. Ricardo Pupo Larguesa 31 7 Define cinco áreas para posicionamento de painéis com funções específicas prof. Ricardo Pupo Larguesa 31 8 Crie um formulário para experimentar cada um dos gerenciadores de leiaute Faça uma tabela comparativa de cada um dos gerenciadores de leiaute disponíveis no NetBeans IDE 31 9 Crie um projeto e adicione formulários com o seguinte aparência. Calculadora simples Bloco de Notas Formulário de envio de Email Formulário de Autenticação (Login), com lembrete de senha ◦ Gerenciador de Arquivos (Windows Explorer) ◦ Navegador de Internet com Controle de Abas ◦ ◦ ◦ ◦ 32 0 Neste Link há alguns projetos em Java para treinar e obter mais conhecimento,agradeço a você por escolher o curso,Obrigada. https://sites.google.com/site/aulasbuzzero/