Java Lesson 13: Preparation for inheritence

From Erlands Wiki

Jump to: navigation, search

he main class now looks as follows:

public class MyClass {
    public static void main(String[] args) {
        Argument argument1 = ArgumentHelper.getArgumentAsInt(0,args);
        Argument argument2 = ArgumentHelper.getArgumentAsString(1,args);
        printStuff((IntArgument)argument1);
        printStuff((StringArgument)argument2);
    }
 
    public static void printStuff(IntArgument data) {
        System.out.println("You specified int: "+data.getValue());
    }
 
    public static void printStuff(StringArgument data) {
        System.out.println("You specified String: "+data.getValue());
    }
}

The IntArgument class looks as follows:

public class IntArgument extends Argument {
    private int intArgument;
    public IntArgument(int intArgument) {
        this.intArgument = intArgument;
    }
    public int getInt() {
        return intArgument;
    }
}

The StringArgument class looks as follows:

public class StringArgument extends Argument {
    private String strArgument;
    public void setString(String arg) {
        this.strArgument = arg;
    }
    public String getString() {
        return strArgument;
    }
}

And the Argument class looks as follows:

public class Argument {
}

And finally the helper class looks as follows:

public class ArgumentHelper {
    public static Argument getArgumentAsInt(int argumentNumber, String[] args) {
        int argument = Integer.valueOf(args[argumentNumber]);
        return new IntArgument(argument);
    }
 
    public static Argument getArgumentAsString(int argumentNumber, String[] args) {
        String argument = args[argumentNumber];
        StringArgument strArgument = new StringArgument();
        strArgument.setString(argument);
        return strArgument;
    }
}

The program is as usual executed with:

java MyClass 5 Hello

Your work is to add the getValue methods to the IntArgument and StringArgument classes so it results in an output like:

You specified int: 5
You specified String: Hello
Personal tools