AP CSA 3.7 FRQ Practice: Shared or Not

Unit 3: Class Creation · Lesson 3.7 · FRQ Practice

Shared or Not

A free response question in the shape the exam uses: a stated contract, four rubric parts, and no main method handed to you. Worth 4 points.

Why this question is worth four points

A static field belongs to the class and an instance field belongs to each object, and choosing wrong produces a counter that says 1 forever or a serial number that every object shares. Both compile. Both look right until you build the second object, which is why the driver here builds three.

What you are given

Nothing is given. Write a class named Badge. Do not write a main method.

The question

  1. (a) A constructor Badge(String name) that stores the name and assigns this badge the next serial number, starting at 1.
  2. (b) public String getName() and public int getSerial() return this badge's own values.
  3. (c) public static int getIssued() returns how many Badge objects have been made in total.
  4. (d) public static void reset() sets the issued count back to 0, so the next badge is serial 1 again.

What the reader is looking for

  1. Write class Badge with the constructor and methods described. No main method.
  2. The count of badges issued belongs to the CLASS. The serial number belongs to each OBJECT.
  3. Part (c) and part (d) are static, so they are called on Badge itself rather than on a badge.

Worked examples

These show what a correct answer prints. There are more cases you cannot see, and they use different values, so an answer built around just these numbers will fail.

Example 1 input
ana bo cy
Example 1 output
1
2
2
ana
1
1
Example 2 input
zed yan xu
Example 2 output
1
2
2
zed
1
1

Your answer

Main.java

Input for the Run button

How this is scored: your answer runs against every test case, and the fraction it passes becomes your score out of 4. That is not how a human AP reader marks a rubric, so treat the score as a check on whether your code works, and the rubric above as the thing you are actually practising.


  

  

Stuck?

Hint 1

The driver prints the serial of the FIRST badge after building the second. If the serial is static, both badges share it and the first one has silently changed.

Hint 2

The count is incremented before the serial is read, which is what makes the first badge serial 1 rather than 0.

Hint 3

A static method cannot read an instance field, and the compiler will say so. That error is a useful signal that you put a field on the wrong side.

Before you submit

4 mistake(s) that lose points on this question

Each of these is a real error the grader catches. Check your answer against them before you submit, not instead of trying.

  • the serial number is static, so every badge shares one number
  • the serial is read before the count is incremented, so the first badge is 0
  • the issued count is an instance field, so it is 1 for every badge
  • reset does not actually clear the count

Where to go next

Get in Touch

Whether you're a student, parent, or teacher — I'd love to hear from you.

Just want free AP CS resources?

Enter your email below and check the subscribe box — no message needed. Students get daily practice questions and study tips. Teachers get curriculum resources and teaching strategies.

Typically responds within 24 hours

Message Sent!

Thanks for reaching out. I'll get back to you within 24 hours.

🏫 Welcome, fellow educator!

I offer curriculum resources, practice materials, and study guides designed for AP CS teachers. Let me know what you're looking for — whether it's classroom materials, a guest speaker, or Teachers Pay Teachers resources.

Email

[email protected]

📚

Courses

AP CSA, CSP, & Cybersecurity

Response Time

Within 24 hours

Prefer email? Reach me directly at [email protected]