| 
					
							
        
    
        
						
			 | 
			
			
					    
					
        
         
          
         
	
            | typedef i java Fra : Thomas Krog | 
  Dato :  10-05-01 11:11 |  
  |   
            Findes der noget i java der svarer til typedef fra c++ dvs:
 typedef int VINDEX;
 
 efter denne linje i c++ virker VINDEX som et alias for int.
 
 Eller er man i java nødt til at oprette en klasse (*) for at opnå samme
 virkning
 
 (*) Med alle de ulember det indebærer:
 - brug af new operator
 - stærkt stigende antal klasser hvis man forsgøer at abstrahere de fleste
 typer
 - redefinering af alle de operatorer der kan anvendes på standard typer.
 - a+b bliver til a.add(b) (betyder at lange udtryk bliver sværere at læse)
 
 
  
            
             |   |   
            
        
 
            
         
           Martin Schou (10-05-2001) 
         
	
            | Kommentar Fra : Martin Schou | 
  Dato :  10-05-01 12:58 |  
  |   
            Desværre kender jeg ikke svaret på dit spørgsmål.
 
 Men jeg vil mægtig gerne vide, hvad pointen er i at bruge et andet navn 
 for simple datatyper, for jeg kan ikke rigtig se det smarte i at skrive
 
 ....
  typedef int WINDEX;
  WINDEX TalA, TalB;
 ....
 
 i stedet for at skrive
 
 ....
  int TalA, TalB;
 ....
 
 Jeg er ganske nysgerrig.
 
 /Hektor
  
            
             |   |   
            
        
 
            
         
           Lars Dam (10-05-2001) 
         
	
            | Kommentar Fra : Lars Dam | 
  Dato :  10-05-01 14:39 |  
  |   
            On Thu, 10 May 2001 12:10:52 +0200, "Thomas Krog"
 <rick@kampsax.dtu.dk> wrote:
 
 >Findes der noget i java der svarer til typedef fra c++ dvs:
 >typedef int VINDEX;
 
 Niks.
 >
 >efter denne linje i c++ virker VINDEX som et alias for int.
 >
 >Eller er man i java nødt til at oprette en klasse (*) for at opnå samme
 >virkning
 
 Yup.
 
 >(*) Med alle de ulember det indebærer:
 >- brug af new operator
 >- stærkt stigende antal klasser hvis man forsgøer at abstrahere de fleste
 >typer
 >- redefinering af alle de operatorer der kan anvendes på standard typer.
 >- a+b bliver til a.add(b) (betyder at lange udtryk bliver sværere at læse)
 
 Dette er operator overloading som Java ikke har. Så du bliver nødt til
 at lave add(),sub() etc. Med vilje ikke implementeret i Java da
 op.overloading i 99% bliver misbrugt.
 
 Jeg er nu nysgerrig, hvorfor har du behov for at 'typedef'e'? Måske
 kan det være at du ikke har brug for det, men du kun ser de muligheder
 du kender fra C++ verdenen?
 
 Selv har jeg kodet Java i mange år nu og har ikke haft brug for typdef
 endnu.
 
 vh. ld
 
 -- 
 "Time is the fire in which we burn"
  
            
             |   |   
            
        
 
            
         
           Thomas Krog (10-05-2001) 
         
	
            | Kommentar Fra : Thomas Krog | 
  Dato :  10-05-01 16:28 |  
  |   
            > Dette er operator overloading som Java ikke har. Så du bliver nødt til
 > at lave add(),sub() etc. Med vilje ikke implementeret i Java da
 > op.overloading i 99% bliver misbrugt.
 
 til klasser for komplekse tal og matricer synes jeg nu det er meget
 praktisk. Kan du give et eksempel på misbrug?
 
 > Jeg er nu nysgerrig, hvorfor har du behov for at 'typedef'e'?
 
 Primært for at gøre det overkommeligt at ændre typen af fx. VINDEX (vertex
 index) fra eksemplet. For tiden skriver jeg en algoritme i c++ som regner på
 et antal punkter i planen. Det er nærmest umuligt at sige på forhånd hvilken
 type disse koordinater skal have. Følgende java typer er alle gode
 kandidater:
 short
 int
 long
 float
 double
 Desuden er unsigned også en mulighed.
 Algoritmens hastighed kan være stærkt afhængig af koordinaternes type. Det
 samme gælder pladsforbruget. Engang var hastigheden næsten den samme for int
 og float, men idag er float væsentligt hurtigere(*). Den slags er svært at
 forudsige. Måske vil brugeren gerne kunne ændre typen alt efter hvilken
 opgave algoritmen skal løse. Derfor er koordinaterne blevet typedef'et. I
 rene algoritmer typedef'er jeg næsten alle typer så der aldrig står en
 grundlæggende type i min kode. Som regl får jeg et helt typedef hirarki der
 minder lidt om et klassehirarki.
 
 Desuden mener jeg også at koden er en smule mere læselig da VINDEX er mere
 beskrivende end int.
 
 >Måske
 > kan det være at du ikke har brug for det, men du kun ser de muligheder
 > du kender fra C++ verdenen?
 
 jo, hvis du kender nogle alternative løsninger i java vil jeg selvfølgelig
 gerne høre...
 
 
 (*) og for rigtig lang tid siden (fra før co-processoren) var der kæmpe
 hastighedsforskel på int og float
 
 
  
            
             |   |   
            
        
 
    
 
					
					 
			 | 
			
				
        
			 |