[go: up one dir, main page]

0% found this document useful (0 votes)
20 views4 pages

PR 4

java practical 4 for mit adt unevercity inloni kalbhor
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
20 views4 pages

PR 4

java practical 4 for mit adt unevercity inloni kalbhor
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Experiment No.

NAME: RAVIRAJ SATISH KHARADE ROLL NO- 74


4.Write a Java program that creates a class hierarchy for employees of a company. The base class
should be Employee, with subclasses Manager, Developer, and Programmer. Each subclass
should have properties such as name, address, salary, and job title. Implement methods for
calculating bonuses, generating performance reports, and managing
projects.(ENCAPSULATION )

class Employee {
private String name;
private String address;
private double salary;
private String jobTitle;

public Employee(String name, String address, double salary, String jobTitle) {


this.name = name;
this.address = address;
this.salary = salary;
this.jobTitle = jobTitle;
}

public String getName() {


return name;
}

public void setName(String name) {


this.name = name;
}

public String getAddress() {


return address;
}

public void setAddress(String address) {


this.address = address;
}

public double getSalary() {


return salary;
}
public void setSalary(double salary) {
this.salary = salary;
}

public String getJobTitle() {


return jobTitle;
}

public void setJobTitle(String jobTitle) {


this.jobTitle = jobTitle;
}

public double calculateBonus() {


return salary * 0.10; // 10% bonus
}

public String generatePerformanceReport() {


return "Performance report for " + name + " (" + jobTitle + ")";
}

public void manageProjects() {


System.out.println(name + " is managing general company projects.");
}
}

class Manager extends Employee {

public Manager(String name, String address, double salary) {


super(name, address, salary, "Manager");
}

@Override
public double calculateBonus() {
return getSalary() * 0.20; // 20% bonus for managers
}

@Override
public void manageProjects() {
System.out.println(getName() + " is managing high-level company projects.");
}
}
class Developer extends Employee {

public Developer(String name, String address, double salary) {


super(name, address, salary, "Developer");
}

@Override
public double calculateBonus() {
return getSalary() * 0.15; // 15% bonus for developers
}

@Override
public void manageProjects() {
System.out.println(getName() + " is managing software development projects.");
}
}

class Programmer extends Employee {

public Programmer(String name, String address, double salary) {


super(name, address, salary, "Programmer");
}

@Override
public double calculateBonus() {
return getSalary() * 0.12; // 12% bonus for programmers
}

@Override
public void manageProjects() {
System.out.println(getName() + " is managing coding tasks.");
}
}

public class Company {


public static void main(String[] args) {
Manager manager = new Manager("Alice Johnson", "123 Manager Lane", 80000);
Developer developer = new Developer("Bob Smith", "456 Developer Blvd", 60000);
Programmer programmer = new Programmer("Charlie Brown", "789 Programmer St",
50000);
System.out.println(manager.generatePerformanceReport());
System.out.println("Bonus: $" + manager.calculateBonus());
manager.manageProjects();

System.out.println(developer.generatePerformanceReport());
System.out.println("Bonus: $" + developer.calculateBonus());
developer.manageProjects();

System.out.println(programmer.generatePerformanceReport());
System.out.println("Bonus: $" + programmer.calculateBonus());
programmer.manageProjects();
}
}

You might also like