Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177

    [java]compareTo con campo privato

    Ciao facendo un esercizio sull'ereditarietà mi sono trovato davanti ad un dilemma...come faccio ad confrontare(con compareTo()) due ogetti,che appartengono uno alla superclasse ed uno alla sottoclasse che contengono campi privati?Cioè se ho la seguente superclasse:

    codice:
    class Person{
    private String name;
    Person(String n){
    this.name=n;
    }
    public String GetName(){
    return name;
    }public String toString(){
    String s="";
    return s+=name;
    }
     }
    e poi la sottoclasse:

    codice:
    class Man extends Person implements Comparable<Man>{
        String f;
    Man(String n){
    super(n);
    this.f=n;
    
    }
    
    public String GetF(){
        return this.f;
    }
    public String toString(){
        String f="";
        return f+=GetF();
    }
    public int compareTo(Man m){
        Person p=(Person)m;
        return m.toString().compareTo(p.toString());
    }
    public static void main(String [] args){
        Person p=new Person("davide");
        Man m=new Man("luca");
        System.out.println(m.toString());
        System.out.println(m.compareTo(m));
        
        }
    }
    come faccio a comparare il campo name della sottoclasse con quello della superclasse(quindi nel main i nomi "luca" e "davide")?
    Ultima modifica di el92; 02-06-2015 a 12:52

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da el92 Visualizza il messaggio
    come faccio a comparare il campo name della sottoclasse con quello della superclasse(quindi nel main i nomi "luca" e "davide")?
    Innanzitutto non è affatto appropriato quello che hai fatto. Se Person ha già un campo per il nome, allora Man che estende Person NON deve definire un altro campo nome!!
    E cioè detto anche nei termini di compareTo, non ha praticamente mai senso comparare due campi differenti, peggio ancora se uno di una classe e l'altro della superclasse.

    P.S. se vuoi realizzare codice più leggibile, cerca di dare nomi più sensati a variabili e metodi: p m n f .... lasciano il tempo che trovano ....

    P.S.2: e comparare il toString() .... brrr
    Ultima modifica di andbin; 02-06-2015 a 14:07
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

  3. #3
    Utente di HTML.it L'avatar di el92
    Registrato dal
    Dec 2014
    Messaggi
    177
    Ciao grazie per la risposta.... non ho mai fatto un esercizio così...però mi chiede di comparare la superclasse con la sottoclasse...come dovrei fare?

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,254
    Quote Originariamente inviata da el92 Visualizza il messaggio
    Ciao grazie per la risposta.... non ho mai fatto un esercizio così...però mi chiede di comparare la superclasse con la sottoclasse...come dovrei fare?
    Ma ti è chiaro che avere un campo name in Person per il nome e un campo f in Man sempre per il nome .... non ha senso?
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    Java Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.