Visualizzazione dei risultati da 1 a 3 su 3
  1. #1

    Richiamo metodi dentro un altro metodo

    Sto effettuando i primi passi con java avendo buone basi di C e mi sto dilettando con questo programmino:



    codice:
    package angolo;
    
    
    
    
    
    
    public class Angolo {
        private int g;
        private int p;
        private int s;
        public Angolo (int g, int p, int s){
            this.g=g;
            this.p=p;
            this.s=s;
        }
        public Angolo (Angolo angolo){
            this.g= angolo.g;
            this.p= angolo.p;
            this.s= angolo.s;
        }
        public void VisualizzaAngolo(){
            System.out.println(g+"°"+p+"'"+s+"''");
        }
        public void AggiungiGrado(int n){
            g=g+n;
            g=g%360;
        }
        public void AggiungiPrimi(int n){
            p=p+n;
            g=g+(p/60);
            if(p>=60){
                p=p%60;
            }
        }
        public void AggiungiSecondi(int n){
            s=s+n;
            p=p+(s/60);
            if(s>=60){
                s=s%60;
            }
        }
        public int AngoloSecondi(){
            return s+((p+(g*60))*60);
        }
        public void SecondiAngolo(int n){
            g=n/3600;
            p=(n%3600)/60;
            s=n-((g*3600)+(p*60));
            }
        public int DifferenzaSecondi(int a){
            return AngoloSecondi-a;
        }
        public void SommaAngolo(int a){
            SecondiAngolo(AngoloSecondi+a);
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            Angolo ang;
            ang= new Angolo(10, 25, 37);
            Angolo copia;
            copia= new Angolo(ang);
            ang.VisualizzaAngolo();
            ang.AggiungiSecondi(25);
            ang.AggiungiPrimi(43);
            ang.AggiungiGrado(255);
            System.out.println(ang.AngoloSecondi());
            ang.SecondiAngolo(4884615);
            ang.VisualizzaAngolo();
            System.out.println(ang.DifferenzaSecondi(5115));
            ang.SommaAngolo(19625);
            System.out.println("Angolo Originale: ");
            copia.VisualizzaAngolo();
            System.out.println("Angolo Modificato: ");
            ang.VisualizzaAngolo();
        }
    }
    Però dopo la compilazione mi escono fuori errori riguardanti i metodi DifferenzaSecondi e SommaAngolo; in essi ho richiamato il metodo AngoloSecondi che restituisce un valore intero, è sbagliata questa operazione?
    Se si come risolvo?
    Intel Pentium E6500 @3.6 GHz | Asus P5G41-M LX | Asus Radeon HD 6770
    2x Kingston DDR2 800 2 GB | Windows 7 Ultimate x64

  2. #2
    Utente di HTML.it
    Registrato dal
    Feb 2011
    residenza
    Firenze
    Messaggi
    260
    Quote Originariamente inviata da alex5800 Visualizza il messaggio
    Sto effettuando i primi passi con java avendo buone basi di C e mi sto dilettando con questo programmino:



    codice:
    package angolo;
    
    
    
    
    
    
    public class Angolo {
        private int g;
        private int p;
        private int s;
        public Angolo (int g, int p, int s){
            this.g=g;
            this.p=p;
            this.s=s;
        }
        public Angolo (Angolo angolo){
            this.g= angolo.g;
            this.p= angolo.p;
            this.s= angolo.s;
        }
        public void VisualizzaAngolo(){
            System.out.println(g+"°"+p+"'"+s+"''");
        }
        public void AggiungiGrado(int n){
            g=g+n;
            g=g%360;
        }
        public void AggiungiPrimi(int n){
            p=p+n;
            g=g+(p/60);
            if(p>=60){
                p=p%60;
            }
        }
        public void AggiungiSecondi(int n){
            s=s+n;
            p=p+(s/60);
            if(s>=60){
                s=s%60;
            }
        }
        public int AngoloSecondi(){
            return s+((p+(g*60))*60);
        }
        public void SecondiAngolo(int n){
            g=n/3600;
            p=(n%3600)/60;
            s=n-((g*3600)+(p*60));
            }
        public int DifferenzaSecondi(int a){
            return AngoloSecondi()-a;
        }
        public void SommaAngolo(int a){
            SecondiAngolo(AngoloSecondi()+a);
        }
        
        /**
         * @param args the command line arguments
         */
        public static void main(String[] args) {
            Angolo ang;
            ang= new Angolo(10, 25, 37);
            Angolo copia;
            copia= new Angolo(ang);
            ang.VisualizzaAngolo();
            ang.AggiungiSecondi(25);
            ang.AggiungiPrimi(43);
            ang.AggiungiGrado(255);
            System.out.println(ang.AngoloSecondi());
            ang.SecondiAngolo(4884615);
            ang.VisualizzaAngolo();
            System.out.println(ang.DifferenzaSecondi(5115));
            ang.SommaAngolo(19625);
            System.out.println("Angolo Originale: ");
            copia.VisualizzaAngolo();
            System.out.println("Angolo Modificato: ");
            ang.VisualizzaAngolo();
        }
    }
    Però dopo la compilazione mi escono fuori errori riguardanti i metodi DifferenzaSecondi e SommaAngolo; in essi ho richiamato il metodo AngoloSecondi che restituisce un valore intero, è sbagliata questa operazione?
    Se si come risolvo?
    Se chiami dei metodi devi rispettare la signature del metodo che vuoi chiamare! Nel tuo caso è AngoloSecondi() e non AngoloSecondi senza parentesi!
    Come facevi tu il compilatore credeva che AngoloSecondi era una variabile e non un metodo!

  3. #3
    Risolto potete chiudere
    Intel Pentium E6500 @3.6 GHz | Asus P5G41-M LX | Asus Radeon HD 6770
    2x Kingston DDR2 800 2 GB | Windows 7 Ultimate x64

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.