Multiple choice technology programming languages

class GFC506 {private String name;} class GFC507 extends GFC506 { String name; public void setName(String name) {this.name = name;} public String getName() {return name;} } class GFC508 extends GFC506 { private String name; public GFC508(String name) {setName(name);} public void setName(String name) {this.name = name;} public String getName() {return name;} } Which class is not tightly encapsulated?

  1. GFC506

  2. GFC507

  3. GFC508

  4. None of the above

Reveal answer Fill a bubble to check yourself
B Correct answer
Explanation

GFC507 is NOT tightly encapsulated because it declares 'String name' without any access modifier (package-private), breaking encapsulation. GFC506 and GFC508 keep their name fields private with proper access control.

AI explanation

Tight encapsulation means a class's internal state (fields) is fully hidden and only accessible through its own methods. GFC506 declares 'name' as private -- properly encapsulated. GFC508 also declares its own private 'name' field and only exposes it via its own setName/getName methods -- properly encapsulated. GFC507, however, declares 'String name;' with default (package-private) access, not private -- so classes in the same package can access GFC507's 'name' field directly, bypassing its getters/setters. That breaks encapsulation, making GFC507 the class that is not tightly encapsulated.