Praktikant
Date of registration: Jul 28th 2006
Location: Hannoveranerin durch und durch
Occupation: was? , kann mich nicht mehr erinnern :-)
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); } } |
This post has been edited 1 times, last edit by "frühling" (Aug 1st 2006, 10:02am)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Syntax-Fehler in Zeile 1. (EDIT: Wurde schon korrigiert)Quoted
Original von frühling
Was meint IHR ,wie sehen die Ergebnisse aus, und vor allem WARUM?
This post has been edited 4 times, last edit by "Joachim" (Aug 1st 2006, 10:14am)
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); } } |
Quoted
Die erste for-Schleife sollte "1 2 3 4 5 6" zurückliefern, jeweils mit Zeilenumbruch statt Leerzeichen.
This post has been edited 1 times, last edit by "Jens" (Aug 1st 2006, 10:32am)
Praktikant
Date of registration: Jul 28th 2006
Location: Hannoveranerin durch und durch
Occupation: was? , kann mich nicht mehr erinnern :-)
Quoted
Original von Jens
So wäre der richtige Code, da Methodendefinitionen innerhalb von Methoden nicht erlaubt sind..
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); } }
Quoted
Original von Jens
Die Methode "Ausgabe" macht nichts sinnvolles was die Ausgabe betrifft und ist daher eher unnötig...
This post has been edited 1 times, last edit by "frühling" (Aug 1st 2006, 10:44am)
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Soweit ich weiß gibt es in Java nur innere Klassen, aber keine "inneren Methoden".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!,
Dann erzähl' mal. Mir fällt nämlich gerade keine sinnvolle Verwendung dafür ein.Quoted
und oft ist es sehr gewünscht einige Methoden innerhalb Methoden zu definieren .
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.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?
This post has been edited 1 times, last edit by "Joachim" (Aug 1st 2006, 11:01am)
Quoted
Original von Joachim
Dann erzähl' mal. Mir fällt nämlich gerade keine sinnvolle Verwendung dafür ein.Quoted
Original von frühling
und oft ist es sehr gewünscht einige Methoden innerhalb Methoden zu definieren .
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 .
Quoted
Was ist dann sinnvoll für ein Array , kann man es NIE mit einer RETURN -Anweisung oder eine PRINT/PRINTLN Anweisung zurückgeben?
Quoted
Muß man für die AUSGABE eines Arrays immer eine Schleife benutzen ,um elementenweise es auszugeben?
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.
Guru
Date of registration: Dec 11th 2001
Location: Hämelerwald
Occupation: Wissenschaftlicher Mitarbeiter (Forschungszentrum L3S, TU Braunschweig)
Hm, klingt auf den ersten Blick einleuchtend.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.
Praktikant
Date of registration: Jul 28th 2006
Location: Hannoveranerin durch und durch
Occupation: was? , kann mich nicht mehr erinnern :-)
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; } } } |
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){ ... } } |
This post has been edited 1 times, last edit by "Jens" (Aug 1st 2006, 12:28pm)
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.
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...)
This post has been edited 2 times, last edit by "DrChaotica" (Aug 1st 2006, 12:30pm)
Praktikant
Date of registration: Jul 28th 2006
Location: Hannoveranerin durch und durch
Occupation: was? , kann mich nicht mehr erinnern :-)
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(); } } } |
This post has been edited 2 times, last edit by "frühling" (Aug 1st 2006, 3:20pm)
Erfahrener Schreiberling
Date of registration: Feb 18th 2003
Location: Göttingen
Occupation: Linux Coder (ex Mathe SR Inf Student)
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?
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.)
Quoted
Original von frühling
cannot find sympol
variable Keyboard
This post has been edited 1 times, last edit by "denial" (Aug 1st 2006, 3:11pm)
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...
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 :-)
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.
This post has been edited 1 times, last edit by "julianr" (Aug 2nd 2006, 6:35pm)
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