class Person {
// Encapsulation: Private fields
private int age;
// Constructor: Initializes object when created
public Person
(String name,
int age
) { this.name = name;
this.age = age;
}
// Encapsulation: Getter and Setter methods
return name;
}
public void setName
(String name
) { this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
if (age > 0) { // Encapsulation ensures age is positive
this.age = age;
}
}
public void display() {
System.
out.
println("Name: " + name
+ ", Age: " + age
); }
public static void main
(String[] args
) { // Constructor initializes object
Person p1 = new Person("Alice", 25);
// Encapsulation: Accessing private fields via getter/setter
p1.setAge(30);
System.
out.
println("Updated Age: " + p1.
getAge());
// Display details
p1.display();
}
}
Y2xhc3MgUGVyc29uIHsKICAgIC8vIEVuY2Fwc3VsYXRpb246IFByaXZhdGUgZmllbGRzCiAgICBwcml2YXRlIFN0cmluZyBuYW1lOwogICAgcHJpdmF0ZSBpbnQgYWdlOwoKICAgIC8vIENvbnN0cnVjdG9yOiBJbml0aWFsaXplcyBvYmplY3Qgd2hlbiBjcmVhdGVkCiAgICBwdWJsaWMgUGVyc29uKFN0cmluZyBuYW1lLCBpbnQgYWdlKSB7CiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTsKICAgICAgICB0aGlzLmFnZSA9IGFnZTsKICAgIH0KCiAgICAvLyBFbmNhcHN1bGF0aW9uOiBHZXR0ZXIgYW5kIFNldHRlciBtZXRob2RzCiAgICBwdWJsaWMgU3RyaW5nIGdldE5hbWUoKSB7CiAgICAgICAgcmV0dXJuIG5hbWU7CiAgICB9CgogICAgcHVibGljIHZvaWQgc2V0TmFtZShTdHJpbmcgbmFtZSkgewogICAgICAgIHRoaXMubmFtZSA9IG5hbWU7CiAgICB9CgogICAgcHVibGljIGludCBnZXRBZ2UoKSB7CiAgICAgICAgcmV0dXJuIGFnZTsKICAgIH0KCiAgICBwdWJsaWMgdm9pZCBzZXRBZ2UoaW50IGFnZSkgewogICAgICAgIGlmIChhZ2UgPiAwKSB7ICAvLyBFbmNhcHN1bGF0aW9uIGVuc3VyZXMgYWdlIGlzIHBvc2l0aXZlCiAgICAgICAgICAgIHRoaXMuYWdlID0gYWdlOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgdm9pZCBkaXNwbGF5KCkgewogICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigiTmFtZTogIiArIG5hbWUgKyAiLCBBZ2U6ICIgKyBhZ2UpOwogICAgfQoKICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsKICAgICAgICAvLyBDb25zdHJ1Y3RvciBpbml0aWFsaXplcyBvYmplY3QKICAgICAgICBQZXJzb24gcDEgPSBuZXcgUGVyc29uKCJBbGljZSIsIDI1KTsKCiAgICAgICAgLy8gRW5jYXBzdWxhdGlvbjogQWNjZXNzaW5nIHByaXZhdGUgZmllbGRzIHZpYSBnZXR0ZXIvc2V0dGVyCiAgICAgICAgcDEuc2V0QWdlKDMwKTsKICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oIlVwZGF0ZWQgQWdlOiAiICsgcDEuZ2V0QWdlKCkpOwoKICAgICAgICAvLyBEaXNwbGF5IGRldGFpbHMKICAgICAgICBwMS5kaXNwbGF5KCk7CiAgICB9Cn0K