Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    68

    dubbio su alcuni concetti di base

    Ciao a tutti, sono un nuovo iscritto. Frequento l'università di informatica e programmiamo in Java. Non ho capito i seguenti concetti di base:

    -cosa serve il .this
    -differenza tra ciclo for e ciclo while
    -differenza tra compareTo, == , equals
    -cos'è l'errore runtime

    Qualcuno me li sa spiegare in modo semplice semplice?
    Grazie

  2. #2
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: dubbio su alcuni concetti di base

    Originariamente inviato da 8paolo9
    Qualcuno me li sa spiegare in modo semplice semplice?
    Un po' troppe cose .... ma vediamo di spiegare un po' tutto.

    Originariamente inviato da 8paolo9
    -cosa serve il .this
    In un metodo di "istanza" il this è il riferimento all'oggetto su cui è stato invocato il metodo. Esiste anche nel contesto di un costruttore.

    Originariamente inviato da 8paolo9
    -differenza tra ciclo for e ciclo while
    Beh, la forma/sintassi!

    for (EspressioneInit ; Condizione ; EspressioneUpdate) Istruzione

    while (Condizione) Istruzione

    Istruzione può ovviamente anche essere { Istruzioni .... }

    Originariamente inviato da 8paolo9
    -differenza tra compareTo, == , equals
    Qui parlo specificatamente solo per i tipi reference, ovviamente:

    a) == verifica solo la uguaglianza di due reference, non il contenuto degli oggetti referenziati. refA == refB è true solo se i due reference sono uguali, ovvero fanno riferimento allo stesso identico oggetto.

    b) equals() è di Object e in Object la sua implementazione fa la stessa cosa di == (non potendo fare altro). Nelle sottoclassi l'override di equals() dovrebbe avere l'obiettivo di stabilire se il contenuto di due oggetti è di "significato" equivalente, ovvero vanno visti come oggetti con lo stesso contenuto.

    c) compareTo() ha a che fare con la interfaccia Comparable. Comparable va implementato nella classe degli oggetti da comparare e l'obiettivo è quello di stabilire l'ordine "naturale" degli oggetti di quel tipo (e ce ne può essere solo 1, visto che è implementato nella classe stessa degli oggetti da comparare). compareTo() fornisce un valore che consente di sapere se l'oggetto su cui è stato invocato il metodo è minore, maggiore o uguale all'oggetto passato al metodo.

    Originariamente inviato da 8paolo9
    -cos'è l'errore runtime
    Qui dipende da cosa intendi (non è chiaro/preciso), ma presuppongo sia legato alle eccezioni.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #3
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    68
    Innanzi tutto ti ringrazio per le varie risposte date. Vorrei ancora chiedere:

    Riuardo al this, per metodo ad istanza cosa intendi?

    Riguardo l'errore runtime, in quali casi mi da questo tipo di errore?? Ad esempio l'errore out of bounds esce quando scrivo 5 valori in un array da 4..

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da 8paolo9
    per metodo ad istanza cosa intendi?
    I metodi sono di 2 tipi: "di classe" e "di istanza". Un metodo di classe è marcato con il modificatore static e appartiene appunto alla classe e non ad ogni istanza (=oggetto) della classe. In un metodo statico il this non c'è ... non è usabile. Un metodo statico lo si invoca sul nome della classe es. NomeClasse.metodoStatico() anche se è tecnicamente possibile invocarlo su di un reference (e in tal caso conta il tipo del reference, non il suo valore e l'oggetto referenziato!!) sebbene questo però sia molto fuorviante e quindi da evitare.

    Un metodo di istanza è invece associato ed appartiene ad ogni singola istanza della classe. Non è marcato 'static' ed è invocato su un oggetto, non su una classe. Ogni oggetto ha quel metodo di istanza che può operare sul suo "stato" proprio grazie al this che fa riferimento all'oggetto stesso.

    Questa differenza "di classe" / "di istanza" esiste anche per le variabili che sono membro della classe.

    codice:
    public class UnaClasse {
        private static int variabileDiClasse;
        private int variabileDiIstanza;
    
        public static void metodoDiClasse() { }
        public void metodoDiIstanza() { }
    }
    Originariamente inviato da 8paolo9
    Riguardo l'errore runtime, in quali casi mi da questo tipo di errore?? Ad esempio l'errore out of bounds esce quando scrivo 5 valori in un array da 4..
    Qui stai parlando di una eccezione, la ArrayIndexOutOfBoundsException che viene lanciata dalla JVM quando si accede ad un array con un indice fuori range.
    Il discorso sulle eccezioni però sarebbe un po' più lungo. Se hai altre domande più specifiche, chiedi pure.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Jan 2010
    Messaggi
    68
    La domanda sul'errore run time potrebbe uscirmi all'esame.
    Se all'esame di Programmazione I ti uscisse la domanda "Che cos'è l'errore run time?" o qualche domanda possibile su quel tipo di errore tu cosa risponderesti?

  6. #6
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Originariamente inviato da 8paolo9
    Se all'esame di Programmazione I ti uscisse la domanda "Che cos'è l'errore run time?"
    Detto così vuol dire tutto e niente... Si riferisce ad una eccezione particolare (java.lang.RuntimeException)? Ad un generico errore a tempo di esecuzione? Non è chiaro...
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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 © 2025 vBulletin Solutions, Inc. All rights reserved.