📝 Homework Hack: Phone Class

Create a Phone class that demonstrates all concepts from this lesson:

  • Libraries/Classes
  • Packages (use ArrayList from java.util)
  • Attributes
  • Behaviors

Requirements:

Attributes (4):

  • brand (String)
  • model (String)
  • batteryLevel (int) - starts at 100
  • contacts (ArrayList)

Behaviors (5 methods):

  1. Constructor - sets brand and model, initializes empty contacts list
  2. displayInfo() - prints brand, model, and battery level
  3. addContact(String name) - adds name to contacts list
  4. showContacts() - prints all contacts
  5. usePhone(int minutes) - decreases battery by minutes used

Testing:

  • Create 2 Phone objects
  • Add 3 contacts to each phone
  • Use phone for some minutes
  • Display all information

Grading:

  • Correct attributes (4 points)
  • Correct methods (5 points)
  • Proper use of ArrayList from java.util (3 points)
  • Complete testing (3 points)
  • Total: 15 points
// Homework Hack: Complete the Phone class

import java.util.ArrayList;

public class Phone {
    // TODO: Add 4 attributes
    private String brand;
    private int model;
    private int batteryLevel;
    private ArrayList<String> contacts;
    
    // TODO: Add constructor
    public Phone(String brand, int model, int batteryLevel, ArrayList<String> contacts) {
        this.brand = brand;
        this.model = model;
        this.batteryLevel = batteryLevel;
        this.contacts = contacts;
    }
    
    // TODO: Add displayInfo() method
    public void displayInfo() {
        System.out.println("Brand: " + brand);
        System.out.println("Model: " + model);
        System.out.println("Battery: " + batteryLevel);
    }
    
    // TODO: Add addContact(String name) method
    public void addContact(String name) {
        contacts.add(name);
    }
    
    // TODO: Add showContacts() method
    public void showContacts() {
        System.out.println("Contacts: " + contacts);
    }
    
    // TODO: Add usePhone(int minutes) method
    public void usePhone(int minutes) {
        batteryLevel -= minutes;
    }
}

// Test your Phone class
public class PhoneTest {
    public static void main(String[] args) {
        // TODO: Create 2 Phone objects
        Phone ex1 = new Phone("iPhone", 17, 84, new ArrayList<>());
        Phone ex2 = new Phone("Samsung", 14, 57, new ArrayList<>());
        
        // TODO: Add 3 contacts to each
        ex1.addContact("Ahaan");
        ex1.addContact("Shaurya");
        ex1.addContact("Xavier");
        ex2.addContact("Spencer");
        ex2.addContact("Neil");
        ex2.addContact("Nikhil");

        // TODO: Use phones for some minutes
        ex1.usePhone(12);
        ex2.usePhone(39);


        // TODO: Display all information
        ex1.displayInfo();
        ex1.showContacts();
        ex2.displayInfo();
        ex2.showContacts();
    }
}

// PhoneTest.main(null);
PhoneTest.main(null);
Brand: iPhone
Model: 17
Battery: 72
Contacts: [Ahaan, Shaurya, Xavier]
Brand: Samsung
Model: 14
Battery: 18
Contacts: [Spencer, Neil, Nikhil]