Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Che Guevara


 Thema: Gehirnsalat ( wir unter uns )
« erste « vorherige 1 ... 5092 5093 5094 5095 [5096] 5097 5098 5099 5100 ... 6582 nächste » letzte »
erste ungelesene Seite | letzter Beitrag 
TriggerTG

TriggerTG
Na das ist mal was neues:

http://www.spiegel.de/reise/aktuell/0,1518,735564,00.html

Die Flughäfen raten ihren Kunden Bahn zu fahren und die Bahn rät ihren Kunden nicht Bahn zu fahren fröhlich
20.12.2010 10:12:51  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
WeGi

AUP WeGi 26.02.2011
Wenn ich in Java will, dass öffentliche Methoden der Superklasse in der Ableitung nicht mehr öffentlich sind, reicht es einen leeren private Methodenkörper von diesen Methoden in der Ableitung zu erstellen?
20.12.2010 10:36:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Redh3ad

AUP Redh3ad 11.10.2009
Probier es aus!

Spoiler - markieren, um zu lesen:
1. Ein ganz leerer Body würde keinen Sinn machen, du willst zumindest ein super.foo() darin.
2. Es funktioniert nicht, du kannst die Sichtbarkeit von Methoden in Unterklassen nicht verringern.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Redh3ad am 20.12.2010 10:46]
20.12.2010 10:43:24  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Ja, das müsste gehen. Dafür ist das Overriding ja da.
Hier sind einige Beispiele aufgelistet:
http://www.javabeginner.com/learn-java/java-method-overriding

Ansonsten:
 
Zitat von Redh3ad

Probier es aus!

[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von TriggerTG am 20.12.2010 10:47]
20.12.2010 10:44:22  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
igor]2

Phoenix
Nein, wie Redhead schon sagte -- Sichtbarkeit kann durch Ableitung niemals eingeschraenkt werden. Im Gegensatz zu C++ ermoeglicht Java keine private/protected Inheritance. Die Loesung in deinem Fall ist wahrscheinlich, nicht von der Klasse abzuleiten, sondern eine Wrapperklasse zu schreiben, die eine Instanz dieser Klasse als nicht-oeffentliches Feld enthaelt und nur Teile des Interfaces dieser Klasse sichtbar macht (und halt einfach weiterleitet).
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von igor]2 am 20.12.2010 10:59]
20.12.2010 10:58:48  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
WeGi

AUP WeGi 26.02.2011
Ne, soll ja nur die Sichtbarkeit nach außen verringert werden, die Methoden sollen nur private werden quasi. Aber private Methoden, die die super.foo aufrufen müsste funktionieren thx.
20.12.2010 10:59:29  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
 
Zitat von igor]2

Nein, wie Redhead schon sagte -- Sichtbarkeit kann durch Ableitung niemals eingeschraenkt werden. Im Gegensatz zu C++ ermoeglicht Java keine private/protected Inheritance. Die Loesung in deinem Fall ist wahrscheinlich, nicht von der Klasse abzuleiten, sondern eine Wrapperklasse zu schreiben, die eine Instanz dieser Klasse als nicht-oeffentliches Feld enthaelt und nur Teile des Interfaces dieser Klasse sichtbar macht (und halt einfach weiterleitet).



Ich glaube Wegi will nur, dass bei der Benutzung der Child-Klasse eine public Methode der Super-Klasse des Childs nicht mehr sichtbar ist. Und nicht das die Sichtbarkeit der Super-Klasse direkt modifiziert wird.
20.12.2010 11:01:49  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
igor]2

Phoenix
Siehe auch hier, "simple composition" waere das Stichwort.
20.12.2010 11:02:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
igor]2

Phoenix
 
Zitat von TriggerTG

 
Zitat von igor]2

Nein, wie Redhead schon sagte -- Sichtbarkeit kann durch Ableitung niemals eingeschraenkt werden. Im Gegensatz zu C++ ermoeglicht Java keine private/protected Inheritance. Die Loesung in deinem Fall ist wahrscheinlich, nicht von der Klasse abzuleiten, sondern eine Wrapperklasse zu schreiben, die eine Instanz dieser Klasse als nicht-oeffentliches Feld enthaelt und nur Teile des Interfaces dieser Klasse sichtbar macht (und halt einfach weiterleitet).



Ich glaube Wegi will nur, dass bei der Benutzung der Child-Klasse eine public Methode der Super-Klasse des Childs nicht mehr sichtbar ist. Und nicht das die Sichtbarkeit der Super-Klasse direkt modifiziert wird.


Richtig, aber genau das geht nicht, und dafuer gibt es auch einen Grund:

class Base {
  public func { ... }
}

class Derived : Base {
  private func { super.func(); }
}


das waere ja der Ansatz. Jetzt mache ich das:

Derived d = new Derived();
Base b = d;         // zulaessig, weil "Derived" ja ein "Base" ist
b.func();           // Problem, Officer?
20.12.2010 11:04:43  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Oh.
 
Code:
Base b = d;         // zulaessig, weil "Derived" ja ein "Base" ist


Diese Möglichkeit war mir gar nicht bewusst. Danke für den Hinweis, das sieht nützlich aus!
20.12.2010 11:07:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[DK]Peacemaker

[dk]peacemaker
 
Zitat von TriggerTG

Oh.
 
Code:
Base b = d;         // zulaessig, weil "Derived" ja ein "Base" ist


Diese Möglichkeit war mir gar nicht bewusst. Danke für den Hinweis, das sieht nützlich aus!


Und du bist hier Moderator.
20.12.2010 11:26:15  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Zu meiner Ehrverteidigung: Bewusst heißt: Ich weiß natürlich dass das geht, aber ich habe dieses Wissen in diesem Fall nicht angewendet!
20.12.2010 11:27:50  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[DK]Peacemaker

[dk]peacemaker
 
Zitat von TriggerTG

Zu meiner Ehrverteidigung: Bewusst heißt: Ich weiß natürlich dass das geht, aber ich habe dieses Wissen in diesem Fall nicht angewendet!


OK.
20.12.2010 11:28:55  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
OK.
20.12.2010 11:29:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
WeGi

AUP WeGi 26.02.2011
Fuck, das war mir auch nicht bewusst.
Die Aufgabe ist es eine Klasse MyStack zu erstellen, die genau die Methoden: size, peek, pop und push zur Verfügung stellt.

Die Klasse soll aber eine Child-Class von RecursiveList sein, die verständlicherweise jede Menge public-Methoden bereit stellt.
20.12.2010 12:01:22  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Achsel-des-Bösen

AUP Achsel-des-Bösen 06.10.2009
 
Zitat von WeGi

Fuck, das war mir auch nicht bewusst.
Die Aufgabe ist es eine Klasse MyStack zu erstellen, die genau die Methoden: size, peek, pop und push zur Verfügung stellt.

Die Klasse soll aber eine Child-Class von RecursiveList sein, die verständlicherweise jede Menge public-Methoden bereit stellt.


Da das nicht gehen wird:

a) Du hast die Aufgabenstellung nicht verstanden.
b) Die Aufgabe ist mistig gestellt.
20.12.2010 12:08:27  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Noch_ein_Kamel

Guerilla
 
Zitat von igor]2

 
Zitat von TriggerTG

 
Zitat von igor]2

Nein, wie Redhead schon sagte -- Sichtbarkeit kann durch Ableitung niemals eingeschraenkt werden. Im Gegensatz zu C++ ermoeglicht Java keine private/protected Inheritance. Die Loesung in deinem Fall ist wahrscheinlich, nicht von der Klasse abzuleiten, sondern eine Wrapperklasse zu schreiben, die eine Instanz dieser Klasse als nicht-oeffentliches Feld enthaelt und nur Teile des Interfaces dieser Klasse sichtbar macht (und halt einfach weiterleitet).



Ich glaube Wegi will nur, dass bei der Benutzung der Child-Klasse eine public Methode der Super-Klasse des Childs nicht mehr sichtbar ist. Und nicht das die Sichtbarkeit der Super-Klasse direkt modifiziert wird.


Richtig, aber genau das geht nicht, und dafuer gibt es auch einen Grund:

class Base {
  public func { ... }
}

class Derived : Base {
  private func { super.func(); }
}


das waere ja der Ansatz. Jetzt mache ich das:

Derived d = new Derived();
Base b = d;         // zulaessig, weil "Derived" ja ein "Base" ist
b.func();           // Problem, Officer?



Yes, problem.
"Cannot reduce the visibility of the inherited method from Base"
20.12.2010 12:19:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[DK]Peacemaker

[dk]peacemaker
Ich nehme an explizite Interface Implementierungen gibt es in Java nicht?

Bsp:
 
Code:
    public abstract class Element
        : IVisitable
    {
        void IVisitable.Assign(IVisitor visitor)
        {
            this.Assign(visitor);
        }

        protected virtual void Assign(IVisitor visitor)
        {
            if (null != visitor)
            {
                visitor.Visit(this);
            }
        }
    }


Tatsächlich es sogar so, dass mir die Code Analyse nahelegt eine solche geschützte Implementierung anzubieten, wenn ich eine Interface Methode explizit implementiere. Die öffentliche Assign-Methode ist dabei nur sichtbar, wenn ich die Element-Instanz in eine IVisitable caste.
20.12.2010 12:30:04  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Noch_ein_Kamel

Guerilla
bö gibts nich
20.12.2010 12:40:09  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
https://drag2up.appspot.com/pWst

test test
20.12.2010 12:50:41  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
jdo_O

Arctic
 
Zitat von WeGi

Fuck, das war mir auch nicht bewusst.
Die Aufgabe ist es eine Klasse MyStack zu erstellen, die genau die Methoden: size, peek, pop und push zur Verfügung stellt.

Die Klasse soll aber eine Child-Class von RecursiveList sein, die verständlicherweise jede Menge public-Methoden bereit stellt.



Erstell eine Adapter-Klasse. Anders kannst du die Sichtbarkeit nicht verändern.
20.12.2010 12:55:09  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[DK]Peacemaker

[dk]peacemaker
Was ist denn eigentlich diese RecursiveList?
20.12.2010 13:00:44  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
igor]2

Phoenix
 
Zitat von Noch_ein_Kamel

Yes, problem.
"Cannot reduce the visibility of the inherited method from Base"


Darum sach ich ja "geht nicht". Breites Grinsen
20.12.2010 13:02:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
Java hat ein paar merkwürdige Eigenschaften. Als ich gestern mit einem return vor dem Ende einer Methode testen wollte ob die bis dahin funktioniert, kam beim Ausführen vom Programm eine Fehlermeldung "Unreachable Code" und das Programm ist abgeschmiert. Klar darf der mich davor warnen, aber die ganze Ausführung verhindern?
20.12.2010 13:13:09  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
jdo_O

Arctic
 
Zitat von Danzelot

Java hat ein paar merkwürdige Eigenschaften. Als ich gestern mit einem return vor dem Ende einer Methode testen wollte ob die bis dahin funktioniert, kam beim Ausführen vom Programm eine Fehlermeldung "Unreachable Code" und das Programm ist abgeschmiert. Klar darf der mich davor warnen, aber die ganze Ausführung verhindern?



Der Compiler sollte schon meckern.
Das es erst bei der Ausführung des Programms passiert bezweifel ich.

Mit if(1<2){ return ;} lässt dich der Compiler das übrigens kompilieren.
20.12.2010 13:37:55  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
Gut zu wissen.

Jetzt erstmal dem Tutor aufs Dach steigen weil er das Übungsblatt fünf Stunden vor Abgabe des nächsten, darauf aufbauenden Übungsblattes korrigiert hat
20.12.2010 13:43:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
UND er hat eine Zusatzaufgabe nicht angerechnet. Pah.
20.12.2010 13:45:46  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[DK]Peacemaker

[dk]peacemaker
 
Zitat von Danzelot

Gut zu wissen.

Jetzt erstmal dem Tutor aufs Dach steigen weil er das Übungsblatt fünf Stunden vor Abgabe des nächsten, darauf aufbauenden Übungsblattes korrigiert hat


Du bist also einer von denen.
20.12.2010 13:45:54  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
TriggerTG

TriggerTG
Musst ich auch grad denken fröhlich
20.12.2010 13:47:01  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Danzelot

AUP Danzelot 28.02.2014
Einer von wem?

/
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Danzelot am 20.12.2010 13:50]
20.12.2010 13:47:09  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: Gehirnsalat ( wir unter uns )
« erste « vorherige 1 ... 5092 5093 5094 5095 [5096] 5097 5098 5099 5100 ... 6582 nächste » letzte »

mods.de - Forum » Webdesign & Coding » 

Hop to:  

Thread-Tags:
Mod-Aktionen:
23.08.2018 12:40:15 TriggerTG hat den Thread-Titel geändert (davor: "Wiederbelebungssalat")
09.03.2017 08:55:19 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
21.05.2014 16:08:26 Redh3ad hat den Thread-Titel geändert (davor: "Hochzeitssalat")
10.05.2014 09:43:28 Redh3ad hat den Thread-Titel geändert (davor: "Gehirnsalat")
19.10.2013 21:43:03 [DK]Peacemaker hat diesen Thread repariert.
04.10.2013 20:11:45 TriggerTG hat den Thread-Titel geändert (davor: "Damiferkel-Salat")
29.08.2013 19:59:27 [DK]Peacemaker hat den Thread-Titel geändert (davor: "HerpDerpSalat")
19.08.2013 10:04:19 TriggerTG hat den Thread-Titel geändert (davor: "SirSiggiSalat")
13.08.2013 18:43:13 TriggerTG hat den Thread-Titel geändert (davor: "Kamelwochensalat")
05.08.2013 09:47:37 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
24.06.2013 16:30:39 TriggerTG hat den Thread-Titel geändert (davor: "cmssalat")
20.06.2013 12:58:35 TriggerTG hat den Thread-Titel geändert (davor: "Krissalat")
13.06.2013 10:59:25 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")
08.06.2013 11:28:06 TriggerTG hat den Thread-Titel geändert (davor: "rABBIntensalat")
03.06.2013 09:56:52 TriggerTG hat den Thread-Titel geändert (davor: "Gehirnsalat")

| tech | impressum