You are not logged in.

frühling

Praktikant

  • "frühling" is female
  • "frühling" started this thread

Posts: 6

Date of registration: Jul 28th 2006

Location: Hannoveranerin durch und durch

Occupation: was? , kann mich nicht mehr erinnern :-)

1

Tuesday, August 1st 2006, 9:51am

Spass &Java

Good morning ,

da man die Programmiersprache nicht nur hier in Forum auf streit und Vorwürfen reduzieren sollte ,habe ich mir erlaubt einen Schnitt zu machen .

Ich habe hier ein Programm und möchte Kommentare von Euch lesen:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
public class test{
             public static void main (String[] args){
                    int[] a={1,2,3,4,5,6};
                    for(int i=0;i<a.length;i++){
                               System.out.println(a[i]);
                    }

                    Ausgabe(a);
                    
                   public static int[] Ausgabe(int[] b){
                            return b;
                    }

                   System.out.print(a);
           }
}


Was meint IHR ,wie sehen die Ergebnisse aus, und vor allem WARUM?

Ich freue mich schon auf eine konstruktive Diskussion

man sollte nicht auf fehler achten ,vielleicht habe ich mich auch ab und an vertippt ,es geht mir nur um die Argumentation der Ergebnisse.

This post has been edited 1 times, last edit by "frühling" (Aug 1st 2006, 10:02am)


  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

2

Tuesday, August 1st 2006, 9:58am

RE: Spass &Java

Quoted

Original von frühling
Was meint IHR ,wie sehen die Ergebnisse aus, und vor allem WARUM?
Syntax-Fehler in Zeile 1. ;) (EDIT: Wurde schon korrigiert)

Wenn ich darüber aber hinwegsehe, vermute ich folgendes:

Die erste for-Schleife sollte "1 2 3 4 5 6" zurückliefern, jeweils mit Zeilenumbruch statt Leerzeichen.

Ob verschachtelte statische Methoden in dieser Form in Java erlaubt sind, weiß ich gerade nicht. Jedenfalls halte ich die Methode Ausgabe aus diesem Grund für schlechten Stil. Außerdem ist sie unnötig, da sie die Identität auf int[] berechnet.

Was System.out.print(a) liefert, weiß ich gerade nicht. System.out.print(...) ist jedenfalls nicht für int[] definiert. Entweder wird hier die Object-Variante verwendet oder es gibt einen Fehler.

Klassennamen schreibt man übrigens üblicherweise groß; das sollte der Compiler aber nicht beanstanden.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 4 times, last edit by "Joachim" (Aug 1st 2006, 10:14am)


Jens

Praktikant

  • "Jens" is male

Posts: 18

Date of registration: Dec 11th 2001

3

Tuesday, August 1st 2006, 10:31am

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class test {

             public static int[] Ausgabe(int[] b){
                    return b;
             }

             public static void main (String[] args){
                    int[] a={1,2,3,4,5,6};
                    for(int i=0;i<a.length;i++){
                               System.out.println(a[i]);
                    }

                    Ausgabe(a);
                    
                   System.out.print(a);
           }
}
So wäre der richtige Code, da Methodendefinitionen innerhalb von Methoden nicht erlaubt sind.

Quoted

Die erste for-Schleife sollte "1 2 3 4 5 6" zurückliefern, jeweils mit Zeilenumbruch statt Leerzeichen.

Dem schließe ich mich an.

Die Methode "Ausgabe" macht nichts sinnvolles was die Ausgabe betrifft und ist daher eher unnötig.

Die zweite Ausgabe liefert den Adressbereich, in dem das Array im Speicher liegt bzw anfängt.
Die Ausgabe ist z.b. [I@3df4. Dabei kennzeichnet glaub ich "[" die Tatsache das es sich um ein Array handelt, "I" das es sich um den int/Integer Datentyp handelt und @xxxx ist dann die hex Adresse im Speicher. Kann aber sein das ich damit nich ganz richtig liege...weiß ich gerade nich so genau.

This post has been edited 1 times, last edit by "Jens" (Aug 1st 2006, 10:32am)


frühling

Praktikant

  • "frühling" is female
  • "frühling" started this thread

Posts: 6

Date of registration: Jul 28th 2006

Location: Hannoveranerin durch und durch

Occupation: was? , kann mich nicht mehr erinnern :-)

4

Tuesday, August 1st 2006, 10:43am

@Jens
@Joachim
vielen Dank für Eure Antworten.

Quoted

Original von Jens

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public class test {

             public static int[] Ausgabe(int[] b){
                    return b;
             }

             public static void main (String[] args){
                    int[] a={1,2,3,4,5,6};
                    for(int i=0;i<a.length;i++){
                               System.out.println(a[i]);
                    }

                    Ausgabe(a);
                    
                   System.out.print(a);
           }
}
So wäre der richtige Code, da Methodendefinitionen innerhalb von Methoden nicht erlaubt sind..


Warum denn das?
Man kann doch Methodeninnerhalb einer anderen Methode definieren!,
die Ergebnisse habe ich auch bekommen mit meinem Code, und oft ist es sehr gewünscht einige Methoden innerhalb Methoden zu definieren .



Quoted

Original von Jens
Die Methode "Ausgabe" macht nichts sinnvolles was die Ausgabe betrifft und ist daher eher unnötig...


Was ist dann sinnvoll für ein Array , kann man es NIE mit einer RETURN -Anweisung oder eine PRINT/PRINTLN Anweisung zurückgeben?

Muß man für die AUSGABE eines Arrays immer eine Schleife benutzen ,um elementenweise es auszugeben?

This post has been edited 1 times, last edit by "frühling" (Aug 1st 2006, 10:44am)


  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

5

Tuesday, August 1st 2006, 11:00am

Quoted

Original von frühling

Quoted

So wäre der richtige Code, da Methodendefinitionen innerhalb von Methoden nicht erlaubt sind..


Warum denn das?
Man kann doch Methodeninnerhalb einer anderen Methode definieren!,
Soweit ich weiß gibt es in Java nur innere Klassen, aber keine "inneren Methoden".

Quoted

und oft ist es sehr gewünscht einige Methoden innerhalb Methoden zu definieren .
Dann erzähl' mal. Mir fällt nämlich gerade keine sinnvolle Verwendung dafür ein.

Quoted

Quoted

Original von Jens
Die Methode "Ausgabe" macht nichts sinnvolles was die Ausgabe betrifft und ist daher eher unnötig...


Was ist dann sinnvoll für ein Array , kann man es NIE mit einer RETURN -Anweisung oder eine PRINT/PRINTLN Anweisung zurückgeben?
Klar kann man Arrays via "return" als Rückgabewert einer Methode definieren, das hast Du ja vorgemacht. Mit der Ausgabe auf der Konsole hat das aber nichts zu tun.

System.out.print(ln) ist aber in der Tat nicht für int[] definiert. In "richtigen" objektorientierten Programmen verwendet man aber nach Möglichkeit sowieso Klassen, die Arrays kapseln und eine eigene toString-Methode mitbringen. Daher ist das elementweise Ausgaben eines Arrays kein relevantes Problem.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

This post has been edited 1 times, last edit by "Joachim" (Aug 1st 2006, 11:01am)


Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

6

Tuesday, August 1st 2006, 11:09am

Quoted

Original von Joachim

Quoted

Original von frühling
und oft ist es sehr gewünscht einige Methoden innerhalb Methoden zu definieren .
Dann erzähl' mal. Mir fällt nämlich gerade keine sinnvolle Verwendung dafür ein.


Ich hab mir das neulich auch mal gewünscht, und zwar hatte ich, um doppelten Code zu vermeiden, Codeblöcke als Methode ausgelagert. Nur fragt sich jetzt der Leser des Codes evt. was diese Methode mit der Klasse zu tun hat. Daher hätte ich es auch schön gefunden, wenn ich die Methode als Untermethode der "zugehörigen" Methode hätte schreiben können, da so die Struktur der Klasse IMHO schöner (lies: lesbarer) gewesen wäre.
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...

Jens

Praktikant

  • "Jens" is male

Posts: 18

Date of registration: Dec 11th 2001

7

Tuesday, August 1st 2006, 11:14am

Quoted

Man kann doch Methodeninnerhalb einer anderen Methode definieren!,
die Ergebnisse habe ich auch bekommen mit meinem Code, und oft ist es sehr gewünscht einige Methoden innerhalb Methoden zu definieren .

Also Methodendefinitionen in Methoden sind mir bisher in Java noch nich untergekommen.

Meines Wissens können in Java nur Methoden in Klassen definiert werden.

Dabei unterscheidet man in Klassenmethoden und in Instanzmethoden.
Klassenmethoden sind diejenigen, die mit dem Schlüsselwort "static" versehen sind und werden mit Klassenname.methode() aufgerufen.
Instanzmethoden sind diejenigen, die ohne das Schlüsselwort "static" deklariert wurden und können erst aufgerufen werden, nachdem ein Objekt der Klasse instanziiert wurde ( z.B new Haus().getPreis() ).

Im Normalfall verwendet man Instanzmethoden in Java.

Innerhalb von Methoden kann man nur andere Methoden aufrufen, aber nich definieren. Wie sollte man denn auch Methoden die in Methoden definiert sind von außerhalb aufrufen? Um in Java Methoden aufrufen zu können brauch man entweder die Klasse (für Klassenmethoden) oder eine Objektinstanz (für Instanzmethoden)

Das einzige "verschachtelte" was es in Java gibt, sind sogenannte innere Klassen.


Quoted

Was ist dann sinnvoll für ein Array , kann man es NIE mit einer RETURN -Anweisung oder eine PRINT/PRINTLN Anweisung zurückgeben?

Mit den Print und Println Methoden, kann man beliebige Objekte auf der Konsole ausgeben. Wie die Objekte auf der Konsole dargestellt werden, hängt von der toString() Methode des jeweiligen Objektes ab, da diese Methode implizit aufgerufen wird.
In RETURN Anweisungen kannst du natürlich auch Arrays benutzen, nur für gewöhnlich macht man dann im Code später auch was mit dem Objekt was durch die RETURN Anweisung zurückgeliefert wird.

Quoted

Muß man für die AUSGABE eines Arrays immer eine Schleife benutzen ,um elementenweise es auszugeben?

Ja muss man.
(Alternativ kannst du dir aber auch eine eigene Array Klasse definieren, die die toString() Methode implementiert. In die toString() Methode packst du dann die Schleife.)

dluebke

Trainee

  • "dluebke" is male

Posts: 37

Date of registration: Aug 26th 2004

8

Tuesday, August 1st 2006, 11:15am

Quoted


Ich hab mir das neulich auch mal gewünscht, und zwar hatte ich, um doppelten Code zu vermeiden, Codeblöcke als Methode ausgelagert. Nur fragt sich jetzt der Leser des Codes evt. was diese Methode mit der Klasse zu tun hat. Daher hätte ich es auch schön gefunden, wenn ich die Methode als Untermethode der "zugehörigen" Methode hätte schreiben können, da so die Struktur der Klasse IMHO schöner (lies: lesbarer) gewesen wäre.


Dann sollte die Methode private sein. Die hat dann mit dem äußeren Verhalten nichts zu tun. Was trotzdem nicht heisst, dass sich die Leute dann nicht wundern werden, aber dann kann man ihnen das auch gleich sagen, dass nur public-Methoden für sie von Interesse sein sollten :-)

Und noch was zu den Javakonventionen (was ich hier so verstreut gesehen habe):
- Klassennamen bitte groß (Test)
- Methodennamen bitte klein (ausgabe)
(Mag jetzt klugscheisserisch sein, aber wenn man sich konsequent dran hält, dann liest sich Quelltext echt besser... Dachte bei Ausgabe erst an einen Konstruktoraufruf...)

Daniel

  • "Joachim" is male

Posts: 2,863

Date of registration: Dec 11th 2001

Location: Hämelerwald

Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)

9

Tuesday, August 1st 2006, 11:21am

Quoted

Original von Markus
Ich hab mir das neulich auch mal gewünscht, und zwar hatte ich, um doppelten Code zu vermeiden, Codeblöcke als Methode ausgelagert. Nur fragt sich jetzt der Leser des Codes evt. was diese Methode mit der Klasse zu tun hat. Daher hätte ich es auch schön gefunden, wenn ich die Methode als Untermethode der "zugehörigen" Methode hätte schreiben können, da so die Struktur der Klasse IMHO schöner (lies: lesbarer) gewesen wäre.
Hm, klingt auf den ersten Blick einleuchtend.

Allerdings legt die mehrfache Verwendung einer Methode den Schluß nahe, daß diese Methode von allgemeiner Bedeutung für die verwendete Datenstruktur ist. Von daher wäre es vielleicht besser, die Methode in eine neue Klasse auszulagern, die die verwendete Datenstruktur modelliert.
The purpose of computing is insight, not numbers.
Richard Hamming, 1962

frühling

Praktikant

  • "frühling" is female
  • "frühling" started this thread

Posts: 6

Date of registration: Jul 28th 2006

Location: Hannoveranerin durch und durch

Occupation: was? , kann mich nicht mehr erinnern :-)

10

Tuesday, August 1st 2006, 11:42am

ich habe mir mal Folgendes überlegt (Bitte nicht so genau drauf schauen ,es ging mir halt um das Nutzen der Methodendefinitionen innerhalb einer Methode,ich hoffe ,daß ich mich nicht lächerlich mache :-( ).


Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
public class app_1{
           public static void main(String args[]){

              int a=Integer.parseInt(args[0]);
       
              ausgabe(a);
		

              public static int ausgabe(int b){
	                        if(b==0)ausgabe1(b);
	                        if(b>0)ausgabe2(b);
	                        if(b<0)ausgabe3(b);
			 
	                          private void ausgabe1(int c){
		                       ...
	                          } 
			 
	                         private void ausgabe2(int r){
		                       ...
	                         }
			 
	                        private void ausgabe3(int e){
		                       ...
	                        }
			

                                        return b;
	       }
		 
        }
}


ich finde ,daß man mit dem Aufruf ausgabe(a); gleich 4 Methoden in EINS aufgerufen hat ,ich finde es doch sinnvoll .

Hogi

Trainee

  • "Hogi" is male

Posts: 69

Date of registration: Oct 8th 2003

Location: Rinteln

11

Tuesday, August 1st 2006, 12:03pm

das geht bei java vermutlich deswegen nicht, weil es nur bei prozeduraler programmierung (also alles static) wirklich größere vorteile durch die hierarchische struktur bringt. für gewöhnlich ruft man aber bei java von außerhalb eines objekts nur public methoden des objekts auf, die auch immer recht genau auf dem objekt definiert sind. die strukturierung wird hier, wie ich das weiter oben auch schon mal gelesen habe, eher durch public/private gegeben, die die private methoden genauso wie die inneren methoden vor dem aufrufer versteckt.

natürlich muss ich markus insofern recht geben, als dass man seine klassen mit inneren methoden noch besser strukturieren könnte, allerdings steht bei java eben die objektorientierte struktur im vordergrund und die ist meines erachtens auch ausreichend.

ich könnte mir auch vorstellen, dass es innere methoden bei java deswegen nicht gibt, weil da nicht unbedingt klar ist, auf welche variablen sie zugriff hat (kennt sie die variablen der sie umgebenden methode? kennt sie die felder der instanz?) und weil dies die schön einfache und intuitive struktur (es gibt klassen und die bestehen aus feldern, inneren klassen und methoden, finito) von java gestört hätte.

Jens

Praktikant

  • "Jens" is male

Posts: 18

Date of registration: Dec 11th 2001

12

Tuesday, August 1st 2006, 12:11pm

Ich denke ich würde es eher unübersichtlicher finden, wenn ich in Methoden noch nach Methoden suchen müsste. Sicher kann man den Standpunkt vertreten, dass die 3 Ausgabemethoden nichts mit der Klasse direkt zu tun haben, aber für solche Hilfsmethoden wurde ja gerade das Schlüsselwort "private" in Java eingeführt.

Korrekter Java Code wäre ja

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
public class App_1 {

	public static void main(String args[]){
		int a=Integer.parseInt(args[0]);
		App_1.ausgabe(a);		 
        }

	public static void ausgabe(int b){
		if (b == 0) App_1.ausgabe1(b);
		if (b > 0) App_1.ausgabe2(b);
		if (b < 0) App_1.ausgabe3(b);
	}

	//Hilfsmethoden die von außen nicht sichtbar sind
         //Methoden müssen "static" sein, da sie in einer "static" Umgebung aufgerufen werden.
	private static void ausgabe1(int c){
		...
	} 

	private static void ausgabe2(int r){
		...
	}
	
	private static void ausgabe3(int e){
		...
	}

}


Durch den Aufruf von "ausgabe" wird hier ebenfalls die entsprechende Methode aus den drei Hilfsmethoden aufgerufen. Eine wirkliche Verringerung des Codes stellen Methoden in Methoden nich dar..kann ja auch nich..irgendwo muss der Code ja hin :-) In dieser Form finde ich es übersichtlicher, allerdings bin ich an diese Form natürlich auch gewöhnt. So hat man halt die klare Struktur das in Klassen die benötigten Methoden deklariert werden und die Methoden die eigentlichen Aufgaben erledigen (durch eigenen Code oder durch das Aufrufen von Hilfsfunktionen, die die Klasse bereitstellt)

Kannst bei Sun ja mal anfragen, was sie von Methodendeklarationen in Methoden halten ;-)

This post has been edited 1 times, last edit by "Jens" (Aug 1st 2006, 12:28pm)


DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

13

Tuesday, August 1st 2006, 12:24pm

Quoted

Original von Jens
Die zweite Ausgabe liefert den Adressbereich, in dem das Array im Speicher liegt bzw anfängt.
Die Ausgabe ist z.b. [I@3df4. Dabei kennzeichnet glaub ich "[" die Tatsache das es sich um ein Array handelt, "I" das es sich um den int/Integer Datentyp handelt und @xxxx ist dann die hex Adresse im Speicher. Kann aber sein das ich damit nich ganz richtig liege...weiß ich gerade nich so genau.

Das wiederum finde ich interessant ... soweit ich mich erinnern kann, gibt es doch in Java keine Unterstützung für Pointer, da man hiermit prima objektorientierte Konzepte untergraben könnte, z.B. indem man private Variablen ausliest (in C++ geht so etwas). Hat sich hier bei Java etwas geändert?

Quoted

Original von dluebke
Und noch was zu den Javakonventionen (was ich hier so verstreut gesehen habe):
- Klassennamen bitte groß (Test)
- Methodennamen bitte klein (ausgabe)
(Mag jetzt klugscheisserisch sein, aber wenn man sich konsequent dran hält, dann liest sich Quelltext echt besser... Dachte bei Ausgabe erst an einen Konstruktoraufruf...)

Das ist aber nur so, weil du dich bereits an diese Schreibweise gewöhnt hast ;)
womit ich aber nicht den Sinn von Standardisierungen bezweifeln möchte, die sind schon nicht schlecht... immerhin solange es Softwaretechnik und nicht Softwarekunst heisst...

This post has been edited 2 times, last edit by "DrChaotica" (Aug 1st 2006, 12:30pm)


frühling

Praktikant

  • "frühling" is female
  • "frühling" started this thread

Posts: 6

Date of registration: Jul 28th 2006

Location: Hannoveranerin durch und durch

Occupation: was? , kann mich nicht mehr erinnern :-)

14

Tuesday, August 1st 2006, 2:59pm

ich habe irgendwie ein Problem mit dem Code:

Source code

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
public class App_1{ 

     public static void main(String args[]){
         
          int m ;
          
          System.out.println("Geben Sie die Länge der Zahlenfolge ein.");
          m = Keyboard.readInt();
		
          int[] a =new int[m];
		
          for(int i=0;i<m;i++){
                System.out.println{"Eingabe der "+ i +"Zahl");
	      a[i]=Keyboard.readInt();
          }

     }
}


Hat sich schon erledigt ,ich habe die import-Anweisung doch noch vergessen :-)

This post has been edited 2 times, last edit by "frühling" (Aug 1st 2006, 3:20pm)


denial

Erfahrener Schreiberling

  • "denial" is male

Posts: 394

Date of registration: Feb 18th 2003

Location: Göttingen

Occupation: Linux Coder (ex Mathe SR Inf Student)

15

Tuesday, August 1st 2006, 3:07pm

Quoted

Original von DrChaotica

Quoted

Original von Jens
Die zweite Ausgabe liefert den Adressbereich, in dem das Array im Speicher liegt bzw anfängt.
Die Ausgabe ist z.b. [I@3df4. Dabei kennzeichnet glaub ich "[" die Tatsache das es sich um ein Array handelt, "I" das es sich um den int/Integer Datentyp handelt und @xxxx ist dann die hex Adresse im Speicher. Kann aber sein das ich damit nich ganz richtig liege...weiß ich gerade nich so genau.

Das wiederum finde ich interessant ... soweit ich mich erinnern kann, gibt es doch in Java keine Unterstützung für Pointer, da man hiermit prima objektorientierte Konzepte untergraben könnte, z.B. indem man private Variablen ausliest (in C++ geht so etwas). Hat sich hier bei Java etwas geändert?


http://java.sun.com/j2se/1.5.0/docs/api/…ang/Object.html:

Quoted

The toString method for class Object returns a string consisting of the name of the class of which the object is an instance, the at-sign character `@', and the unsigned hexadecimal representation of the hash code of the object.

Quoted

As much as is reasonably practical, the hashCode method defined by class Object does return distinct integers for distinct objects. (This is typically implemented by converting the internal address of the object into an integer, but this implementation technique is not required by the JavaTM programming language.)

Und auch wenn du die Adresse kennst, kannst du damit nicht viel anfangen.

Quoted

Original von frühling
cannot find sympol
variable Keyboard

Würd ich auch sagen. Was ist Keyboard? Ist das eine Variable oder eine Klasse? In welchem Package ist das?

This post has been edited 1 times, last edit by "denial" (Aug 1st 2006, 3:11pm)


DrChaotica

Senior Schreiberling

  • "DrChaotica" is male

Posts: 714

Date of registration: Jan 22nd 2005

Location: SHG

Occupation: SW-Entwickler

16

Tuesday, August 1st 2006, 3:23pm

@denial: Danke fürs nachsehen :)

Quoted

Original von denial
Und auch wenn du die Adresse kennst, kannst du damit nicht viel anfangen.

Das stimmt wohl, zumindest wenn man nur Java verwendet lässt sich damit nicht viel anstellen. Gut so.

dluebke

Trainee

  • "dluebke" is male

Posts: 37

Date of registration: Aug 26th 2004

17

Tuesday, August 1st 2006, 4:40pm

Quoted


Quoted

Original von dluebke
Und noch was zu den Javakonventionen (was ich hier so verstreut gesehen habe):
- Klassennamen bitte groß (Test)
- Methodennamen bitte klein (ausgabe)
(Mag jetzt klugscheisserisch sein, aber wenn man sich konsequent dran hält, dann liest sich Quelltext echt besser... Dachte bei Ausgabe erst an einen Konstruktoraufruf...)

Das ist aber nur so, weil du dich bereits an diese Schreibweise gewöhnt hast ;)
womit ich aber nicht den Sinn von Standardisierungen bezweifeln möchte, die sind schon nicht schlecht... immerhin solange es Softwaretechnik und nicht Softwarekunst heisst...


Ja klar, aber jede Programmiersprache bringt ja genau deswegen ihre Konventionen und Gepflogenheiten mit. Und wenn man Java schreibt, dann sollte man sich auch an die Java-Konventionen halten :-)

Daniel

migu

free rider

  • "migu" is male

Posts: 2,643

Date of registration: Dec 11th 2001

Occupation: Developer

18

Wednesday, August 2nd 2006, 7:11am

Quoted

Original von dluebke
Ja klar, aber jede Programmiersprache bringt ja genau deswegen ihre Konventionen und Gepflogenheiten mit. Und wenn man Java schreibt, dann sollte man sich auch an die Java-Konventionen halten :-)

Denke ich auch. Festgeschrieben sind diese Konventionen ja in den "Code Conventions for Java Programming Language" (PDF). Meiner Meinung nach sollte ein Java-Programmierer (also alle von uns) diese 24 Seiten einmal gelesen haben.
tar: Anlegen eines leeren Archivs wird feige verweigert.

julianr

Erfahrener Schreiberling

Posts: 298

Date of registration: Oct 13th 2005

Location: I live in a giant bucket.

19

Wednesday, August 2nd 2006, 6:33pm

Quoted

Original von Joachim
Allerdings legt die mehrfache Verwendung einer Methode den Schluß nahe, daß diese Methode von allgemeiner Bedeutung für die verwendete Datenstruktur ist. Von daher wäre es vielleicht besser, die Methode in eine neue Klasse auszulagern, die die verwendete Datenstruktur modelliert.


Das kann man analog über jede Art von lokaler Definition sagen - verschachtelte Klassen, lokale Konstanten usw.

Aber Aufgeräumtheit und minimalistische Interfaces sind ja eh was, wofür Java ganz falsch ist... Ernsthaft, muss das einer Sprache nicht peinlich sein, wenn die IDEs sich damit überbieten, welche den meisten Fließbandcode automatisch generiert? Ich musste jetzt einfach mal trollen, weil ich die Kombination aus Java und Spaß nie verstehen werde :x

Und weils zum Thema "schöner arbeiten mit Arrays" so schön passt, auch gleich den noch hinterher: http://www.joelonsoftware.com/items/2006/08/01.html

This post has been edited 1 times, last edit by "julianr" (Aug 2nd 2006, 6:35pm)


Markus

the one and only Unterstrich!

Posts: 2,571

Date of registration: Oct 9th 2003

20

Wednesday, August 2nd 2006, 10:08pm

Quoted

Original von julianr
Und weils zum Thema "schöner arbeiten mit Arrays" so schön passt, auch gleich den noch hinterher: http://www.joelonsoftware.com/items/2006/08/01.html


Den merke ich mir wenn das nächste Semester losgeht und in den Analen des Forum wieder die Schreie dutzender verzweifelter ErSies wiederhallen "Warum machen wir Scheme und nicht Java". ;)
Charmant sein? Hab ich längst aufgegeben. Glaubt mir doch eh keiner...