Arquivo de etiquetas: Java básico

Downcast … como funciona?

Quando realizamos a conversão de uma variável de referência* que referencia um objeto do seu subtipo declarado para o seu subtipo, chamamos esta conversão de downcast. Melhor explicando … Dada a estrutura de classes abaixo:         Se … Continuar a ler

Publicado em Java | Etiquetas | Publicar um comentário

Não é sobrecarga e nem sobreposição!

Não é sobrecarga (overload) pois não há variação nos parâmetros dos métodos. Não é sobreposição (override) pois não ocorre unboxing no retorno das funções e nem ‘int’ é covariante de ‘Integer’.     class A { Integer print(){return 0;} } … Continuar a ler

Publicado em Java | Etiquetas | Publicar um comentário

Passar parâmetro null em método. Qual sobrecarga será escolhida?

    O compilador tende a chamar o método que leva o argumento mais específico ao passar o parâmetro como ‘null’. String é mais especifico que Object.       public class Teste { public static void main(String[] args){         meth(null); … Continuar a ler

Publicado em Java | Etiquetas , | 1 Comentário

Polimorfismo e chamada a método estático. Como isso funciona?

  O output será: Parent get1 Child get2

Publicado em Java | Etiquetas | Publicar um comentário

Construtor declara exceção? (throws em constructor)

Se a classe filha tem uma instância implícita da classe pai, e a classe pai no construtor declara que pode ocorrer uma exceção, então não faz sentido a classe filha terminar de ser construída se ocorrer um erro na construção … Continuar a ler

Publicado em Java | Etiquetas , | Publicar um comentário

Sobreposição é apenas para métodos, não para variáveis (Overriding is only for methods not for variables)

    public class Teste { public static void main(String[] args){ A a = new B(); System.out.println(a.i);     Covariant c = new SubCovariant(); System.out.println(c.getObject().i); }                 }     class A { int i = 5; } class B extends … Continuar a ler

Publicado em Java | Etiquetas | Publicar um comentário

Re-capturando e re-lançando exceções

public class Teste { static public void main(String[] args) { try { throw new Exception(“Pedro”); } catch (Throwable t) { try { throw (Exception) t; // temos que converter para Exception para poder pegar no catch abaixo. } catch (Exception … Continuar a ler

Publicado em Java | Etiquetas | Publicar um comentário

O que imprime este código? (prefix and postfix operators)

O exemplo abaixo trabalha o conceito dos operadores ++ e — bem como inicializadores estáticos. Prefix operators ++x ou –x Postfix operators x++ ou x–     public class Teste { static { int x = 5;} static int x,y; … Continuar a ler

Publicado em Java | Etiquetas | Publicar um comentário

Como funciona o ++ para números negativos?

R.: ++ sempre soma 1 e — sempre subtrai 1.   public class Teste { public static void main(String[] args){ int x = -1, y = 9; double d = 0.5; ++x; ++y; ++d; System.out.format(“x = %1d, y = %2d, … Continuar a ler

Publicado em Java | Etiquetas | Publicar um comentário

Quem inicializa primeiro, blocos estáticos ou variáveis estáticas?

R.: Depende da ordem em que elas aparecem:   public class Teste { static Propriedade p = new Propriedade(); static{System.out.println(“Teste”);} static public void main(String[] args) {     } } class Propriedade { Propriedade(){System.out.println(“Propriedade”);} } Output Propriedade Teste   ————————————————————————————– … Continuar a ler

Publicado em Java | Etiquetas | Publicar um comentário