Página Inicial do Fórum > Java Avançado

Chamada de método...



Criar novo tópico   Responder tópico


  1. volnei
    Posts:2212


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Pessoal deixa essa pra quem está começando...



    Qual será a saída do programa?




  1. ping
    Posts:1739


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Object
    String
    _________________
    Blog sobre mobilidade




  1. volnei
    Posts:2212


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    ping
    Object
    String



    Será? Porque?




  1. lucastex
    Posts:3773


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    uiiii que vontade......

    =X
    _________________
    Lucas Teixeira .·.
    lucas@ltvm.net




  1. ping
    Posts:1739


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    public class Teste {
    public static void main(String[] args){
    Teste t = new Teste();

    Object o1 = "teste";
    t.teste(o1);

    Object o2 = new String("teste");
    t.teste(o2);

    }
    public void teste(String s){
    System.out.println("String");
    }
    public void teste(Object o){
    System.out.println("Object");
    }
    }

    Na linha 5 o objeto t chama o método teste(Object o) que resultará na saída "Object" e na linha 7 o objeto t chama o método teste passando uma String, que resulta na saída "String"... me corriga se eu estiver errado
    _________________
    Blog sobre mobilidade




  1. volnei
    Posts:2212


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    ping
    me corriga se eu estiver errado



    Tá bom, tá errado.. ops:




  1. ping
    Posts:1739


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    E como seria a resposta certa...
    _________________
    Blog sobre mobilidade




  1. Edinei Manica
    Posts:2456


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    volnei
    ping
    me corriga se eu estiver errado



    Tá bom, tá errado.. ops:



    Puh eu acho que ta correto !!!!!




  1. Edinei Manica
    Posts:2456


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Não mas acho que vai mostrar:


    Olha se é isto !!!!




  1. lucastex
    Posts:3773


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Edinei_Manica
    Não mas acho que vai mostrar:


    Olha se é isto !!!!



    e porque?? dá pra explicar???



    _________________
    Lucas Teixeira .·.
    lucas@ltvm.net




  1. ping
    Posts:1739


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Mas porque que mostra isso?
    _________________
    Blog sobre mobilidade




  1. Edinei Manica
    Posts:2456


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Eu acho que por que as duas vezes ele esta passando um objeto para a função !!!!!




  1. ping
    Posts:1739


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Mas na segunda vez ele instancia um objeto String...
    _________________
    Blog sobre mobilidade




  1. Edinei Manica
    Posts:2456


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    ping
    Mas na segunda vez ele instancia um objeto String...



    Mas ele passa o Object !!!!!!




  1. carlosbarretto
    Posts:1113


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Object

    Object

    mesmo que o Objeto o2 seja criado como uma new String() ele não deixa de ser tratado como Object!
    _________________
    Carlos E. A. Barretto
    Bacharel em Ciência da Computação
    Sun Certified Java Programmer 1.4
    Sun Certified Web Components Developer 1.4
    JavaFree.org




  1. Tadeu_Santos
    Posts:390


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    String é subclasse de Object, logo String é um Object
    _________________
    JavaFree.org




  1. jgbt
    Posts:1214


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Chegando meio atrasado...

    Acho que vai imprimir "Object" "Object", porque ele chama duas vezes o metodo que recebe em object como parametro, pq ele cria um Objetc com um String, mas qinda é um object.
    acho que é isso.

    Alguem tem resposta certa.

    []'s
    _________________
    João Bier
    JavaFree.org




  1. carlosbarretto
    Posts:1113


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Tadeu_Santos
    String é subclasse de Object, logo String é um Object



    mas se fosse criado :

    String o2 = new String("teste");

    apareceria String! e não Object!
    _________________
    Carlos E. A. Barretto
    Bacharel em Ciência da Computação
    Sun Certified Java Programmer 1.4
    Sun Certified Web Components Developer 1.4
    JavaFree.org




  1. lucastex
    Posts:3773


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    Tadeu_Santos
    String é subclasse de Object, logo String é um Object



    Isso....

    o que acontece é o seguinte Ping.....

    O Poliformismo (varias formas) diz que uma uma referencia para um objeto de uma classe pode ser considerada referencia para qualquer sub-classe dele....

    Acho que te expliquei bem no outro topico.... tanto para subclasses quanto para interfaces...

    O que acontece é que a sobre-carga de métodos ali nunca será utilizada..... ele sempre chama "do maior para o menor" ou seja... "da super classe para a sub classe"

    Como String (e qualquer outra classe criada por voce) extende da java.lang.Object ele identifica que voce está passando um object para ele... e entao chama este método....

    No caso da necessidade de tratamento da String, poderia ser feito:



    Espero ter entendido, ok?

    Abraços
    _________________
    Lucas Teixeira .·.
    lucas@ltvm.net




  1. Edinei Manica
    Posts:2456


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    carlosbarretto
    Tadeu_Santos
    String é subclasse de Object, logo String é um Object



    mas se fosse criado :

    String o2 = new String("teste");

    apareceria String! e não Object!



    Concerteza, pois ai estaria passando uma String !!!




  1. ping
    Posts:1739


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    agora eu entendi muito bem... eu não tinha me ligado na história do polimorfismo mesmo
    _________________
    Blog sobre mobilidade




  1. lucastex
    Posts:3773


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    ping
    agora eu entendi muito bem... eu não tinha me ligado na história do polimorfismo mesmo





    Recomendo a voce a estudar bem firme nesta area de Poliformismo.... é muito importante o seu entendimento para qualeur bom programador em java...



    _________________
    Lucas Teixeira .·.
    lucas@ltvm.net




  1. Tadeu_Santos
    Posts:390


    Comment Arrow

    Publicado em: 09/04/2009 23:18:44

    carlosbarretto
    Tadeu_Santos
    String é subclasse de Object, logo String é um Object



    mas se fosse criado :

    String o2 = new String("teste");

    apareceria String! e não Object!



    Com certeza!
    Só para lembrar porque pode-se fazer


    T+
    _________________
    JavaFree.org




  1. Relacionados





Novo tópico   Responder tópico     Índice do forum -> Java Avançado