Next we continue our exploration of Kotlin objects. Objects combine state and behavior. In the previous lesson we showed how they can store data like variables. Now we’ll show how they can run algorithms like methods.
Last time we began experimenting with simple Kotlin objects. Consider an object that stores information about a room:
Room class allows us to model a
Rooms height, width, and name.
Let’s create a few instances!
Cool! But we said that Kotlin objects combine state and behavior. Where’s the behavior?
To start, let’s see if we can have each room print out the
String that we printed manually in the previous example.
We’ll go through how to do that together.
Let's play a guessing game!
Complete a method named
getSecretValue which is passed an instance of a
Secret class provides a single method
guess which accepts an
true if you have guessed the secret value, and
You can either
require that the passed
Secret is not
null or mark the parameter as non-
Write code to determine the secret value between 0 and 31, inclusive.
If the secret does not fall in that range, you should return
However, note that the
Secret class will fail if you guess again after you have already guessed the secret value!
So as soon as you find the secret, your code should return it and not guess again.
Additional guesses will cause your submission to be marked as incorrect.
What we’ve created above is called an instance method. In some ways it’s just like the other methods that we’ve written. But, because it is part of a class definition, it is also different.
Specifically, instance methods have access to the values of instance variables or properties.
We saw that in the walkthrough above, since our print function could access that room’s
Let’s continue exploring this together, and look at how instance methods can both access instance variables and accept parameters.
Instance methods can both access and modify instance variables. Let’s look at example of how that works.
Write a method
hasDuplicateValues that, given a
Map<String, String>, returns
true if the map contains
duplicate values—meaning that two different keys map to the same value—and
Recall that a map can never contain duplicate keys, since the second mapping from the same key overwrites the
You should use a
Set to solve this problem!
And as usual, maps, sets, and lists are all built-in to Kotlin and available for you to use to solve this problem.
Need more practice? Head over to the practice page.