Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: New slides

...

View file

...

srchttps://docs.google.com/file/d/0B9IltfWcNirnNG9OOWFnQWppQUE/preview
width1024
height720

namekort_om_arv.pdf
height250


Eksempelkode om arv:

...

Code Block
public class InvalidNameException extends IllegalArgumentException {
    private Person person;
    private String name;
    
    public InvalidNameException(Person person, String name) {
        this.person = person;
        this.name = name;
    }
    
    public Person getPerson() {
        return person;
    }
    public String getName() {
        return name;
    }
    @Override
    public String getMessage() {
        return "Du prøvde å sette navnet til " + name + ", men det er ugyldig for " + person;
    }
}

public class Person {
    
    private String name;
    public Person(String name) {
        this.name = name;
    }
    @Override
    public String toString() {
        return "[Person " + name + " (" + super.toString() + ")]";
    }
    
    public String getName() {
        return name;
    }
    private String legalCharacters = "QWERTYUIOPÅASDFGHJKLØÆZXCVBNM";
    
    public void setName(String name) {
        for (int i = 0; i < name.length(); i++) {
            char c = Character.toUpperCase(name.charAt(i));
            if (legalCharacters.indexOf(c) < 0) {
                throw new InvalidNameException(this, name);
            }
        }
        this.name = name;
    }
    
    @Override
    public boolean equals(Object obj) {
        if (obj instanceof Person && ((Person) obj).name.equals(this.name)) {
            return true;
        }
        return false;
    }
    
    public static void main(String[] args) {
        Person person1 = new Person("Hallvard");
        Person person2 = new Person("Hallvard");
        Collection<Person> personer = Arrays.asList(person1, person2);
        System.out.println(person1 == person2);
        System.out.println(person1.equals(person2));
        System.out.println(personer.contains(new Person("Hallvard")));
        person1.setName("ruy389weyfsuid");
    }
}

...