KEMBAR78
Java 1 | PDF | Object (Computer Science) | Systems Architecture
0% found this document useful (0 votes)
5 views10 pages

Java 1

R

Uploaded by

harshwardhand83
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)
5 views10 pages

Java 1

R

Uploaded by

harshwardhand83
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/ 10

import java.util.

ArrayList;

import java.util.List;

// Base abstract class

abstract class Person

private String name;

private int age;

public Person(String name, int age)

this.name = name;

this.age = age;

public abstract void displayDetails();

public String getName() {

return name;

public int getAge()

return age;

// Single Inheritance: Student class

class Student extends Person

{
private String studentId;

private String major;

public Student(String name, int age, String studentId, String major)

super(name, age);

this.studentId = studentId;

this.major = major;

@Override

public void displayDetails(

System.out.println("Student Name: " + getName() + ", Age: " + getAge() +

", ID: " + studentId + ", Major: " + major);

public void attendClass()

System.out.println(getName() + " is attending class in " + major);

public String getStudentId()

return studentId;

public String getMajor()


{

return major;

// Multilevel Inheritance: GraduateStudent class

class GraduateStudent extends Student

private String researchTopic;

public GraduateStudent(String name, int age, String studentId, String major, String researchTopic)
{

super(name, age, studentId, major);

this.researchTopic = researchTopic;

@Override

public void displayDetails()

System.out.println("Graduate Student Name: " + getName() + ", Age: " + getAge() +

", ID: " + getStudentId() + ", Major: " + getMajor() + ", Research Topic: " + researchTopic);

public void doResearch()

System.out.println(getName() + " is researching on: " + researchTopic);

}
// Hierarchical Inheritance: Teacher class

class Teacher extends Person

private String subject;

public Teacher(String name, int age, String subject)

super(name, age);

this.subject = subject;

@Override

public void displayDetails()

System.out.println("Teacher Name: " + getName() + ", Age: " + getAge() + ", Subject: " + subject);

public void teachClass()

System.out.println(getName() + " is teaching " + subject);

// Interfaces for Multiple Inheritance

interface Administrator

{
void manageStudentRecords();

interface Coordinator

void organizeEvents();

// Staff class implementing multiple inheritance

class Staff extends Person implements Administrator, Coordinator

private String department;

public Staff(String name, int age, String department)

super(name, age);

this.department = department;

@Override

public void displayDetails()

System.out.println("Staff Name: " + getName() + ", Age: " + getAge() + ", Department: " +
department);

@Override

public void manageStudentRecords()

System.out.println(getName() + " is managing student records in " + department);


}

@Override

public void organizeEvents()

System.out.println(getName() + " is organizing academic events in " + department);

// Custom Exception class

class AgeValidationException extends Exception

public AgeValidationException(String message)

super(message);

// Manager class to manage persons

class UniversityManager

private List<Person> persons;

public UniversityManager()

persons = new ArrayList<>();

}
public void addPerson(Person person)

persons.add(person);

System.out.println("Added " + person.getClass().getSimpleName() + ": " + person.getName());

public void showAllPersons()

System.out.println("\n--- All Persons in the University ---");

for (Person person : persons)

person.displayDetails();

if (person instanceof GraduateStudent)

((GraduateStudent) person).doResearch();

if (person instanceof Student)

((Student) person).attendClass();

if (person instanceof Teacher)

((Teacher) person).teachClass();

}
if (person instanceof Staff)

((Staff) person).manageStudentRecords();

((Staff) person).organizeEvents();

System.out.println();

public void validateAge(Person person) throws AgeValidationException

if (person.getAge() < 18)

throw new AgeValidationException(

"Age too young for university role: " + person.getName() + ", Age: " + person.getAge());

else{

System.out.println("Age validated for " + person.getName() + ": " + person.getAge());

// Main class

public class UniversityManagementSystem

{
public static void main(String[] args)

UniversityManager universityManager = new UniversityManager();

Try

Student student = new Student("Alice", 20, "S1001", "Computer Science");

GraduateStudent gradStudent = new GraduateStudent("Bob", 24, "G2001", "Electrical


Engineering", "AI in Robotics");

Teacher teacher = new Teacher("Dr. Smith", 45, "Mathematics");

Staff staff = new Staff("Mr. John", 38, "Administration");

universityManager.addPerson(student);

universityManager.addPerson(gradStudent);

universityManager.addPerson(teacher);

universityManager.addPerson(staff);

universityManager.validateAge(student);

universityManager.validateAge(gradStudent);

universityManager.validateAge(teacher);

universityManager.validateAge(staff);

// Trigger age validation exception

Student underageStudent = new Student("Tommy", 16, "S1002", "Physics");

universityManager.addPerson(underageStudent);

universityManager.validateAge(underageStudent); // Exception expected

} catch (AgeValidationException e)
{

System.err.println("Validation Error: " + e.getMessage());

} catch (Exception e)

System.err.println("Unexpected Error: " + e.getMessage());

} finally

System.out.println("\nFinal University Personnel:");

universityManager.showAllPersons();

System.out.println("University system execution completed.");

You might also like