Utilità delle variabili nelle classi

di il
13 risposte

Utilità delle variabili nelle classi

Ragazzi ciao a tutti, stavo facendo un pò di pratica con le classi in c# ed ho creato una classe che con i metodi chiamati Area e con l'overload mi calcola le varie aree. Innanzitutto non so se il codice ha un senso a funzionare funziona ma non so se è corretto, quindi accetto molto volentieri le critiche.
Ma la domanda è quando vanno utilizzate le variabili, o meglio quando vanno specificate in precedenza nel codice? Perfchè io pur non avendo dicharato nessuna variabile nel corpo della classe ho potuto sviluppare lo stesso il programmino.
Spero di essermi spiegato grazie a tutti

namespace AreaConsole
{
    class Figura
    {

        public Figura() { }

        public float Area(float bas, float altezza)//quadrato
        {
            return bas * altezza;
        }
        public float Area(float raggio)
        {
            return raggio * raggio * 3.14f;
        }
        public decimal Area(decimal bas, decimal altezza, decimal divisore)
        {
            return bas * altezza / divisore;
        }
    }
}

13 Risposte

  • Re: Utilità delle variabili nelle classi

    Per tanti motivi ad esempio se ti serve un contatore che fai?
  • Re: Utilità delle variabili nelle classi

    oregon ha scritto:


    Per tanti motivi ad esempio se ti serve un contatore che fai?
    Scusa potresti essere più preciso sono alle prime armi....
    quindi il codice scritto in quel modo può andare bene? Grazie
  • Re: Utilità delle variabili nelle classi

    Tu hai chiesto "in generale" a che servono o solo "nel caso specifico"?
  • Re: Utilità delle variabili nelle classi

    oregon ha scritto:


    Tu hai chiesto "in generale" a che servono o solo "nel caso specifico"?
    In generale certo. Però non arrivo a capire il contatore come viene inserito nel codice, o meglio nel procedurale capisco come utilizzarlo ma nella classe non capisco dove possa essere collocato ed utilizzato...
  • Re: Utilità delle variabili nelle classi

    Quello che mi chiedo poi è "quindi non per forza nelle funzioni ho bisogno di richiamare le variabili?"
  • Re: Utilità delle variabili nelle classi

    Fai un po' di confusione ... parli di variabili usate all'interno di metodi? O dove? Fai un esempio.
  • Re: Utilità delle variabili nelle classi

    La tua implementazione e' la versione C# delle funzioni di libreria.

    Prova a ragionare su QUESTA implementazione (la sintassi e Java, ma i concetti sono gli stessi di C#):
    
    
    class Figura {
    
        public double perimetro(){ return 0; }
        public double area() { return 0; }
    }
    
    
    class Cerchio extends Figura {
    
       private double raggion;
    
       public Cerchio(double r) { raggio = r; }
    
        public double perimetro(){ return 2*PI*raggio; }
        public double area(){ return PI*raggio*raggio; }
    }
    
    class Quadrato extends Figura {
    
        private double larghezza, altezza;
    
        public Quadrato(double l, double a){ larghezza = l; altezza = a; }
    
        public double perimetro(){ return 2*(altezza + larghezza); }
        public double area(){ return altezza*larghezza; }
    
    }
    
    
  • Re: Utilità delle variabili nelle classi

    oregon ha scritto:


    Fai un po' di confusione ... parli di variabili usate all'interno di metodi? O dove? Fai un esempio.
    Creo questa classe che ha una funzione incremento ed una decremento
    
    class Esercizio
        {
            public int _contatore=1;
            /*public int contatore
            {
                get { return _contatore; }
                set { _contatore = value; }
            }*/
    
            public Esercizio() { }
    
            public int IncrementoContatore()
            {
                _contatore++;
                return _contatore;
            }
            public int DecrementoContatore()
            {
                _contatore--;
                return _contatore;
            }
        }
    Quando vado ad usare le funzioni modifico inevitabilmente la variabile contatore, a questo punto non sarebbe stato meglio usare un contatore per ogni metodo o crearlo addirittura all'interno del metodo? Si la confusione ci sta
  • Re: Utilità delle variabili nelle classi

    migliorabile ha scritto:


    La tua implementazione e' la versione C# delle funzioni di libreria.

    Prova a ragionare su QUESTA implementazione (la sintassi e Java, ma i concetti sono gli stessi di C#):
    
    
    class Figura {
    
        public double perimetro(){ return 0; }
        public double area() { return 0; }
    }
    
    
    class Cerchio extends Figura {
    
       private double raggion;
    
       public Cerchio(double r) { raggio = r; }
    
        public double perimetro(){ return 2*PI*raggio; }
        public double area(){ return PI*raggio*raggio; }
    }
    
    class Quadrato extends Figura {
    
        private double larghezza, altezza;
    
        public Quadrato(double l, double a){ larghezza = l; altezza = a; }
    
        public double perimetro(){ return 2*(altezza + larghezza); }
        public double area(){ return altezza*larghezza; }
    
    }
    
    
    Ok l'esercizio originale era come il tuo e poi io l' ho modificato in quel modo. Perchè preferire il tuo metodo anzichè il mio?
    Nel senso vorrei capire perchè è meglio usare il tuo metodo...grazie mille
  • Re: Utilità delle variabili nelle classi

    Qui entra in giocolo la FILOSOFIA che sta' alla base della programmazione ad oggetti.

    Il tuo sistema non e' sbagliato, ma segue una FILOSOFIA differente, che si chiama programmazione procedurale.

    Ed ora cambia il termine FILOSOFIA in PARADIGMA DI PROGRAMMAZIONE e vai su wikipedia per leggere che cosa sono i termini che ti ho indicato
  • Re: Utilità delle variabili nelle classi

    migliorabile ha scritto:


    Qui entra in giocolo la FILOSOFIA che sta' alla base della programmazione ad oggetti.

    Il tuo sistema non e' sbagliato, ma segue una FILOSOFIA differente, che si chiama programmazione procedurale.

    Ed ora cambia il termine FILOSOFIA in PARADIGMA DI PROGRAMMAZIONE e vai su wikipedia per leggere che cosa sono i termini che ti ho indicato
    Si ho capito molto bene con il tuo esempio, forse il mio problema è che penso ancora in piccolo. Mi spiego meglio, riprendendo il nostro esempio io in quel caso pensavo solo all'area e quindi ho racchiuso tutti i calcoli dell'area in una sola classe...ma se pensiamo che il cerchio ha tante altre caratteristiche così come il quadrato il rombo ecc allora in effetti il mio discorso viene a cadere e quindi conviene creare diverse classi che hanno in comune le stesse basi.
    1)Ho capito bene?
    2)A questo punto ti chiedo come in tutte le cose non bisogna eccedere? Nel senso più classi ci sono è meglio è? Più applico l'ereditarietà e più sviluppo meglio un progetto? Sto estremizzando, ma voglio capire bene le basi
    3) Nel tuo esempio se non sbaglio non hai ustao le classi virtual, lo hai fatto per farmi comprendere un concetto o perchè è bene non abusarne?
    L'ostacolo principale è entrare nell'ottica della oop. Cmq grazie mille
  • Re: Utilità delle variabili nelle classi

    Non esiste "LA RISPOSTA"!

    1) si
    2) ovviamente! Non ha senso generare classi per qualunque cosa, come NON HA SENSO avere classi con N-milioni di metodi ed M-miliardi di righe di codice. Va tutto calibrato, oppurtunamente suddiviso e compartimentato
    3) esattamente: una delle comodita' della programmazione ad oggetti e' esattamente questa: la "virtualizzazione" dei metodi. Sai che c'e', sai che ritorna quello che deve ritornare, non ti serve sapere come lo fa.

    La programmazione ad oggetti e' ben piu' articolata della sola ereditarieta'.

    Come MINIMO devi iniziare a comprendere che cosa e' una interfaccia (esistono in Java, in C#, ed anche in C++ seguendo opportune regolette filosofiche/di stile, in Python, ecc)

    e cosa sono i design patterns:

    https://en.wikipedia.org/wiki/Software_design_patter



    Comunque NON ECCEDERE, di concetti c'e' ne sono a camionate, e per digerirli non ti basta l'Alka Seltzer o il Digestivo Antonietto

    Serve tempo e pratica. A mia conoscenza, non ci sono scorciatoie
  • Re: Utilità delle variabili nelle classi

    Grazie mille ...sei stato gentilissimo
Devi accedere o registrarti per scrivere nel forum
13 risposte