Visualizzazione dei risultati da 1 a 8 su 8
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43

    perchè non funziona questo codice?

    //si vuole creare una classe composta dalle classi cubo sormontato da un cilindro che è sormontato da mezza sfera

    codice:
    public class composizione {
    	private cubo a;
    	private cilindro c;
    	private sfera s;
    	public composizione(cubo aa,cilindro cc,sfera ss)
    	{
    	a=aa;
            c=cc;
    	s=ss;
    	}
    	public double getAreaTotale()
    	{
    		double area=(a.getAreaTotale())-(a.getAreaDiBase())+(a.getAreaDiBase())-(c.getAreaBase())+c.getSuperficieLaterale()+s.getSuperficie()/2;
    		return area;
    	}
    	public double getVolumecubo()
    	{
    		double volume=a.getVolume();
    		return volume;
    	}
    	public double getvolumeCilindro()
    	{
    		double volume=c.getVolume();
    		return volume;
    	}
    	public double volumeMezzaSfera()
    	{
    		double volume=s.getVolume()/2;
    		return volume;
    	}
    	public double getVolumeTotale()
    	{
    		double volume=(a.getVolume())+(c.getVolume())+(s.getVolume());
    		return volume;
    	}
    }
    n.b. le classi cubo,cilindro e sfera le ho già create e sono funzionanti ,le ho messe nella stessa directory in cui ho salvato questo file!

  2. #2
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Controllo parentesi: OK
    Controllo corrispondenza nomi: Ok
    Controllo stile codice: 2 warning -> nessuna indentazione, nomi di classi senza l'iniziale maiuscola

    Impossibile effettuare ulteriori analisi.

    Prego fornire dettagli sull'errore. grazie.
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  3. #3
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,320

    Moderazione

    Come da regolamento, il codice va postato indentato all'interno degli appositi tag CODE.

    Se possibile, correggo io.


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  4. #4
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Aggiungo un warning...
    getVolumecubo
    non rispetta lo standard. Dovrebbe essere
    codice:
    getVolumeCubo
    Resta il fatto che quanto postato potrebbe anche essere corretto. Bisognerebbe sapere cosa c'è altrove... ciao!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  5. #5
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43
    Originariamente inviato da Pastore12
    Controllo parentesi: OK
    Controllo corrispondenza nomi: Ok
    Controllo stile codice: 2 warning -> nessuna indentazione, nomi di classi senza l'iniziale maiuscola

    Impossibile effettuare ulteriori analisi.

    Prego fornire dettagli sull'errore. grazie.
    questi sono gli errori segnalati dal compilatore:
    composizione.java:3: cannot find symbol
    symbol : class cubo
    location: class composizione
    private cubo a;
    ^
    composizione.java:6: cannot find symbol
    symbol : class cubo
    location: class composizione
    public composizione(cubo aa,cilindro cc,sfera ss)
    ^
    composizione.java:14: operator + cannot be applied to int,cubo.getAreaDiBase
    double area=(a.getAreaTotale())-(a.getAreaDiBase())+(a.getAreaDiBase())-(c.getAreaBase())+c.getSuperficieLaterale()+s.getS uperficie()/2;
    ^
    composizione.java:14: cannot find symbol
    symbol : method getAreaBase()
    location: class cilindro
    double area=(a.getAreaTotale())-(a.getAreaDiBase())+(a.getAreaDiBase())-(c.getAreaBase())+c.getSuperficieLaterale()+s.getS uperficie()/2;
    ^
    composizione.java:14: operator + cannot be applied to <any>,double
    double area=(a.getAreaTotale())-(a.getAreaDiBase())+(a.getAreaDiBase())-(c.getAreaBase())+c.getSuperficieLaterale()+s.getS uperficie()/2;
    ^
    composizione.java:14: operator + cannot be applied to <nulltype>,double
    double area=(a.getAreaTotale())-(a.getAreaDiBase())+(a.getAreaDiBase())-(c.getAreaBase())+c.getSuperficieLaterale()+s.getS uperficie()/2;
    ^
    composizione.java:14: incompatible types
    found : <nulltype>
    required: double
    double area=(a.getAreaTotale())-(a.getAreaDiBase())+(a.getAreaDiBase())-(c.getAreaBase())+c.getSuperficieLaterale()+s.getS uperficie()/2;
    ^
    composizione.java:34: operator + cannot be applied to cubo.getVolume,double
    double volume=(a.getVolume())+(c.getVolume())+(s.getVolum e());
    ^
    composizione.java:34: operator + cannot be applied to <nulltype>,double
    double volume=(a.getVolume())+(c.getVolume())+(s.getVolum e());
    ^
    composizione.java:34: incompatible types
    found : <nulltype>
    required: double
    double volume=(a.getVolume())+(c.getVolume())+(s.getVolum e());
    ^
    10 errors
    per favore qualcuno mi spieghi come funziona la composizione di oggetti!!!!!!!!!!!!!!non ci ho capito niente!

  6. #6
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Gli errori si analizzano uno alla volta.. sperando di partire da quello giusto.. che di solito è il primo.

    Se sei alle prime esperienze è normale avere un sorgente con più errori che righe, ma mica ti devi perdere d'animo!

    composizione.java:3: cannot find symbol symbol : class cubo
    Cominciamo da qui. Hai scritto una classe di nome cubo? Se ce l'hai per favore rinominala in Cubo, e correggi di conseguenza tutti i nomi cubo che compaiono nel tuo codice.

    Se provi a compilare cubo, compila? O genera errore?
    Dove si trova cubo? nella stessa cartella della classe che hai postato o altrove?

    A presto!
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

  7. #7
    Utente di HTML.it
    Registrato dal
    Dec 2008
    Messaggi
    43
    ok grazie dell'aiuto ora funziona ma non so come creare l'oggetto composizione.
    questo è il codice che ho scritto ma non me lo compila.

    public class comporre {
    public static void main (String args[]){

    composizione a=new composizione((10),(3,6),(3));
    a.getAreaTotale();
    System.out.println(a.getAreaTotale);
    }
    }
    mi da i seguenti errori:
    comporre.java:4: ')' expected
    composizione a=new composizione((10),(3,6),(3));
    ^
    comporre.java:4: <identifier> expected
    composizione a=new composizione((10),(3,6),(3));
    ^
    comporre.java:4: not a statement
    composizione a=new composizione((10),(3,6),(3));
    ^
    comporre.java:4: ';' expected
    composizione a=new composizione((10),(3,6),(3));
    ^
    4 errors

  8. #8
    Utente di HTML.it L'avatar di Pastore12
    Registrato dal
    Oct 2008
    Messaggi
    1,051
    Rimetti mano al codice e comincia a dare ai nomi delle classi un nome che inizi per lettera minuscola. Il rispetto degli standard serve a rendere più facile la comprensione del codice, ma anche ad evitare errori banali.

    Codice PHP:
    public class Comporre
    {
        public static 
    void main (String [] args){
            
    Composizione a = new Composizione((10),(3,6),(3)); // ? 
            
    a.getAreaTotale();
            
    System.out.println(a.getAreaTotale());
        }

    Poi ricordati di usare i tag [ php ][ /php] o [ code][/ code] per delimitare il codice adeguatamente indentato.

    A parte il metodo getAreaTotale() chiamato con getAreaTotale, cosa stai cercando di fare con

    new Composizione((10),(3,6),(3));
    il costruttore non dovrebbe essere new Composizione(Cubo cubo,Cilindro cilindro, Sfera sfera); ?
    "Ethics are to me something private. Whenever you use it as an argument for why somebody_else should do something, you’re no longer being ethical, you’re just being a sanctimonious dick-head"
    Linus Torvalds

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.