Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Expand
titleDel 2 - Innkapsling og objektstrukturer (5 %)

Fyll inn set og get-metodene i Person-klassen. Du skal gjøre dette uten å endre kode i Address-klassen.

Expand
titleSkjelett til del 2


Code Block
languagejava
// DO NOT MODIFY THIS CLASS
public class Address {

	private String streetName;
	private int streetNumber;

	public Address(String streetName, int streetNumber) {
		this.streetName = streetName;
		this.streetNumber = streetNumber;
	}

	public String getStreetName() {
		return streetName;
	}

	public int getStreetNumber() {
		return streetNumber;
	}

}


public class Person {

	// No other fields should be added to this class
	private Address address;

	
	// You do not need to consider the edge case of passing null into the constructor here
	public Person(Address address) {
		this.address = address;
	}
	
	/**
	 * 
	 * @return the street name of this person
	 */
	public String getStreetName() {
		...
	}

	/**
	 * Updates the street name of this person
	 * 
	 * @param streetName The street name to update
	 */
	public void setStreetName(String streetName) {
		...
	}
	
	
	public int getStreetNumber() {
		...
	}

	/**
	 * Updates the street number of this person
	 * 
	 * @param streetNumber A positive integer.
	 * 
	 * @throws IllegalArgumentException If number is not larger than 0.
	 */
	public void setStreetNumber(int streetNumber) {
		...
	}
}



Expand
titleLF


Code Block
languagejava
public class Person {

	// No other fields should be added to this class
	private Address address;

	
	// You do not need to consider the edge case of passing null into the constructor here
	public Person(Address address) {
		this.address = address;
	}
	
	/**
	 * 
	 * @return the street name of this person
	 */
	public String getStreetName() {
		return this.address.getStreetName();
	}

	/**
	 * Updates the street name of this person
	 * 
	 * @param streetName The street name to update
	 */
	public void setStreetName(String streetName) {
		this.address = new Address(streetName, this.address.getStreetNumber());
	}
	
	
	public int getStreetNumber() {
		return this.address.getStreetNumber();
	}

	/**
	 * Updates the street number of this person
	 * 
	 * @param streetNumber A positive integer.
	 * 
	 * @throws IllegalArgumentException If number is not larger than 0.
	 */
	public void setStreetNumber(int streetNumber) {
		if (streetNumber <= 0) {
			throw new IllegalArgumentException();
		}
		this.address = new Address(this.address.getStreetName(), streetNumber);

	}
}




Expand
titleDel 3 - Delegering (10 %)


...