u1 cannot be resolved Probleme mit einem Programm


F

Faton

Hallo Leute Ich habe ein Problem mit einem JavaProgramm für die UNI.

Ich soll dort einige Uhrzeiten mittels Methoden (set,get,add,sub) addieren subtrahieren...
Jedoch habe ich ein Probem "u1 cannot be resolved"
ich schreibe hier einfach mal das Programm rein:



Java:
   public class Uhrzeit{
   
      private int stunden,minuten,sekunden;
      int uhrzeit;  
      public Uhrzeit(){
      }
      
      
      public Uhrzeit(int stunden,int minuten,int sekunden){
            if(stunden>23 || stunden<0){
               //System.out.println("Fehler!:Gültige Stunden nur von 0-23");

            }
         
            else if(minuten>59 || minuten<1){
               //System.out.println("Fehler!:Gültige Minuten nur von 0-59"); 

            }
         
            else if(sekunden>59 || sekunden<1){
      
            }
                                
            else {         
               this.stunden= stunden;
               this.minuten= minuten;
               this.sekunden= sekunden;
            }
         
         
         
      }
      
      public void setUhrzeit(int stunden,int minuten, int sekunden){
            if(stunden>23 || stunden<0){
               //System.out.println("Fehler!:Gültige Stunden nur von 0-23!");
   
            }
         
            else if(minuten>59 || minuten<1){
               //System.out.println("Fehler!:Gültige Minuten nur von 0-59!"); 
      
            }
         
            else if(sekunden>59 || sekunden<1){
               //System.out.println("Fehler!:Gültige Sekunden nur von 0-59!"); 
           
            }
                                
            else {         
               this.stunden= stunden;
               this.minuten= minuten;
               this.sekunden= sekunden;
          
            }
         
         
         }
      
      
      
      public int getUhrzeit(){
            return this.uhrzeit;
      }      
      
      public int getStunden(){
            return this.stunden;
       }

      public int getMinuten(){
            return this.minuten;
      } 
      
      public int getSekunden(){
            return this.sekunden;
      }     
      public String toString(){
            return stunden+":"+minuten+":"+sekunden;
      }
      public void add(Uhrzeit u2){
            int stundenU1, stundenU2,minutenU1,minutenU2,sekundenU1,sekundenU2,stundenAdd,minutenAdd,sekundenAdd;
            stundenU1= u1.getStunden();
            stundenU2= u2.getStunden();
            minutenU1= u1.getMinuten();
            minutenU2= u2.getMinuten();
            sekundenU1= u1.getSekunden();
            sekundenU2= u2.getSekunden();
            
            stundenAdd= stundenU1+stundenU2;
            minutenAdd= minutenU1+minutenU2;
            sekundenAdd= sekundenU1+sekundenU2;
            
            
            if(sekundenAdd>59){                          //Diese If anweisungen prüfen ob die zulässige zeit von 23 59 59 überschritten wird
                  sekundenAdd= sekundenAdd-59;           //Ich fange von hinten an da ich ,wenn 80 sekunden sind, 1 zur minute addieren kann.
                  minutenAdd= minutenAdd+1;                  
            }
            
            if(minutenAdd>59){
                  minutenAdd= minutenAdd-59;
                  stundenAdd= stundenAdd+1;             //Siehe zeile 99.
            }      
                        
            if(stundenAdd>23){
                  stundenAdd= stundenAdd-23;
            }
            u1.setUhrzeit(stundenAdd,minutenAdd,sekundenAdd);
                   
                       
      }
      
  
 
  
      public static void main(final String[] args) {
      
            Uhrzeit u1 = new Uhrzeit(),
               u2 = new Uhrzeit(9,20,20),
               u3 = new Uhrzeit(14,59,02),
               u4 = new Uhrzeit(18,50,2);
               u1.setUhrzeit(15,50,60);
               u1.add(u2);
               // u3.sub(u4);
            
                 
            System.out.println(u1);                                       

            System.out.println(u2);
          
            System.out.println(u3);

            System.out.println(u4);
                         
               
               
               
               
            
            
           // System.out.println(u1.früher(u2));
           // System.out.println(u3.früher(u4));
            
            
            //System.out.println(u3.equals(u4));
            int h = u4.getStunden(),
                m = u4.getMinuten(),
                s = u4.getSekunden();
            u3.setUhrzeit(h, m, s);
           // System.out.println(u3.equals(u4));
            
            int i = 02;
           // Uhrzeit u5 = u4.clone();
           // System.out.println(u5 == u4);
          //  System.out.println(u5.equals(u4));
            
      
      }
  
   }
kann mir jemand sagen wieso er add() nicht ausführt...

die fehlermeldungen sind:

1. ERROR in Uhrzeit.java (at line 87)
stundenU1= u1.getStunden();
^^
u1 cannot be resolved
----------
2. ERROR in Uhrzeit.java (at line 89)
minutenU1= u1.getMinuten();
^^
u1 cannot be resolved
----------
3. ERROR in Uhrzeit.java (at line 91)
sekundenU1= u1.getSekunden();
^^
u1 cannot be resolved
----------
4. ERROR in Uhrzeit.java (at line 112)
u1.setUhrzeit(stundenAdd,minutenAdd,sekundenAdd);
^^
u1 cannot be resolved
 

Kai008

Erfahrenes Mitglied
Es gibt die Java-Tag's nicht ohne grund.
Ganz einfach, u1 gibt es nicht, wie soll er denn die Methode getStunden() aufrufen, wenn diese Variable nicht existiert?

Java:
public void add(Uhrzeit u2)
{
	int stundenU1, stundenU2,minutenU1,minutenU2,sekundenU1,sekundenU2,stundenAdd,minutenAdd,sekundenAdd;
	stundenU1= u1.getStunden();
	stundenU2= u2.getStunden();
	minutenU1= u1.getMinuten();
	minutenU2= u2.getMinuten();
	sekundenU1= u1.getSekunden();
	sekundenU2= u2.getSekunden();
 

zerix

Hausmeister
Moderator
Hallo,

wie Kai schon sagte, das u1 bzw u1 existiert nicht. Du hast zwar Variablen mit dem Namen in der main-Methode angelegt, aber diese Variablen sind nur in der main-Methode bekannst, sonst nirgends. Wenn du diese Objecte in anderen Methoden verwenden möchtest, solltest du sie als Klassenvariable anlegen.

Gruß

Sascha
 

Forum-Statistiken

Themen
272.355
Beiträge
1.558.606
Mitglieder
187.827
Neuestes Mitglied
kanagawez