From 27cf59e60c632840071cc15d8538cb1f81f8a040 Mon Sep 17 00:00:00 2001 From: Arkadiusz Hypki Date: Tue, 21 Mar 2023 18:17:54 +0100 Subject: [PATCH] Initial commit: simple OOP project in Java; --- .classpath | 10 +++++ .gitignore | 1 + .project | 17 ++++++++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 14 +++++++ src/module-info.java | 9 +++++ src/net/hypki/testjava/figures/Circle.java | 29 ++++++++++++++ src/net/hypki/testjava/figures/Figure.java | 40 +++++++++++++++++++ src/net/hypki/testjava/figures/Rectangle.java | 38 ++++++++++++++++++ src/net/hypki/testjava/figures/Square.java | 27 +++++++++++++ src/net/hypki/testjava/main/Main.java | 29 ++++++++++++++ 11 files changed, 216 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 src/module-info.java create mode 100644 src/net/hypki/testjava/figures/Circle.java create mode 100644 src/net/hypki/testjava/figures/Figure.java create mode 100644 src/net/hypki/testjava/figures/Rectangle.java create mode 100644 src/net/hypki/testjava/figures/Square.java create mode 100644 src/net/hypki/testjava/main/Main.java diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..57bca72 --- /dev/null +++ b/.classpath @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..ba077a4 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +bin diff --git a/.project b/.project new file mode 100644 index 0000000..8548b9b --- /dev/null +++ b/.project @@ -0,0 +1,17 @@ + + + TestJava + + + + + + org.eclipse.jdt.core.javabuilder + + + + + + org.eclipse.jdt.core.javanature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..8c9943d --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,14 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled +org.eclipse.jdt.core.compiler.codegen.targetPlatform=17 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +org.eclipse.jdt.core.compiler.compliance=17 +org.eclipse.jdt.core.compiler.debug.lineNumber=generate +org.eclipse.jdt.core.compiler.debug.localVariable=generate +org.eclipse.jdt.core.compiler.debug.sourceFile=generate +org.eclipse.jdt.core.compiler.problem.assertIdentifier=error +org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning +org.eclipse.jdt.core.compiler.release=enabled +org.eclipse.jdt.core.compiler.source=17 diff --git a/src/module-info.java b/src/module-info.java new file mode 100644 index 0000000..4895da8 --- /dev/null +++ b/src/module-info.java @@ -0,0 +1,9 @@ +/** + * + */ +/** + * @author ahypki + * + */ +module TestJava { +} \ No newline at end of file diff --git a/src/net/hypki/testjava/figures/Circle.java b/src/net/hypki/testjava/figures/Circle.java new file mode 100644 index 0000000..dbb9e34 --- /dev/null +++ b/src/net/hypki/testjava/figures/Circle.java @@ -0,0 +1,29 @@ +package net.hypki.testjava.figures; + +public class Circle extends Figure { + + private double radius; + + public Circle() { + super("Circle"); + } + + public Circle(double radius) { + super("Circle"); + setRadius(radius); + } + + @Override + public double computeArea() { + return Math.PI * getRadius() * getRadius(); + } + + public double getRadius() { + return radius; + } + + public void setRadius(double radius) { + this.radius = radius; + } + +} diff --git a/src/net/hypki/testjava/figures/Figure.java b/src/net/hypki/testjava/figures/Figure.java new file mode 100644 index 0000000..2e57431 --- /dev/null +++ b/src/net/hypki/testjava/figures/Figure.java @@ -0,0 +1,40 @@ +package net.hypki.testjava.figures; + +public abstract class Figure { + + private int id = -1; + + private String name; + + public abstract double computeArea(); + + public Figure() { + setName("Figure"); + } + + public Figure(String name) { + setName(name); + } + + @Override + public String toString() { + return getName() + " with ID = " + getId() + + " has area " + computeArea(); + } + + public void setId(int id) { + this.id = id; + } + + public int getId() { + return this.id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/src/net/hypki/testjava/figures/Rectangle.java b/src/net/hypki/testjava/figures/Rectangle.java new file mode 100644 index 0000000..2a84c4c --- /dev/null +++ b/src/net/hypki/testjava/figures/Rectangle.java @@ -0,0 +1,38 @@ +package net.hypki.testjava.figures; + +public class Rectangle extends Square { + + private double y; + + /** + * Default constructor + */ + public Rectangle() { + super("Rectangle"); + } + + /** + * Constructor with 2 params. + * @param x - width + * @param y - length + */ + public Rectangle(double x, double y) { + super("Rectangle"); + setX(x); + setY(y); + } + + @Override + public double computeArea() { + return getX() * getY(); + } + + public double getY() { + return y; + } + + public void setY(double y) { + this.y = y; + } + +} diff --git a/src/net/hypki/testjava/figures/Square.java b/src/net/hypki/testjava/figures/Square.java new file mode 100644 index 0000000..00f19bf --- /dev/null +++ b/src/net/hypki/testjava/figures/Square.java @@ -0,0 +1,27 @@ +package net.hypki.testjava.figures; + +public class Square extends Figure { + + private double x; + + public Square() { + setName("Square"); + } + + public Square(String name) { + setName(name); + } + + @Override + public double computeArea() { + return getX() * getX(); + } + + public double getX() { + return x; + } + + public void setX(double x) { + this.x = x; + } +} diff --git a/src/net/hypki/testjava/main/Main.java b/src/net/hypki/testjava/main/Main.java new file mode 100644 index 0000000..64c2d10 --- /dev/null +++ b/src/net/hypki/testjava/main/Main.java @@ -0,0 +1,29 @@ +package net.hypki.testjava.main; + +import net.hypki.testjava.figures.Circle; +import net.hypki.testjava.figures.Figure; +import net.hypki.testjava.figures.Rectangle; +import net.hypki.testjava.figures.Square; + +public class Main { + + public static void main(String[] args) { + + Square sq = new Square(); + sq.setId(5); + sq.setX(12); + System.out.println(sq); + + Rectangle rec = new Rectangle(); + rec.setX(10); + rec.setY(5); + System.out.println(rec); + + Rectangle rec2 = new Rectangle(10, 5); + System.out.println(rec2); + + Circle c = new Circle(3); + System.out.println(c); + } + +}