Registrierung Kalender Mitgliederliste Teammitglieder Suche Häufig gestellte Fragen Zur Startseite

Informatiker Board » Suche » Suchergebnis » Hallo Gast [Anmelden|Registrieren]
Zeige Beiträge 1 bis 15 von 33 Treffern Seiten (3): [1] 2 3 nächste »
Autor Beitrag
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
13.02.2014 19:48 Forum: Off-Topic


Danke für die Erklärung!
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
Sets 13.02.2014 16:44 Forum: Off-Topic


Eine/erste Frage zum Thema Mengen. Ich möchte alle geraden Zahlen zwischen 1 und 40 in die Menge A packen.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
package de.galileocomputing.schroedinger.java.kapitel08;

import java.util.HashSet;
import java.util.Set;


public class SetA {

	
	public static void main(String[] args) {
		
		Set<Integer> A = new HashSet<>();
		for (int i=2; i <= 40; i=i+2) {
			A.add(i);
			System.out.println(A);
		}
		
	}

}


Nun wundere ich mich über die Ausgabe. Bis 14 ist für mich noch alles im Lot. Was ist dann los?

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
[2]
[2, 4]
[2, 4, 6]
[2, 4, 6, 8]
[2, 4, 6, 8, 10]
[2, 4, 6, 8, 10, 12]
[2, 4, 6, 8, 10, 12, 14]
[16, 2, 4, 6, 8, 10, 12, 14]
[16, 2, 18, 4, 6, 8, 10, 12, 14]
[16, 2, 18, 4, 20, 6, 8, 10, 12, 14]
[16, 2, 18, 4, 20, 6, 22, 8, 10, 12, 14]
[16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 12, 14]
[16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 14]
[16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14]
[16, 2, 18, 4, 20, 6, 22, 8, 24, 10, 26, 12, 28, 14, 30]
[32, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
[34, 32, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
[34, 32, 2, 4, 36, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
[34, 32, 2, 38, 4, 36, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]
[34, 32, 2, 38, 4, 36, 6, 8, 40, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30]


edit: mit einem TreeSet bekomme ich eiene geordnete Ausgabe. Dennoch verwirrt mich die Unordnung, da die Zahlen in der for Schleife ja der Größe nach an die Menge übergeben werden.
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
11.02.2014 09:30 Forum: Off-Topic


Prima. Mit "WAS und WIE" kann ich mir das nun merken. Tanzen
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
10.02.2014 16:58 Forum: Off-Topic


Ich meinte das so:
code:
1:
2:
3:
4:
5:
6:
public class Drache {
	public void spucken(){
		System.out.println("Ich spucke nicht.");
	};


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
public class SchneckenDrache extends Drache {
	public void spucken() {
		System.out.println("Ich spucke Schleim.");
	}
	public void rennen() {
		System.out.println("Ich renne schnell.");
	}


code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
public class Spiel {

	public static void main(String[] args) {
		
		Drache drache = new SchneckenDrache();
		drache.spucken();
		
	}


Nun kann ich über drache. nur die Methode "spucken" aufrufen. Die Methode "rennen" nicht. Das ging für mich konform zu den Aussagen von Karlito, weil ich die Deklaration über Drache und nicht SchneckenDrache gemacht habe. Drache besitzt keine Methode "rennen".

Nun kommt mein Problem. Warum wird dann nicht die Methode "spucken" von Drache ausgeführt? Warum kann man hier (und wird hier) eine Methode aus SchneckenDrache ausgeführt. Wieso "überwiegt" in diesem Fall der Konstruktor die Deklaration?

Die zwei Fälle passen für mich nicht zusammen. Sorry, aber die Leitung ist da wohl was länger. Augenzwinkern
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
09.02.2014 13:50 Forum: Off-Topic


Zitat:
Original von Karlito
Hallo tigerbine,

ein Drachen hat doch die Methode spucken. Ob sie implementiert ist oder nicht, ist nicht entscheidend. Eine Abstrakte Klasse ist eine Art Mischung zwischen Normalen Klassen und Interfaces... (Bei Interfaces sind keine Methoden implementiert, bei normalen Klassen sind alle Methoden implementiert und bei Abstrakten Klassen ist normalerweise ein Teil der Methoden implementiert und ein Teil nicht...).


Also was mich eben wunder ist, dass wenn ich drache.spucken() aufrufe, warum er dann nicht einfach nichts tut, die Methode ist da ja nicht mit Anweisungen gefüllt. Was wäre, wenn ich dort "Ich spucke nicht" eintragen würde. spuckt der drache dann, oder nicht. Kann ich erst morgen testen.

Danke schon mal wieder für eure Hilfe, aber meine Fragen bleiben euch sicher in nächster Zeit noch erhalten.
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
08.02.2014 11:25 Forum: Off-Topic


Hallo, ich schon wieder.

Wir haben eine abstrakte Klasse mit einer abstracten Methode.
code:
1:
2:
3:
4:
5:
 public abstract class Drache {
  public abstract void spucken();
}

N

Nun eine davon abgeleitete Klasse, die dann die Methode spucken implementieren muss.

code:
1:
2:
3:
4:
5:
public class SchneckenDrache extends Drache {
  public void spucken() {
        //Spucke Schleim }
}

Nun möchte man einen Schneckendrachen erzeugen und ihn Schleim spucken lassen. Warum macht man das so:

code:
1:
2:
3:
4:
5:
6:
public static void main(String[] args){
  Drache drache = new Schneckendrache();
  drache.spucken();
}


Ich denke jetzt an das Trompeterbeispiel von Seite 3 Karlito (Leider darf ich noch keine Links posten). Da sagten wir, man kann in Drache nur benutzen, was in der Klasse Drache ist. Dort gibt es aber nur eine leere Methode spucken. Warum funktioniert das Schleimspucken dennoch? Und was ist der Unterschied zum Trompeter?

Hoffe ihr versteht mein Problem.

edit:
liegt es daran, dass die Methoden gleich heißen? Denn auf eine andersnamige Methode kann ich nicht zugreifen über die Deklaration Drache. Woher weiß java aber, dass es im Falle von spucken in der Objektreferenz schauen muss? Klappt auch bei nicht abstrakten Klassen und Methoden. Also woher weiß die Klasse drache, dass ihre Methode überschrieben wurde?
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
07.02.2014 21:18 Forum: Off-Topic


Ok, danke Wink
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
07.02.2014 20:45 Forum: Off-Topic


Zitat:
Original von eulerscheZahl
code:
1:
2:
3:
4:
5:
6:
7:
8:
9:

public class Main {

	public static void main(String[] args) {
		A a = new A(); B b = new B();
		a.a(); //Ausgabe: a()
		b.a(); //Ausgabe: a()


D.h. ich kann auf "a" auf beiden wegen zugreifen, auch wenn sie nicht in b explizit implementiert ist (was ja ein überschreiben wäre?) Sucht der compiler dann einfach eine Ebene höher, ob er dort die Methode a findet?

Danke dir.
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
Erben 07.02.2014 19:29 Forum: Off-Topic


Folgende Situation, gob gesagt:

code:
1:
2:
3:
4:
5:
class A{
      method a() {} }

class B extends class A {
}


Nun erbt B ja von A. Wie muss ich die Methode a dann aufrufen? Mit super.a() oder this.a()?
Würde sie dann in Fall 2 überhaupt was in B finden, oder weil sie nichts findet in A nach der Methode suchen?
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
07.02.2014 15:08 Forum: Off-Topic


Zitat:
Original von Karlito


Nutzt man nun letzteres Beispiel, so kann man nur die Eigenschaften und Methoden nutzen, welche in der Klasse Object bereitgestellt werden (z.B. toString()).

Analog kann die Methode "mundstueckWechseln()", die zu der Klasse Trompeter gehört eben auch nicht mehr genutzt werden, wenn der Trompeter einer Variable des Typs Musiker zugewiesen wird.

VG,

Karlito


Dann habe ich es richtig verstanden, dass die beiden Deklarationen nicht äqivalent sind. Ich wunderte mich, dass in den java Dateien zum Buch eben die andere Deklaration als im Buch war. Aber so habe ich ja wieder was gelernt. Augenzwinkern Danke
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
Deklaration 07.02.2014 13:29 Forum: Off-Topic


Ich habe da nochmal eine Frage zu. Ich habe eine Klasse Musiker, mit den Attributen name, alter und band, sowie einer Methode musizieren.

Davon leite ich eine Klasee Trompeter ab und überschreibe die Methode musizieren. Ansonsten kommt nichts neues hinzu. Wie kann ich einen Trompeter nun instanziieren?

code:
1:
 Tompeter trompeter = new Trompeter;


wäre für mich die logische Wahl. Warum geht aber auch

code:
1:
 Musiker trompeter = new Trompeter;


die beiden trompeter unterscheiden sich doch nun in der Deklaration. verwirrt Für mich passt der Konstruktoaurruf nicht zur Deklaration. Musiker hat doch gar keinen Konstruktior Trompeter. Und was wäre, wenn der Trompeter noch weitere Methoden hätte (mundstückWechseln oder so). Wie passt dies dann in die Deklaration Musiker rein.

Also kurz und knapp, mit was kann man alles eine Deklaration vornehmen (wenn man z.B. ein UML Diagramm vorsich hat)

Danke Wink
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
05.02.2014 20:17 Forum: Off-Topic


Danke. Daumen hoch

Habe das nun auch mal mit dem Debugger nachvollzogen. Ist ja auch eine gute Übung für eine NewBee
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
05.02.2014 19:59 Forum: Off-Topic


Nächste Frage zu einem Algorithmus. Es soll ein Array sortiert werden. Das soll über zwei Schleifen gehen. Ich tippe einen Auszug erstmal ab.

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
for(index = 0; index < (array.length-1); index++){
  for(int j=index; j<(array.length);j++){
    if (array[index]> array[j] {  //Vergleich
       temp = array[index]; //Zwischenspeicher Minimum
       array[index]=array[j]; // Minimum überschreiben
       array[j] = temp; //Vertauschung durch temporären Wert
  }
}


Was ich nicht verstehe

* beim Vergleich, ist da nicht in der ersten Runde index = j, und man erhält 'false' und hätte sich diese Prüfung sparen können?
* Warum Minimum, es wird doch der größere der beiden Werte gespeichert bzw. überschrieben?

Danke für eure Hilfe. smile
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
04.02.2014 13:46 Forum: Off-Topic


Ok, danke. Was mir in Codings immer wieder auffällt ist, dass viele Variablen gleich heißen. Das macht es für mich am Anfang etwas schwer zu wissen, welche welche ist.

Beispiel

code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
public class StringBufferDemo {

   public StringBuffer string(){                                   //Instanzmethode mit Rückgabewert 
            StringBuffer str = new StringBuffer("String")  //Dekl.+Erz+Wertzuweisung
            for (int i=0; i<=10; i++){
                 str.append(str);                                    //Methode von str zur Verkettung
                 }
            return str;                                                 //Rückgabewert str
    }

    public static void main(String[] args){
    StringBufferDemo stretch = new StringBufferDemo //Dekl. + Erz. von Instanz 'stretch'
    StringBuffer str  = new StringBuffer()     //Dekl. Erzeugung von Instanz 'str'
   
    str = stretch.string();   //Wertzuweisung str = Rückgabewert str
    System.out.println("Ergebnis: " + str);
  } 
}


Habe ich das so richtig verstanden? Danke.
Thema: Java Applet
tigerbine

Antworten: 59
Hits: 43.007
03.02.2014 21:05 Forum: Off-Topic


Das ist ein Beispiel aus "Einstieg in Java, Galileo Computing". Da habe ich einen Punkt vergessen
code:
1:
2:
3:
4:
5:
6:
7:
public static void main(String[] args) {
	long a = 1234567890123456789L;
	float b = a; // b=1.23456794E18
	System.out.println(a); //1234567890123456789
	System.out.println(b); //1.23456794E18
	System.out.println((long)b); //1.234567939550609408



Unten meinte ich double, ja.
Zeige Beiträge 1 bis 15 von 33 Treffern Seiten (3): [1] 2 3 nächste »