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?