Prova Comentada

Questão 1:

package aula04;

public class Array {
	
	int[] array;
	int[] ar= new int[2];
	
	public static void main(String[] args) {
		System.out.println(new Array().array);
		System.out.println(new Array().ar[1]);
		System.out.println(new Array().ar);

//imprime a referencia do objeto (ja instanciei)
	}
}

Resultado:

null
0
[I@77f31432    

Questão 2:

package aula04;

public class ObjRef {
	
	int[] ar={2,3,4};
	int[] ob=ar;
	void method(){
		ob[1]=50;
		for(int z:ob)
			System.out.println(" " + z);
	}

//observe que a alteração no objeto ob reflete no objeto ao qual ele referencia, devido 
//a eles se referireem a mesma instancia
	
	public static void main(String[] args) {
		System.out.println("antes da alteração...");
		for(int z: new ObjRef().ar)
			System.out.println(" " + z);
		System.out.println("\napos...");
		new ObjRef().method();
	}
}    

Resultado:

antes da alteração...
 2
 3
 4

apos...
 2
 50
 4    

Questão 3:

package aula04;

public class BlocoFv {
	
	static{System.out.println("bloco static");}
	{System.out.println("instancia");}
	BlocoFv(){
		System.out.println("construtor");}

	public static void main(String[] args) {
		new BlocoFv();}

//observe primeiro a saida static, depois o bloco Instancia e, por ultimo,
//o construtor
}

Resultado:

bloco static
instancia
construtor

Questão 4:

package aula04;

public class Capb {	
	{int x=1;}
	int z=x;
	
	public static void main(String[] args) {
//o codigo nao compila
//o x é uma variavel local do bloco
	}
}

public class DuvBloc{
	{System.out.println(10);}
	static {System.out.println(20);}
	
	public static void main(String[] args) {
		new DuvBloc();
		new DuvBloc();
	}
	
//static - roda quando a classe é carregada non-static - quando o construtor
//é chamado e a cada instancia de um new objeto
}

Resultado:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 

	at aula04.Capb.main(Capb.java:7)

Questão 5:

package aula04;

public class PrBoal {
	
	private Boolean b;
	private boolean b2;
	
	void metodo(){
		System.out.println(b);
		System.out.println(b2==b);//linha8
		System.out.println(b2);
	}

	public static void main(String[] args) {
		new PrBoal().metodo();
	}

//lanca uma exceção porque os objetos sao incializados com null e tentei
//usa-lo na linha8 NULLPOINTEREXCEPTION
}

Resultado:

null
Exception in thread "main" java.lang.NullPointerException
	at aula04.PrBoal.metodo(PrBoal.java:10)
	at aula04.PrBoal.main(PrBoal.java:15)

Questão 6:

package aula04;

public class PadBoolean {
	
	public static void main(String[] args) {
		Boolean b = new Boolean();
		boolean b2 = false;

//nao compila
//o construtor de Boolean esta vazio, sendo invalido

	}
}

Resultado:

Exception in thread "main" java.lang.Error: Unresolved compilation problem: 
	The constructor Boolean() is undefined

	at aula04.PadBoolean.main(PadBoolean.java:6)

Questão 7:

package aula04;

public class ValorCompWrp {
	
	public static void main(String[] args) {
		Integer it = 10;
		Short sh = 10;
		System.out.println(sh.equals(it));

//imprime false devido aos tipos serem diferentes, mas compila
//se fosse com == nao compilava
	}
}

Resultado:

False

Questão 8:

package aula04;

public class BolWrapper {
	static boolean b4;
	
	public static void main(String[] args) {
		Boolean b = new Boolean("TruE");
		Boolean b2 = new Boolean("Camilo");
		Boolean b3 = new Boolean(null);
		System.out.println(b);
		System.out.println(b2);
		System.out.println(b3);
		System.out.println(b4);
	}
//qualquer valor em args que nao seja true, vai ser false, e para null tambem
//o valor padrao de boolean é false

}

Resultado:

true
false
false
false

Questão 9:

package aula04;

public class TestOr {
	
	public static void main(String[] args) {
		if((isIt(3)) || (isIt(7))){
			System.out.println("result is true");
		}
		if((isIt(6)) || (isIt(9))){
			System.out.println("result is true");
		}
	}

	public static boolean isIt(int i){
		if(i<5){
			System.out.println("i<5");
			return true;
		}else{
			System.out.println("i>=5");
			return false;
		}
	}	
}

Resultado:

i<5
result is true
i>=5
i>=5

Questão 10:

package aula04;

public class Valid {

	void val()throws Exception{
//o metodo perigoso lança um exceção
		try {
			valid();
		} catch (Exception ex) {}}
	void valid() throws Exception{
		throw new Exception();
	}
	
//o codigo compila normalmente, ja que tratamos a exceção
//que o metodo pode lancar
	
	public static void main(String[] args) {}
	
}

Resultado:

Em branco

Questão 11:

package aula04;

public class Del {
	
	public static void main(String[] args) {
		StringBuilder su;
		su = new StringBuilder("pato");
		System.out.println(su);
		su.delete(1, 3);
		System.out.println(su.length());
		System.out.println(su);
	}

//observe que tanto String quanto Builder/buffer tem o metodo lenght(), ja que no fundo
//tambem sao strings

}

Resultado:

pato
2
po

Questão 12:

package aula04;

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;

class Arquivo {

	public static void main(String[] args) {
		File f = new File("arquivo.txt");
		try {

//nao foi preciso criar um arquivo usando o metodo de criação
//a classe FileWriter criou automaticamente
			
			FileWriter fw = new FileWriter(f);
			BufferedWriter bw = new BufferedWriter(fw);
			bw.write("lopes");
			bw.newLine();
			bw.write("neto");
			bw.flush();
			bw.close();
		} catch (Exception ex) {
//lendo
			try {
				FileReader fr = new FileReader(f);
				BufferedReader br = new BufferedReader(fr);
				String s;
				while((s=br.readLine())!=null){
					System.out.println(s);
				}
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
	}
}

Resultado:

Em branco