Hackerrank Day 4: Class vs Instance

Task
Write a Person class with an instance variable, age, and a constructor that takes an integer, initialAge, as a parameter. The constructor must assign initialAge to age after confirming the argument passed as initialAge is not negative; if a negative argument is passed as initialAge, the constructor should set age to 0 and print Age is not valid, setting age to 0. In addition, you must write the following instance methods:

  1. yearPasses() should increases the age instance variable by 11.
  2. amIOld() should perform the following conditional actions:
    • If age<13, print You are young.You are young.
    • If age13 and age<18, print You are a teenager.
    • Otherwise, print You are old.

Sample Input

4
-1
10
16
18

Sample Output

Age is not valid, setting age to 0.
You are young.
You are young.

You are young.
You are a teenager.

You are a teenager.
You are old.

You are old.
You are old.

Explanation

Test Case 0: initialAge=1
Because initialAge<0, our code must set age to 00 and print the “Age is not valid…” message followed by the young message. Three years pass and age=3, so we print the young message again.

Test Case 1: initialAge=10
Because initialAge<13, our code should print that the person is young. Three years pass and age=13, so we print that the person is now a teenager.

Test Case 2: initialAge=16
Because 13≤initialAge<18, our code should print that the person is a teenager. Three years pass and age=19, so we print that the person is old.

Test Case 3: initialAge=18
Because initialAge18, our code should print that the person is old. Three years pass and the person is still old at age=21, so we print the old message again.

My Solution:  

screen-shot-2016-12-11-at-3-16-44-pm

Something important that I forgot to do in this challenge: set age as an instance variable using the “@” notation.

Side notes:

  • initialize is a constructor in this example.
  • A class can have one or more constructors that build different versions of the same type of object.
  • A class has two types of variables:
    • class variables: point to the same variable across all instances of a class.
    • instance variables: have distinct values that vary from instance to instance.
Advertisements
Hackerrank Day 4: Class vs Instance

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s