Q.
1
class Employee {
String name;
int age;
String address;
Employee(String name, int age, String address) {
[Link] = name;
[Link] = age;
[Link] = address;
}
void displayEmployeeDetails() {
[Link]("Name: " + name);
[Link]("Age: " + age);
[Link]("Address: " + address);
}
}
class Manager extends Employee {
String department;
double salary;
Manager(String name, int age, String address, String department, double salary) {
super(name, age, address);
[Link] = department;
[Link] = salary;
}
void displayManagerDetails() {
displayEmployeeDetails();
[Link]("Department: " + department);
[Link]("Salary: " + salary);
}
}
class Worker extends Employee {
int daysWorked;
double dailyWages;
double totalSalary;
Worker(String name, int age, String address, int daysWorked, double dailyWages) {
super(name, age, address);
[Link] = daysWorked;
[Link] = dailyWages;
calculateTotalSalary();
}
void calculateTotalSalary() {
totalSalary = daysWorked * dailyWages;
}
void displayWorkerDetails() {
displayEmployeeDetails();
[Link]("Days Worked: " + daysWorked);
[Link]("Daily Wages: " + dailyWages);
[Link]("Total Salary: " + totalSalary);
}
}
public class Main {
public sta c void main(String[] args) {
Manager manager = new Manager("Harry", 35, "123 Main St", "HR", 900000);
Worker worker = new Worker("Aman", 28, "456 Park Ave", 20, 150);
[Link]("Manager Details:");
[Link]();
[Link]("\nWorker Details:");
[Link]();
}
}
Q.2
class Person {
private String name;
public Person(String name) {
[Link] = name;
}
public String getName() {
return name;
}
public void setName(String name) {
[Link] = name;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if (obj == null || getClass() != [Link]()) return false;
Person person = (Person) obj;
return name != null ? [Link]([Link]) : [Link] == null;
}
}
class Employee extends Person {
private double annualSalary;
private int yearStarted;
private String na onalInsuranceNumber;
public Employee(String name, double annualSalary, int yearStarted, String na onalInsuranceNumber) {
super(name);
[Link] = annualSalary;
[Link] = yearStarted;
[Link] onalInsuranceNumber = na onalInsuranceNumber;
}
public double getAnnualSalary() {
return annualSalary;
}
public void setAnnualSalary(double annualSalary) {
[Link] = annualSalary;
}
public int getYearStarted() {
return yearStarted;
}
public void setYearStarted(int yearStarted) {
[Link] = yearStarted;
}
public String getNa onalInsuranceNumber() {
return na onalInsuranceNumber;
}
public void setNa onalInsuranceNumber(String na onalInsuranceNumber) {
[Link] onalInsuranceNumber = na onalInsuranceNumber;
}
@Override
public boolean equals(Object obj) {
if (this == obj) return true;
if () return false;
if (getClass() != [Link]()) return false;
Employee employee = (Employee) obj;
return [Link]([Link], annualSalary) == 0 &&
yearStarted == [Link] &&
(na onalInsuranceNumber != null ? na [Link]([Link] onalInsuranceNumber) :
[Link] onalInsuranceNumber == null);
}
}
public class EmployeeTest {
public sta c void main(String[] args) {
Employee emp1 = new Employee("Cid Kagenou", 50000.0, 2010, "AB123456C");
Employee emp2 = new Employee("Arthur Leywin", 60000.0, 2015, "XY987654D");
Employee emp3 = new Employee("Sung Jinwoo", 50000.0, 2010, "AB123456C");
[Link]("Employee 1: " + [Link]() + ", Annual Salary: " + [Link]() + ", Year Started: " +
[Link]() + ", NI Number: " + [Link] onalInsuranceNumber());
[Link]("Employee 2: " + [Link]() + ", Annual Salary: " + [Link]() + ", Year Started: " +
[Link]() + ", NI Number: " + [Link] onalInsuranceNumber());
[Link]("Employee 3: " + [Link]() + ", Annual Salary: " + [Link]() + ", Year Started: " +
[Link]() + ", NI Number: " + [Link] onalInsuranceNumber());
[Link]("Employee 1 equals Employee 2? " + [Link](emp2));
[Link]("Employee 1 equals Employee 3? " + [Link](emp3));
}
}
Q.3
class Shape {
private String color;
private boolean filled;
public Shape() {
[Link] = "green";
this.filled = true;
}
public Shape(String color, boolean filled) {
[Link] = color;
this.filled = filled;
}
public String getColor() {
return color;
}
public void setColor(String color) {
[Link] = color;
}
public boolean isFilled() {
return filled;
}
public void setFilled(boolean filled) {
this.filled = filled;
}
@Override
public String toString() {
return "A Shape with color of " + color + " and " + (filled ? "filled" : "Not filled");
}
}
class Circle extends Shape {
private double radius;
public Circle() {
[Link] = 1.0;
}
public Circle(double radius) {
super();
[Link] = radius;
}
public Circle(double radius, String color, boolean filled) {
super(color, filled);
[Link] = radius;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
[Link] = radius;
}
public double getArea() {
return [Link] * radius * radius;
}
public double getPerimeter() {
return 2 * [Link] * radius;
}
@Override
public String toString() {
return "A Circle with radius=" + radius + ", which is a subclass of " + [Link]();
}
}
class Rectangle extends Shape {
private double width;
private double length;
public Rectangle() {
[Link] = 1.0;
[Link] = 1.0;
}
public Rectangle(double width, double length) {
super();
[Link] = width;
[Link] = length;
}
public Rectangle(double width, double length, String color, boolean filled) {
super(color, filled);
[Link] = width;
[Link] = length;
}
public double getWidth() {
return width;
}
public void setWidth(double width) {
[Link] = width;
}
public double getLength() {
return length;
}
public void setLength(double length) {
[Link] = length;
}
public double getArea() {
return width * length;
}
public double getPerimeter() {
return 2 * (width + length);
}
@Override
public String toString() {
return "A Rectangle with width=" + width + " and length=" + length + ", which is a subclass of " + [Link]();
}
}
class Square extends Rectangle {
public Square() {
super(1.0, 1.0);
}
public Square(double side) {
super(side, side);
}
public Square(double side, String color, boolean filled) {
super(side, side, color, filled);
}
public double getSide() {
return getWidth();
}
public void setSide(double side) {
setWidth(side);
setLength(side);
}
@Override
public void setWidth(double side) {
[Link](side);
[Link](side);
}
@Override
public void setLength(double side) {
[Link](side);
[Link](side);
}
@Override
public String toString() {
return "A Square with side=" + getSide() + ", which is a subclass of " + [Link]();
}
}
public class ShapeTest {
public sta c void main(String[] args) {
Shape shape = new Shape();
[Link](shape);
[Link]("blue");
[Link](false);
[Link](shape);
Circle circle = new Circle(2.5, "red", false);
[Link](circle);
[Link]("Circle Area: " + [Link]());
[Link]("Circle Perimeter: " + [Link]());
Rectangle rectangle = new Rectangle(2.0, 4.0, "blue", true);
[Link](rectangle);
[Link]("Rectangle Area: " + [Link]());
[Link]("Rectangle Perimeter: " + [Link]());
Square square = new Square(5.0, "yellow", true);
[Link](square);
[Link]("Square Area: " + [Link]());
[Link]("Square Perimeter: " + [Link]());
}
}