Uma breve história do Java
Texto
(2) 14/06/2016. Ambiente Java Performance:. Foi melhorada pela incorporação de um compilador JIT (Just In Time) na JVM que, durante a carga do programa, converte os bytecodes em código nativo e possibilita uma melhoria significativa na performance dos programas Java. ATIVIDADE: Pesquise sobre a tecnologia HotSpot da Sun.. Multithreaded: Java oferece suporte para criação e uso de threads, possibilitando inclusive sua sincronização.. Ambiente Java Em uma linguagem de programação como C e Pascal, temos a seguinte situação:. O ambiente Java é composto com a JVM, sua API e com as classes. da aplicação. Um ambiente mínimo permite apenas a execução da aplicação. Java. JRE (Java Runtime Environment). Um ambiente de desenvolvimento mínimo para a construção de. aplicações Java requer um JDK (Java Developmet Kit).. Máquina Virtual O Java utiliza o conceito de máquina virtual.. Máquina virtual = INTERPRETADOR?. JVM? JRE? JDK? O que devo baixar? JVM = apenas a virtual machine, esse download não existe, ela. Ela representa um conceito bem mais amplo... Ela é responsável por gerenciar memória, threads, a pilha. de execução etc.. Slogan Java. sempre vem acompanhada. JRE = Java Runtime Environment, ambiente de execução Java,. formado pela JVM e bibliotecas, tudo que você precisa para executar uma aplicação Java. JDK = Java Development Kit: é formando pela JRE somado, com o compilador “javac”. É o que nós desenvolvedores precisamos. . Write once, run anywhere “Escreva uma vez, rode em qualquer lugar”. Tutorial de instalação do Java no Windows: http://www.k19.com.br/artigos/como-instalar-o-jdk-7-no-windows-8/ Tutorial de instalação do Java no Linux: http://www.k19.com.br/artigos/como-instalar-o-jdk-7-no-ubuntu-13-10/. 2.
(3) 14/06/2016. Especificação versus Implementação. Sintaxe java Programa mínimo. A. Java Virtual Machine é uma especificação – utilizaremos a fornecida pela Oracle/Sun. Existem outras JVMs disponíveis, como a JRockit da BEA, a J9 da IBM, entre outras. Toda JVM deve ser certificada pela Sun, provando a sua compatibilidade.. Sintaxe java Todo programa. Java deve ter, no mínimo o método main(String[] args) declarado como public, static e void dentro de alguma de classe.. Um programa Java pode conter um ou mais arquivos-fonte, os. quais podem conter: . Uma ou mais declarações de pacotes (package) Uma ou mais diretivas de importação (import) Uma ou mais declarações de classes (class) Uma ou mais declarações de interfaces (interface). Uso de maiúsculas e minúsculas O Java é uma linguagem Case Sensitive – letras maiúsculas e. minúsculas são consideradas diferentes: nome é diferente de NOME Public é diferente de PUBLIC etc.. O código do programa Java deve ser salvo com a extensão “.java”.. Exemplo: OlaMundo.java. Comentários Dentro dos programas Java é permitida a inclusão de comentários.. // (comentário de uma única linha) /*. Exemplo de comentário gerado pela ferramenta javadoc, contida no. jdk.. */ (comentário de bloco – múltiplas linhas). /** */. (comentário de documentação – múltiplas linhas). 3.
(4) 14/06/2016. Compilação e execução Por meio do console é possível navegar até o diretório em. Quando a compilação acontece corretamente, nenhuma. mensagem é exibida, produzindo o arquivo .class bytecode.. que o arquivo foi salvo, e sua compilação usa o comando: javac [nome_da_classe].java. Para executar o programa é preciso acionar a JVM com o. comando: java [nome_da_classe]. Fragmento que mostra o resultado da compilação e. execução do programa.. A extensão .class não deve ser fornecida quando se executa. um programa Java.. Tipos de dados primitivos. Tipos de dados primitivos. Um tipo de dados estabelece um conjunto particular de. valores que podem ser representados dentro de um programa e para os quais podem ser definidas operações específicas. Os tipos primitivos Java são os mesmos encontrados na maioria das linguagens de programação e permitem representar valores numéricos, caracteres simples e valores lógicos.. 4.
(5) 14/06/2016. Caracteres especiais Representação de caracteres especiais. Variáveis O nome de uma variável em Java, pode ser formado por. uma seqüência de um ou mais caracteres alfabéticos e numéricos. Regra - pode ser iniciado por: . Uma letra; _ (undecore); $ (cifrã0). Exemplos válidos a, total, x2, $valor, _quantidade. Exemplos inválidos 1x, total Geral, numero-minimo, void, super *void e super são exemplos de palavras reservadas da linguagem Java.. Declaração de variáveis Sintaxe de declaração de variável em Java. <Tipo> <nome> . Exemplos: int contador; double valor; boolean condicao;. Podemos definir um valor inicial para a variável. diretamente em sua declaração . Exemplos: int contador = 10; double valor = 10.5; boolean = true;. O Java é uma linguagem “Fortemente tipada”.. d) Crie uma variável chamada gastosTrimestre e inicialize-a com a soma das outras 3 variáveis: int gastosTrimestre = gastosJaneiro + gastosFevereiro + gastosMarco; e) Imprima a variável gastosTrimestre. 3) Adicione código (sem alterar as linhas que já existem) na classe anterior para imprimir a média mensal de gasto, criando uma variável mediaMensal junto com uma mensagem. Para isso, concatene a String com o valor, usando "Valor da média mensal = "+ mediaMensal.. Exercícios 1) Construa um programa Java que armazene os seus dados pessoais (nome, rg, cpf, data de nascimento e sexo) em variáveis e posteriormente os exibe na tela. 2) Na empresa onde trabalhamos, há tabelas com o quanto foi gasto em cada mês. Para fechar o balanço do primeiro trimestre, precisamos somar o gasto total. Sabendo que, em Janeiro, foram gastos 15000 reais, em Fevereiro, 23000 reais e em Março, 17000 reais, faça um programa que calcule e imprima o gasto total no trimestre. Siga esses passos: a) Crie uma classe chamada BalancoTrimestral com um bloco main, como nos exemplos anteriores; b) Dentro do main declare uma variável inteira chamada gastosJaneiro e inicialize-a com 15000; c) Crie também as variáveis gastosFevereiro e gastosMarco, inicializando-as com 23000 e 17000, respectivamente, utilize uma linha para cada declaração;. Escopo de variáveis É o trecho de código em que aquela variável existe e onde é. possível acessá-la. Variáveis podem ser declaradas em qualquer ponto de um. programa Java, sendo válidas em todo o escopo em que foram declaradas e nos escopos internos a esses.. 5.
(6) 14/06/2016. Variáveis locais São variáveis declaradas dentro de método ou construtores (veremos sobre construtores mais adiante). O ciclo de vida de uma variável local vai do ponto onde ela foi declarada até o fim do bloco onde ela foi declarada. Pode-se verificar isso no código do slide anterior. Variáveis de instância (ou de objetos) São os atributos dos objetos (veremos sobre atributos mais adiante). São declaradas dentro da classe, mas fora de qualquer método ou construtor. Ficam em escopo enquanto o objeto existir.. A conversão de tipos mais complexos em mais simples é chamada de casting.. Casting e promoção Alguns valores são incompatíveis para fazer atribuição direta. A promoção ocorre automaticamente na conversão de tipo mais. simples em outro mais complexo. Castings possíveis Abaixo estão todos os castings possíveis na linguagem Java. A indicação Impl. quer dizer que o cast é implícito e automático.. Caso não tão comum de casting:. Controle de Fluxo O if e else Sintaxe básica:. switch/case É um desvio múltiplo de fluxo que avalia uma expressão ordinal para escolher um caminho de execução dentre vários possíveis. Sintaxe básica:. Condição booleana é qualquer expressão que retorne true ou false. Para isso, podemos utilizar outros operadores (veremos isso mais adiante). Exemplo:. 6.
(7) 14/06/2016. Operadores. Operadores aritméticos. A linguagem Java oferece um conjunto amplo de operadores destinados à realização de operações de atribuição, aritméticas, lógicas, relacionais e bit-a-bit. Operador de atribuição simples . Usa a seguinte sintaxe:. . Em Java é válido o encadeamento de atribuições em que todas as variáveis são inicializadas com o mesmo valor:. . . Os operadores de adição, subtração, multiplicação e divisão se comportam exatamente como na álgebra tradicional.. Operadores relacionais. Operadores de incremento e decremento. . Permitem comparar valores, variáveis ou resultado de expressões retornando um resultado do tipo lógico (true ou false).. . Operadores relacionais duplos não podem conter espaços em branco entre seus símbolos.. MÃO NA MASSA: Elabore um programa de acordo as sentenças acima e imprimir os resultados obtidos.. Operadores lógicos . Conectam logicamente o resultado de diferentes expressões aritméticas ou relacionais.. MÃO NA MASSA: Construa um programa de acordo com as sentenças abaixo: a). Crie uma classe chamada PartidaDeFutebol;. b). Declare o método main;. c). Declare uma variável com o nome donoDaBola e outra filhoDoDono (Ambas do tipo boolean e inicializadas com true ou false – fica a gosto do. . Operadores lógicos duplos não podem conter espaços em branco entre seus símbolos.. freguês ); d). O programa deve verificar se o jogador é o dono da bola ou se é filho do dono;. e). No caso de qualquer uma das possibilidade retornar verdadeiro, o programa deverá imprimir a mensagem: “Pode jogar!”, senão imprimir a mensagem: “Não pode jogar!”.. 7.
(8) 14/06/2016. Operadores de atribuição composta. Operador ternário . . . Os exemplos acima podem ser transformados no código abaixo:. Avaliador de condição que permite utilizar o valor de duas expressões diferentes conforme o resultado da condição avaliada. Sintaxe: <condição> ? <expressão_verdadeira> : <expressão_falsa> Exemplo:. Os operadores de atribuição compostos reduzem a escrita de código e otimizam a execução do programa.. ATIVIDADE: Altere a classe PartidaDeFutebol para que a condição seja avaliada com o uso do operador ternário.. A partir da versão 5 do Java, foi incluída a classe “Scanner”,. Entrada e saída. pertencente ao pacote java.util.. A primeira forma de recuperar dados do usuário, é através do. próprio método “main()”. Quando executamos a classe, o método main é o primeiro a. ser chamado, e nesse método, podemos passar alguns parâmetros. O parâmetro que ele espera é o “args”.. Acessando a primeira posição do array. Essa forma já não é mais utilizada, pois é muito suscetível a erros. Na leitura consecutiva de valores numéricos e String. deve-se esvaziar o buffer do teclado antes da leitura do valor String, por exemplo:. Outros Outros tipos primitivos lido dos através dosnextByte(), métodos: tipos primitivos podempodem ser lidosser através métodos:. nextByte(), nextFloat(), nextDouble(), nextFloat(), nextLong(), nextDouble(), nextLong(), nextShort(). O tipo String pode ser lido com next(), que retorna uma pode palavra, oulido nextLine(), para leitura de uma nextShort(). O tipo String ser com next(), que retorna linha umainteira. palavra, ou nextLine(), para leitura de uma linha inteira.. Exercícios Escreva um programa que leia 3 números, calcule e mostre a soma. Escreva um programa para determinar o consumo médio de um. automóvel sendo lida a distância total percorrida e o total de combustível gasto. Um banco concederá um crédito especial aos seus clientes, variável com o saldo médio no último ano. Escreva um programa que leia o saldo médio de um cliente e calcule o valor do crédito de acordo com a tabela abaixo. Mostre uma mensagem informando o saldo médio e o valor do crédito. Saldo médio Percentual de 0 a 200 nenhum crédito de 201 a 400 20% do valor do saldo médio. Fonte: http://www.devmedia.com.br/entrada-de-dados-classe-scanner/21366. de 401 a 600 30% do valor do saldo. médio. acima de 601 40% do valor do saldo médio. 8.
(9) 14/06/2016. Exercícios: Utilizando switch/case Construa um programa que leia um número que corresponde ao número do dia da semana (1–domingo, 2–segunda-feira, 3–terça-feira, ...) e apresente o nome do respectivo dia. Construa um programa que leia dois números e um operador matemático (+, -, *, /). De acordo com o operador, o programa deverá realizar a operação matemática correspondente e ao final apresentar para o usuário o operador informado e o resultado da operação. Suponha que você atrasou uma conta. A cada mês que você deixa de pagar, será cobrado 1% de juros no valor inicial. Ou seja, se você atrasar um mês, irá pagar 1%. Se atrasar 3 meses, irá pagar 3% etc. Vamos supor que você pode atrasar no máximo 5 meses. O programa pede como entrada: O valor da dívida inicial O número de meses em atraso. O programa deve calcular e apresentar o valor do juro a ser pago.. Na forma mais simples cada marcador inicia com o sinal de. porcentagem (%) e é seguido por um caractere de conversão que representa o tipo de dado do valor a ser impresso.. Saída formatada A partir da versão 5 do Java, é fornecido o método printf(). para saída formatada de dados. Sintaxe System.out.printf(“formatação”, lista de argumentos);. A formatação é uma String que pode conter uma. mensagem intercalada ou não por marcadores para inclusão de valores. Quando esses marcadores estão presentes, deve ser fornecido o mesmo número expressões para prover valores aos marcadores.. As informações de formatação opcionais, como um índice de argumento, precisão e largura de campo, são especificadas entre o sinal de porcentagem e o caractere de conversão.. Formatação opcional. Instruções de Controle (comandos de repetição) while Usado para fazer um laço (loop) – repetir um trecho de código algumas vezes (enquanto uma determinada condição for “verdadeira”); A expressão de comparação é avaliada antes que o laço (loop) seja executado. Repetição controlada por controlador: . Sintaxe. Exemplo. Exige uma variável de controle (contador de loop) O valor inicial da variável de controle O incremento ou decremento pelo qual o contador é modificado a cada iteração (loop). 9.
(10) 14/06/2016. for Um trecho de código é repetido enquanto a condição continuar verdadeira; Repetição controlada por controlador;. do while A instrução do..while testa a instrução de continuação do loop depois de executar o corpo do loop; O bloco sempre é executado pelo menos uma vez. Sintaxe. Sintaxe. Exemplo. Exemplo. Exercícios. Arranjos e Matrizes. Construa um programa para ler o peso de 50 bois. O programa deverá. apresentar o menor e maior peso informado. Construa um programa para ler dois números (positivos e inteiros) informados. pelo usuário. Ao final o programa deve exibir os números ímpares encontrados no intervalo, a quantidade encontrada e o resultado da soma desses números. Construa um programa que recebe dois valores inteiros informados pelo usuário e apresente o resultado da multiplicação deles por meio da adição. Construa um programa para calcular o fatorial de um número informado pelo usuário. Exemplo: 5! = 5*4*3*2*1 Construa um programa que leia um número informado pelo usuário e escreva a sequência Fibonacci. Exemplo da sequência Fibonacci: 0 1 1 2 3 5 8 13 21 34 55 89.... Arrays são estruturas de dados que armazenam um número fixo de elementos de um mesmo tipo; Nos arranjos, os elementos são organizados em uma única dimensão, enquanto nas matrizes eles podem ser distribuídos em várias dimensões. Cada elemento é acessível por meio de um índice relacionado à sua posição. Colchetes [ ] são usados para especificar o índice desejado com um valor. Sintaxe: <Tipo> identificador [ ] = new <Tipo> [Tamanho]. Exemplo 2. Exemplo 1. inicialização na declaração.. Neste caso, o compilador determina o tamanho baseado no. número de elementos fornecidos. elementos sendo acessados por meio do índice.. 10.
(11) 14/06/2016. Exercícios. Matrizes, podem ser distribuídas em várias dimensões. Escreva um programa que leia um vetor de 50 posições de números. inteiros e mostre somente os positivos. Escreva um programa que leia um vetor inteiro de 30 posições e crie um. segundo vetor, substituindo os valores nulos por 1. Mostre os 2 vetores. Escreva um programa que leia e mostre um vetor de 20 elementos inteiros. A seguir, conte quantos valores pares existem no vetor. Escreva um programa que leia um vetor de 30 elementos e crie um segundo vetor para armazenar os elementos do primeiro vetor com o sinal trocado. Exemplo: 1,-3,5,-7 por -1,3,-5,7 Escreva um programa que leia um valor do tipo inteiro informado pelo usuário. O programa deve ainda ler um vetor de 15 posições e verificar se o primeiro valor informado pelo usuário encontra-se em alguma das posições do vetor. Caso o valor seja encontrado, o programa deve apresentar a posição em que foi encontrado.. distintas. Sintaxe: <Tipo> identificador [ ][ ] = new <Tipo> [Tamanho][Tamanho]. Exemplo 1. 1° dimensão. 2° dimensão. Exemplo 2. inicialização na declaração.. POO Paradigma Orientado a Objetos Uma matriz também pode ser inicializada na sua declaração. O que é um Paradigma? Um ponto de vista do mundo real e a forma de atuação. sobre tal concepção. Resumindo: é a forma de abordar um problema. Um paradigma está presente em diversas etapas do desenvolvimento do software: análise, projeto e programação.. Diferentes Paradigmas abordar um problema). (diferentes. formas. de. Paradigma Estruturado . Programação composta por três estruturas: seqüência, decisão e iteração (loop);. . Programação modular: utilização de funções e sub-rotinas.. 11.
(12) 14/06/2016. Conceitos Paradigma Orientado a Objetos . Tudo é um objeto;. . A estrutura do software é divida em unidades denominadas classes que por sua vez é um molde para criação de objetos;. . Cada objeto tem um tipo;. . Objetos tem um estado (definidos pelos valores dos seus atributos) e comportamentos (definidos pelos seus métodos);. . Objetos interagem entre si por meio de troca de mensagens.. Classes e Objetos Objetos São coisas que temos no mundo real e abstraímos no virtual para. manipulá-los na resolução de problemas. Possui Estado – definido pelos valores contidos nas suas propriedades (atributos) Comportamento – define o conjunto de ações que ele pode realizar expostas através dos métodos.. Classes . . É uma especificação para um determinado tipo de objeto, isto é, para que o objeto seja de determinada classe ele, obrigatoriamente, deve respeitar a especificação; Para uma classe podemos ter vários objetos. Criando classes em Java Declaração. Criando classes em Java. Criando classes em Java Declaração Atributos. 12.
(13) 14/06/2016. Criando classes em Java. Criando objetos em Java. Declaração Atributos. Método. Criando objetos em Java. Como acessar o objeto criado? Objetos são acessados por referência.. Aloca memória para o objeto e devolve um valor de referência (endereço). Declaração da variável de referência. Exercício Crie uma classe Carro com os seguintes atributos e métodos: Agora crie uma classe Motor e a relacione com a classe Carro Atributos . modelo cor ano velocidade_atual velocidade_máxima - 100 km/h. Atributos . tipo potencia. Crie uma terceira classe para realizar os testes com as classes Carro e Motor. Métodos . ligar(); desligar(); acelerar(aqui vai a velocidade); buzinar(); exibeVelocidadeAtual();. 13.
(14) 14/06/2016. Construtores. Construtores. Quando. utilizamos a palavra chave new, estamos construindo um objeto. O new executa o construtor da classe. O construtor da classe é um bloco declarado com o mesmo nome que a classe.. Construtores podem receber argumento(s), podendo assim. inicializar algum tipo de informação. Construtor recebendo um argumento do tipo Motor.. Construtores. O construtor default. Quando criarmos um carro, ele já terá um motor. Quando você não declara nenhum construtor na sua classe, O novo carro recebendo um determinado motor. . o Java cria um pra você. Esse construtor não recebe nenhum argumento e o corpo. dele é vazio. A partir do momento que você declara um construtor, o. construtor default deixa de ser fornecido.. Atributos de classe (static). Sobrecarga de métodos (Overloading). Quando declaramos um atributo como static, ele passa a. não ser mais um atributo de cada objeto, e sim um atributo da classe. A informação guardada na classe, não é mais individual para cada objeto.. Pode haver métodos com o mesmo nome dentro da mesma classe? Em Java, podemos ter métodos com o mesmo nome desde. que exista uma maneira de distingui-los no momento da chamada.. Palavra-chave que indica um atributo da classe.. 14.
(15) 14/06/2016. Sobrecarga de métodos (Overloading) A maneira de diferenciá-los está na quantidade, no(s) tipo(s) de parâmetro(s) e na ordem que cada método o(s) recebe.. X. Sobrecarga de métodos (Overloading) Assim também não irá funcionar.. X Observe que o retorno dos dois métodos é diferente e mesmo. assim não vai funcionar.. Sobrecarga de métodos (Overloading). Sobrecarga de métodos (Overloading). Faça o exemplo abaixo e confira os resultados: Resumo: As chamadas de método não podem ser distinguidas por tipo de retorno. Podem ter diferentes tipos de retorno se os métodos tiverem diferentes listas de parâmetros. A ordem dos tipos de parâmetros é importante. Se diferenciam pela sua assinatura que é uma combinação do nome do método, tipos e ordem dos seus parâmetros.. Encapsulamento Encapsular significa esconder detalhes da implementação É uma forma de restringir o acesso aos atributos e ao comportamento interno de um objeto O conhecimento a respeito da implementação é desnecessário do ponto do objeto isso passa a ser responsabilidade dos métodos da classe. Modificadores de acesso public: acessível em qualquer lugar protected: acessível na própria classe, em subclasses (classes filhas) e classes do mesmo pacote (package) private: na própria classe default(package): acessível por todos no mesmo pacote. 15.
(16) 14/06/2016. Métodos acessores: getters e setters. Métodos acessores: getters e setters. Para permitir acesso aos atributos privados (private), a prática mais comum é utilizar métodos acessores: get<nome_do_atributo>(): retorna o valor set<nome_do_atributo>(parâmetros): passa o valor. Bibliografia Junior, Peter Jandl. Java Guia do Programador. 2º ed. São Paulo: Novatec, 2013. Caelum. FJ-11: Java e Orientação a Objetos. (Apostila). Disponível em <http://www.caelum.com.br/apostilas>. DEITEL, Harvey. DEITEL, Paul. Java Como Programar. 8a. ed. São Paulo: Pearson Prentice Hall, 2010.. 16.
(17)
Documentos relacionados
Exposição no Átrio do Auditório Municipal de Mesão Frio Exposição dos trabalhos feitos nas Oficinas de Origamis para alunos, promovida no dia 13 de Abril de 2011 na
E perceberás, então, como o Cristo fustigado na cruz, que os teus mais acirrados perseguidores são apenas crianças de curto entendimento e de
Considerando a formação da equipe de trabalho, o tempo de realização previsto no projeto de extensão e a especificidade das necessidades dos catadores, algumas
A Bíblia diz que “agora já não há condenação para os que estão em Cristo Jesus” A Bíblia diz que “agora já não há condenação para os que estão em Cristo Jesus”
técnicas de persuasão tais como enquadramento – a forma como você vê uma pessoa, lugar ou experiência e o significado que você dá a isso –, reprodução e acompanhamento, e
O destaque conferido pela emissora ao caráter “jornalístico” dos três efêmeros apresentadores do Jornal da Globo, assim como as apostas da direção da
Na concorrência entre os fornecedores de TI para a atualização da infraestrutura da Ibiuna Investimentos, a Planus se destacou não só pela proposta mais completa, mas pela
“Apresentado que é o ponto da situação dos projectos, informo os Senhores Vereadores que conto com a colaboração de todos e assim aguardo que sejam comunicados até ao final do