public interface IStringChecker {
public boolean check(String toCheck);
}
//Dein Haus was du den Bauplan Übergibst.
public class Example implements IStringChecker {
@Override
public boolean check(String toCheck) {
// TODO Auto-generated method stub
return false;
}
}
//Example 2
public class HausBau implements BauPlan {
@Override
public boolean CheckBodenPressWert(String toCheck) {
// TODO Auto-generated method stub
return false;
}
@Override //Bedeuet das du die Klasse neu Übeschreiben kannst.
public void Fundament(String BetonArt) {
// TODO Auto-generated method stub
}
}
public interface BauPlan {
int Hoehe = 50,Breite = 30;
public boolean CheckBodenPressWert(String toCheck);
public void Fundament(String BetonArt);
}
//Example 3
public class Human {
private String NAME;
public Human(String Name)
{
NAME = Name;
}
public void sayHello()
{
System.console().printf("Hallo, ich bin " + NAME);
}
}
public class SuperHuman extends Human
{
public SuperHuman(String Name) {
super(Name);
// TODO Auto-generated constructor stub
}
@Override
public void sayHello()
{
System.console().printf("Hallo, ich bin SuperHeld " + NAME);
}
}
public interface TalkPowerItems {
public void SayHello();
public void SayBye();
public void SayHelloWithOutName();
}
public class Human implements TalkPowerItems{
private String NAME;
public Human(String Name)
{
NAME = Name;
}
@Override
public void SayHello() {
// TODO Auto-generated method stub
System.console().printf(String.format("Hello, my name is %s", NAME));
}
@Override
public void SayBye() {
// TODO Auto-generated method stub
System.console().printf("GoodBye!");
}
@Override
public void SayHelloWithOutName() {
// TODO Auto-generated method stub
System.console().printf("Hello!");
}
}
public class SuperHuman extends Human
{
private String NAME;
public SuperHuman(String Name) {
super(Name);
// TODO Auto-generated constructor stub
}
@Override
public void SayHello() {
// TODO Auto-generated method stub
System.console().printf(String.format("Hello, i'm the king %s", NAME));
}
@Override
public void SayBye() {
// TODO Auto-generated method stub
System.console().printf("GoodBye! My humans!");
}
@Override
public void SayHelloWithOutName() {
// TODO Auto-generated method stub
System.console().printf("Stay for me my humans");
}
}
Und an gutem CodeStil^^Die Beispiele von @Facebamm zielen aber mMn am Thema Pattern vorbei
public class StringCheckerTest {
private static IStringChecker stringChecker;
public static void main(String[] args) {
System.out.println("Enthält nur Ziffern?");
stringChecker = new ContainsJustDigitsChecker();
checkStrings();
System.out.println("\nBeginnt mit einem Grossbuchstaben?");
stringChecker = new StartsWithUppercaseChecker();
checkStrings();
}
public static void checkStrings () {
System.out.println(stringChecker.check("12drei"));
System.out.println(stringChecker.check("123"));
System.out.println(stringChecker.check("hallo"));
System.out.println(stringChecker.check("Hallo"));
}
}
class ContainsJustDigitsChecker implements IStringChecker {
@Override
public boolean check(String toCheck) {
for (char c : toCheck.toCharArray()) {
if (!Character.isDigit(c)) {
return false;
}
}
return true;
}
}
class StartsWithUppercaseChecker implements IStringChecker {
@Override
public boolean check(String toCheck) {
return toCheck.length() > 0 && Character.isUpperCase(toCheck.charAt(0));
}
}
In dieser Aufgabe geht es darum, einen String Filter um das Interface IStringChecker herum zu bauen. Das Interface enth ̈alt nur eine einzige Methode, check.
public interface IStringChecker {
public boolean check(String toCheck);
}
Die Methode erwartet einen String als Eingabe, und gibt einen boolean zuru ̈ck. Der Ru ̈ckgabewert ist true, wenn ein String eine gewisse Bedingung erfu ̈llt, andernfalls false.
Schreiben Sie folgende Klassen, die jeweils das Interface IStringChecker implemen- tieren:
MinimumLengthChecker ... u ̈berpru ̈ft, ob ein String mindestens n Buchstaben lang ist. Die L ̈ange n wird im Konstruktor u ̈bergeben.
CharacterClassChecker ... u ̈berpru ̈ft, ob ein String zumindest ein Zeichen aus der Zeichenklasse characterClass enth ̈alt. characterClass ist ein Array vom Typ char und wird im Konstruktor u ̈bergeben.
Implementieren Sie die folgenden Klassen zus ̈atzlich, um einfache Filter zu verknu ̈pfen.
And ... u ̈berpru ̈ft, ob zwei Bedingungen gleichzeitig erfu ̈llt sind. Dazu werden im Kon- struktor 2 Objekte vom Typ IStringChecker u ̈bergeben, ein linker und ein rechter Operand. Wird check aufgerufen, delegiert ein And Objekt diese Aufgabe einfach an seine beiden Operanden weiter und verknu ̈pft das Ergebnis mit einem logischen Und.
Or ... gleich wie And, aber das Ergebnis wird mit einem logischen Oder verknu ̈pft.
Vermutlich ist der Code fu ̈r And und Or sehr ̈ahnlich. Lagern Sie gemeinsamen Code von den beiden Klassen in eine abstrakte Basisklasse BinaryOperator aus. And und Or erben dann von BinaryOperator und implementieren nur ihre Eigenheiten selbst. Testen Sie ihre Implementierung. Verwenden Sie alle erstellten Klassen, um folgendes Regelwerk fu ̈r ein Passwort zu u ̈berpru ̈fen:
• Ein Passwort hat mindestens 8 Zeichen.
• Ein Passwort enth ̈alt Kleinbuchstaben, Großbuchstaben und mindestens eine Zif- fer/Sonderzeichen. Die Zeichenklassen sind wie folgt definiert: a..z, A..Z, 0..9 und die Sonderzeichen .:,;!§$%&/()=?*+-_
/QUOTE]