RA2311026010866
1. abstract class Shape {
abstract double calculateArea();
abstract double calculatePerimeter();
class Circle extends Shape {
private double radius;
Circle(double radius) {
this.radius = radius;
double calculateArea() {
return Math.PI * radius * radius;
double calculatePerimeter() {
return 2 * Math.PI * radius;
class Triangle extends Shape {
private double base;
private double height;
private double side1;
private double side2;
private double side3;
Triangle(double base, double height, double side1, double side2, double side3) {
this.base = base;
this.height = height;
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
double calculateArea() {
return 0.5 * base * height;
double calculatePerimeter() {
return side1 + side2 + side3;
public class Main {
public static void main(String[] args)
{ Shape circle = new Circle(5);
System.out.println("Circle Area: " + circle.calculateArea());
System.out.println("Circle Perimeter: " + circle.calculatePerimeter());
Shape triangle = new Triangle(5, 4, 3, 4, 5);
System.out.println("Triangle Area: " + triangle.calculateArea());
System.out.println("Triangle Perimeter: " + triangle.calculatePerimeter());
2. class Reservation {
private String reservationId;
private String customerName;
private String date;
public Reservation(String reservationId, String customerName, String date) {
this.reservationId = reservationId;
this.customerName = customerName;
this.date = date;
public String getReservationId() {
return reservationId;
public void setReservationId(String reservationId) {
this.reservationId = reservationId;
}
public String getCustomerName() {
return customerName;
public void setCustomerName(String customerName) {
this.customerName = customerName;
public String getDate() {
return date;
public void setDate(String date) {
this.date = date;
public void checkReservationStatus() {
System.out.println("Reservation Status: Confirmed for " + customerName + " on " +
date);
class ResortReservation extends Reservation {
private String roomNumber;
public ResortReservation(String reservationId, String customerName, String date, String
roomNumber) {
super(reservationId, customerName, date);
this.roomNumber = roomNumber;
public String getRoomNumber() {
return roomNumber;
public void setRoomNumber(String roomNumber) {
this.roomNumber = roomNumber;
@Override
public void checkReservationStatus()
{ super.checkReservationStatus();
System.out.println("Room Number: " + roomNumber);
class RailwayReservation extends Reservation {
private String seatNumber;
public RailwayReservation(String reservationId, String customerName, String date, String
seatNumber) {
super(reservationId, customerName, date);
this.seatNumber = seatNumber;
public String getSeatNumber() {
return seatNumber;
public void setSeatNumber(String seatNumber) {
this.seatNumber = seatNumber;
@Override
public void checkReservationStatus()
{ super.checkReservationStatus();
System.out.println("Seat Number: " + seatNumber);
public class Main {
public static void main(String[] args) {
ResortReservation resortReservation = new ResortReservation("R123", "Alice", "2024-
10-15", "101");
RailwayReservation railwayReservation = new RailwayReservation("T456", "Bob",
"2024-10-20", "A12");
resortReservation.checkReservationStatus();
railwayReservation.checkReservationStatus();
3. class IDGenerator {
private static int nextID = 1;
public static int generateID() {
return nextID++;
public class Main {
public static void main(String[] args) { System.out.println("Generated
ID: " + IDGenerator.generateID()); System.out.println("Generated ID:
" + IDGenerator.generateID()); System.out.println("Generated ID: " +
IDGenerator.generateID());
}
4. class EvenNumbers extends Thread {
public void run()
{ System.out.println("Even Numbers:");
for (int i = 1; i <= 20; i++) {
if (i % 2 == 0)
{ System.out.print(i + "
");
} System.out.println();
class OddNumbers extends Thread {
public void run()
{ System.out.println("Odd Numbers:");
for (int i = 1; i <= 20; i++) {
if (i % 2 != 0)
{ System.out.print(i + "
");
} System.out.println();
}
public class Main {
public static void main(String[] args) {
EvenNumbers evenThread = new EvenNumbers();
OddNumbers oddThread = new OddNumbers();
evenThread.start();
oddThread.start();
5. class MatrixMultiplier extends Thread {
private int[][] matrixA;
private int[][] matrixB;
private int[][] result;
private int row;
public MatrixMultiplier(int[][] matrixA, int[][] matrixB, int[][] result, int row) {
this.matrixA = matrixA;
this.matrixB = matrixB;
this.result = result;
this.row = row;
public void run() {
for (int j = 0; j < matrixB[0].length; j++) {
result[row][j] = 0;
for (int k = 0; k < matrixA[0].length; k++) {
result[row][j] += matrixA[row][k] * matrixB[k][j];
public class Main {
public static void main(String[] args) {
int[][] matrixA = {
{1, 2, 3},
{4, 5, 6},
{7, 8, 9}
};
int[][] matrixB = {
{9, 8, 7},
{6, 5, 4},
{3, 2, 1}
};
int rowsA = matrixA.length;
int colsB = matrixB[0].length;
int[][] result = new int[rowsA][colsB];
Thread[] threads = new Thread[rowsA];
for (int i = 0; i < rowsA; i++) {
threads[i] = new MatrixMultiplier(matrixA, matrixB, result, i);
threads[i].start();
for (int i = 0; i < rowsA; i++) {
try {
threads[i].join();
} catch (InterruptedException e) {
e.printStackTrace();
System.out.println("Resultant Matrix:");
for (int[] row : result) {
for (int value : row)
{ System.out.print(value + " ");
} System.out.println();
}
}