Lista de Exercícios 2 Curso de Java Básico
Transcrição
Lista de Exercícios 2 Curso de Java Básico
Lista de Exercícios 2 Curso de Java Básico Entrega para o dia 17/07 1. Tipos primitivos • Java possui alguns tipos primitivos. a. Para números inteiros java possui 4 tipos diferentes que variam com qual o maior número representado por ele. Liste os 4 tipos e mostre a sintaxe de inicialização deles (ie. int a = 1; como seria se fosse um ponto flutuante? b. Para representação de pontos flutuantes java possui 2 tipos diferentes que variam com qual o maior número representado por ele. Liste os 2 tipos, e mostre a sintaxe de inicialização deles (ie. int a = 1; como seria se fosse um ponto flutuante?) c. Qual o tipo primitivo para caracteres? d. Qual o tipo primitivo para representar 2 valores (true,false) e. Qual o valor de b ao após o assign abaixo: byte b = (byte) 255; 2. Wrappers a. Defina o que é um wrapper (Literal primitivo) b. Qual o wrapper para inteiros? c. Qual o wrapper para pontos flutuantes? Mostre a sintaxe para inicialização de um ponto wrapper de ponto flutuante a partir de um tipo primitivo. d. Qual o wrapper para para o tipo primitivo de caracteres? 3. Casting a. Defina o que é casting. b. A partir de um tipo primitivo short converta-o em um inteiro. c. Crie um objeto String a partir da seguinte variavel “ char a = 'a' ” 4. Modificadores de acesso • Defina os 4 modificadores de acesso (public, default, private e protected) • Crie a seguinte classe: package br.curso.java public class Bau { protected String getTextoProtegido(){ return "protegido"; } public String getTextoPublico(){ return "publico"; } private String getTextoPrivado(){ return "privado"; } String getTextoPadrao(){ return "padrao"; } } Escreva uma classe, se for possível, no pacote “br” que acesse o método getTextoPublico. • Escreva uma classe, se for possível, no pacote “br” que acesse o método getTextoProtegido. • Escreva uma classe, se for possível, no pacote “br” que acesse o método getTextoPadrao. • Escreva uma classe, se for possível, no pacote “br” que acesse o método getTextoPrivado. • Escreva uma classe, se for possível, no pacote “br.curso.java” que acesse o método getTextoProtegido. • Escreva uma classe, se for possível, no pacote “br.curso.java” que acesse o método getTextoPrivado. • Escreva uma classe, se for possível, no pacote “br.curso.java” que acesse o método getTextoPadrao. • 5. Comentários • Isto é um comentário ou um javadoc: // isto é um javadoc • Isto é um comentário ou um javadoc: /** isto é um comentário **/ • Isto é um comentário ou um javadoc: /* isto é um comentário */ • Se dentro de um método de uma classe inserirmos a seguinte linha: http://w3.ibm.com/bluepages ao compilar obteremos erro de compilação? Sim, não, por quê? 6. Blocos de controle • Construa uma classe Controle com os seguintes métodos: • public void imprimeDeUmACem() - usando um bloco de controle “for” imprime os numeros de 1 a 100. • public void repeteAteReceberUm() - usando um bloco de controle “while” leia a entrada do teclado repetidamente, até receber o caracter '1'. dica: use o seguinte código para ler uma entrada do teclado: try { char entrada = (char)System.in.read(); } catch (IOException e) { e.printStackTrace(); } O método System.in.read() lê toda a entrada do teclado e retorna o primeiro caractere inserido, guardando na sua fila de entrada (buffer) os outros caracteres inseridos. Portanto quando você insere na linha de comando “1” e tecla enter, o System.in.read lerá “1\n\r” e retornará o '1' mantendo o “\n\r”(que significa quebra de linha) na fila. Então quando você tenta ler novamente a entrada do teclado inserindo “2” e enter, ele concatenará aquela entrada à fila atual ou que será: “\n\r2\n\r” e retornará o primeiro que será '\n'. Crie um método para limpar o buffer do System.in.read ou seja, para limpar os caracteres '\n' e '\r' da entrada. E lembre-se que a entrada é em ASCII. • public void leImprimeSeForMaiorQueUmMenorQueOito(); - usando while leia a entrada do teclado e se a entrada tiver o valor do caracter '1' ao caracter '8' imprime o valor dele na saída padrão, caso contrário termina o programa. dica: o caracter '1' tem valor inteiro igual a 49 (ascii) 7. Arrays • Crie um array que será preenchido pelos 20 primeiros valores inteiros inseridos na entrada (teclado). Ao final imprima o array na ordem inversa. 8. Constructor • Dadas as classes Pai e Filho diga se elas compilam e por quê? Responda também por quê usamos a identificador “this”. O que aconteceria se não o usássemos? public class Pai { private int idade; public Pai(int idade){ this.idade = idade; } } public class Filho extends Pai { public Filho(){ } } 9. toString, equals • Dada a classe ContaBancaria, e assumindo que duas contas são iguais se seus números o são: public class ContaBancaria{ private int numero; public ContaBancaria(int numero){ this.numero=numero; } } • Qual será o resultado nas linhas 1, 2 e 3 da seguinte execução: public static void main(String[] args){ ContaBancaria conta1 = new ContaBancaria(1234); ContaBancaria conta2 = new ContaBancaria(5678); ContaBancaria conta3 = new ContaBancaria(1234); System.out.println(conta1==conta2); //linha 1 System.out.println(conta1.equals(conta2)); //linha 2 System.out.println(conta1.equals(conta3)); //linha 3 } • Como seria possível verificar corretamente com o método equals se uma conta é igual a outra conta? • O resultado do seguinte comando: System.out.println(conta1); produz algo do tipo: ContaBancaria@11a698a O que significa esse resultado? O que pode ser feitor para que este resultado seja do tipo “Conta bancária número 1234” sendo que 1234 é o número da conta?