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:
- yearPasses() should increase the age instance variable by 1.
- amIOld() should perform the following conditional actions:
- If age < 13, print You are young.
- If age>=13 and age<18, print You are a teenager.
- Otherwise, print You are old.
- To help you learn by example and complete this challenge, much of the code is provided for you, but you’ll be writing everything in the future. The code that creates each instance of your Person class is in the main method. Don’t worry if you don’t understand it all quite yet!
Note: Do not remove or alter the stub code in the editor.
Input Format
Input is handled for you by the stub code in the editor.
The first line contains an integer, T(the number of test cases), and the T subsequent lines each contain an integer denoting the age of a Person instance. Hackerrank day 4 solution in C.
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.
Output Format
Complete the method definitions provided in the editor so they meet the specifications outlined above; the code to test your work is already in the editor. If your methods are implemented correctly, each test case will print 2 or 3 lines (depending on whether or not a valid initialAge was passed to the constructor).
You are old.
You are old.
Class vs Instance Hackerrank Solution in C++
#include <iostream> using namespace std; class Person { public: int age; Person(int initialAge); void amIOld(); void yearPasses(); }; Person::Person(int initialAge) { // Add some more code to run some checks on initialAge if (initialAge > 0) age = initialAge; else { cout << "Age is not valid, setting age to 0." << endl; age = 0; } } void Person::amIOld() { // Do some computations in here and print out the correct statement to the console if (age < 13) cout << "You are young." << endl; else if (age < 18) cout << "You are a teenager." << endl; else cout << "You are old." << endl; } void Person::yearPasses() { // Increment the age of the person in here age++; } int main() { int t; int age; cin >> t; for (int i = 0; i < t; i++) { cin >> age; Person p(age); p.amIOld(); for (int j = 0; j < 3; j++) { p.yearPasses(); } p.amIOld(); cout << '\n'; } return 0; }
Hackerrank Class vs Instance Solution in Java
import java.util.Scanner; public class Solution { static class Person { private int age; public Person(int initialAge) { // Add some more code to run some checks on initialAge if (initialAge > 0) { age = initialAge; } else { System.out.println("Age is not valid, setting age to 0."); age = 0; } } public void amIOld() { // Write code determining if this person's age is old and print the correct statement: if (age < 13) System.out.println("You are young."); else if (age < 18) System.out.println("You are a teenager."); else System.out.println("You are old."); } public void yearPasses() { // Increment this person's age. age++; } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for (int i = 0; i < T; i++) { int age = sc.nextInt(); Person p = new Person(age); p.amIOld(); for (int j = 0; j < 3; j++) { p.yearPasses(); } p.amIOld(); System.out.println(); } sc.close(); } }
Day 4 Class vs Instance Output
More on “30 Days of Code“
- Loops
- Let’s Review
- Arrays
- Dictionaries and Maps
- Recursion
4 thoughts on “Day 4 Class vs Instance Solution | 30 Days of Code”