For the following courses you need to have
- Java 17 installed on your computer
- Eclipse installed on your computer (alternatively vscode + maven, but for beginners we recommend Eclipse)
CLICK TO VIEW THE SETUP TUTORIAL
Disclaimer: the exact Java 17 version number may be higher than the version number in the screenshots - but it needs to be Java 17, not 11, not 8 or 14 or higher
-
Open https://adoptium.net/ in your browser
-
... sometimes you need to click "OK" for the installtion warning
-
Click through the adoptium open JDK wizard:
(the name might have changed to "Adoptium Open JDK") -
Verify that java has been installed successfully by running the command
java --version
in your Windows command line interface, the exact version may be different at the time you run this command:
- Open https://adoptium.net/ in your browser
- Download and run the adoptium open JDK 17 installation wizard
- Verify that java has been installed successfully by running the command
java -version
in your MacOS Terminal command line interface:
-
Open a terminal with CTRL + ALT + T
-
Run the following command:
sudo apt install openjdk-17-jdk
-
Download the Eclipse installer from the official Eclipse website for Windows
-
Run the Eclipse installer from your Windows Explorer:
-
Click through the installer to install Eclipse:
-
Download the Eclipse installer from the official Eclipse website for MacOs
-
Open the Eclipse .dmg from your downloads
-
Confirm opening
-
Click on Eclipse IDE for Java Developers
-
Follow the installer to finish installation
If you like you can also run the Eclipse installer wizard on Ubuntu linux from https://www.eclipse.org/downloads/packages/installer or ...
-
Open a terminal with CTRL + ALT + T
-
Run the following command:
sudo snap install eclipse --classic --edge
IMPORTANT: for Software Engineering 1 we recommend to use Eclipse, even though vscode is a much faster and more modern IDE/editor. However if you insist on using it, here is how to install it.
- Download the vscode installer from the official website.
-
Download the vscode App from the official website.
-
Install the app on your system. Simply drag and drop the downloaded
*.app
file into your Applications folder.
Homebrew is an unofficial, free and open-source package manager for macOS. Once Homebrew is installed inside your terminal, go ahead and run the following command:
brew install --cask visual-studio-code
Open a new terminal with CTRL + SHIFT + T
and run the following command to instal vscode:
sudo snap install code --classic
-
Click on the "Extension" Icon in the left panel
-
search for
java extension pack
in the search field click on the first entry (NOTE: check that the distributor is MICROSOFT and no-one else) and click on theInstall
button to installer the extension pack. Wait until all extensions are installed. -
(Optional) search for
spring boot extension pack
in the search field click on the first entry (NOTE: check that the distributor is PIVOTAL and no-one else) and click on theInstall
button to installer the extension pack. Wait until all extensions are installed.
ATTENTION: When you are inside the HSD laboratory room safe ALL your work on the H:\
drive!!!
MacOS Users only - CLICK TO EXPAND
Please make sure to follow these steps to "downgrade" your TextEdit to save simple java files:
- on the menu bar on the top left corner of your screen, click on TextEdit, then Preferences.
- In the New Document tab, change the document format to Plain Text under the Format section. Uncheck the Smart quotes box under the Options section towards the bottom of the preference window.
- Switch to the Open and Save tab. Change the Opening files and Saving files to Unicode (UTF-8).
- Close the TextEdit application and re-open it. Open a new document.
- Create, compile and run a simple "Hello World" java application.
- Use the Eclipse "Hello World tutorial" to get used to Eclipse Java Projects.
- Create, compile and run a java application with a simple JavaFX graphical user interface with Eclipse via a Maven Project
- Let your file explorer show file extensions to safe files with the correct
.java
file extension:
-
Open a simple text editor (Windows Notepad, Ubuntu Gedit or MacOs TextEdit) enter the following code and save it as
Hello.java
to your desired location:public class Hello { public static void main(String args[]) { System.out.println("Hello Java"); } }
-
Open a command line interface (Windows: Windows-Key + R -> Type
Cmd.exe
, press enter, Ubuntu: CTRL + SHIFT + T, MacOs: search forTerminal
) and navigate to the location where you saved your Java Code with:cd PATH_TO_YOU_FILE
NOTE: For Windows drives like
C:
orH:
you just enter...H:
without the
cd
command... to change to this location.
-
Type
javac Hello.java
and press enter -
Now the java code has been compiled to
Hello.class
which you can run from within your terminal with:java Hello
-
Open Eclipse
-
Click on
Tutorials
->Create a Hello World application
-
Follow the guide on the right side of your screen to create the Hello World application and run it.
ATTENTION!!!
In the following frame, click on Don't Create, to skip the module description.
-
Click on
Create a project...
(notCreate a Java project
!!!), expand the the directoryMaven
and selectMaven project
- then click onNext >
-
Leave everything as it is and click on
Next
-
Click in the search filter, type
javafx
, scroll to the end and selectjavafx-archetype-simple
fromorg.openjfx
-
Enter the Group id
org.hsd.inflab
, Artifact Idse1c1
-
Open the package
src/main/java
, right-clickApp.java
-> hover onRun as
click onJava Application
-
Replace the the whole code in
App.java
with the following code to create a window with a button that printsHello Java!
to the terminal when you click it:package org.hsd.inflab.se1c1; import javafx.application.Application; import javafx.scene.Scene; import javafx.scene.control.Button; import javafx.scene.layout.BorderPane; import javafx.stage.Stage; public class App extends Application { @Override public void start(Stage stage) { BorderPane borderPane = new BorderPane(); String message = "Hello Java!"; Button button = new Button("Say: " + message); button.setOnAction((event) -> { System.out.println(message); }); borderPane.setCenter(button); Scene scene = new Scene(borderPane, 400, 400); stage.setScene(scene); stage.show(); } public static void main(String[] args) { launch(args); } }
-
Run your
App.java
again
- Create the Java project
se1c2
- Inside the project
se1c2
create the new classFourOutOfSixCoins
and within implement the following:- There are four coins
- Each coin has a value between 1 and 6
- Print out each possible combination in the terminal
- Print out the total number of combinations in the terminal
- (OPTIONAL) Inside the project
se1c2
create the applicationVariableCoins
and within implement the following:- Set global integer variables
AMOUNT_OF_COINS
andCOIN_MAX_VALUE
- There are
AMOUNT_OF_COINS
coins - Each coin has a value between 1 and
COIN_MAX_VALUE
- Print out each possible combination in the terminal
- Print out the total number of combinations in the terminal
- Set global integer variables
Permutations do not have to be included in the calculation!
Example output:
...
[4, 2, 3, 1]
[1, 2, 3, 5]
[6, 2, 1, 3]
[1, 2, 5, 4]
...
...
...
Die Klassen Kfz und Lkw werden erstellt, wobei die Grundprinzipien der Objektorientierung sukzessive einfließen. Dies bedeutet, dass wir mit einer "schlechten" Klasse KfzV0 anfangen und diese ständig verbessern, bis wir schließlich eine "schöne" Klasse Kfz erhalten. Hierzu werden im Folgenden zwei Arten von Klassen erstellt. KfzV0, Kfz und Lkw sollen zur Instanziierung von Objekten dienen und lediglich Attribute besitzen und Methoden zur Verfügung stellen. Die Demo-Klassen sollen genutzt werden, um einzelne Instanzen der Kfz Klassen zu erzeugen. Diese sollen eine main-Methode enthalten und somit ausführbar sein.
- Erstellen Sie das neue Java Projekt
se1c3
. - Erstellen Sie sukzessive (nacheinander) die Klassen
KfzV0
,Kfz
undLkw
:- Implementieren Sie die Klasse
KfzV0
mit den öffentlichen Integer-Attributensitze
undtankInhalt
und dem öffentlichen Float-Attributverbrauch
.
- Implementieren Sie die Klasse
- Implementieren Sie das Programm KfzDemo.java mit einer main-Methode:
- Das Objekt
minivan
wird von der KlasseKfzV0
erzeugt. - Die Attribute werden mit
sitze = 6
,tankInhalt = 70
,verbrauch = 14
initialisiert. - Die mögliche Reichweite bei vollem Tank wird ausgerechnet und mit
System.out.println
ausgegeben.
- Das Objekt
- Erstellen Sie ausgehend von
KfzDemo.java
die KlasseZweiKfz.java
:- Zusätzlich zum
minivan
Objekt wird ein Objektsportwagen
von der KlasseKfzV0
erzeugt. - Die Attribute von
sportwagen
werden mitsitze = 2
,tankInhalt = 45
,verbrauch = 11
initialisiert. - Die mögliche Reichweite von
sportwagen
bei vollem Tank wird ausgerechnet und mittelsSystem.out.println
ausgegeben.
- Zusätzlich zum
- Erweitern Sie die Klasse
KfzV0
um die Methodereichweite()
, die die Reichweite als Rückgabewert liefert. - Erstellen Sie ausgehend von
ZweiKfz.java
die KlasseReturnDemo.java
:- Die Ausgabe der Reichweite erfolgt in der main-Methode, wobei die Methode reichweite() genutzt wird.
- Die Klasse
KfzV0
wird um die MethodespritVerbrauch(int km)
erweitert.- Die Methode hat als Eingabeparameter eine Entfernung in Kilometern.
- Sie berechnet den entsprechenden Spritverbrauch für die Entfernung.
- Der Spritverbrauch wird als float-Ergebnis zurückgegeben.
- Erstellen Sie ausgehend von
ReturnDemo.java
die KlasseSpritDemo.java
:- Die Methode spritVerbrauch wird in der main-Methode für die Entfernung 252 km aufgerufen und die Ergebnisse für die beiden Instanzen ausgegeben.
- Erstellen Sie ausgehend von
KfzV0.java
die KlasseKfz
. Die neue KlasseKfz
wird um die Konstruktor-MethodeKfz(int sitze, int tankInhalt, float verbrauch)
erweitert. Zusätzlich werden alle Attribute aufprivate
gesetzt. - Erstellen Sie ausgehend von
SpritDemo.java
die KlasseKonstruktorDemo.java
:- Die Attribute werden über den Konstruktor
Kfz
initialisiert.
- Die Attribute werden über den Konstruktor
- Die Klasse Lkw wird von
Kfz
abgeleitet (Vererbung): - Sie hat die beiden zusätzlichen Attributeint ladeFlaeche
undboolean hatAnhaenger
. - Der KonstruktorLkw
initialisiert alle Attribute. - Die Lkw-MethodespritVerbrauch
addiert immer einen Liter zum errechneten Verbrauch hinzu. - Implementieren Sie das Programm
LkwDemo.java
mit:- Einem Objekt
sportWagen
der KlasseKfz
und ein Objektmagirus
der KlasseLkw
. - Das magirus-Objekt hat die gleichen Attribute wie das sportwagen-Objekt (nur zur Demo).
- Weisen Sie der zusätzlichen Referenz-Variable
kfz
der Klasse Kfz (keine Instanziierung) nacheinandersportWagen
undmagirus
zu und geben Sie jeweils den Verbrauch auf 252 km aus.
- Einem Objekt
Java FX Graphical user interface (GUI) visualizing a lottery drawing.
- Create the Maven project
se1c4
by using the archetypejavafx-archetype-simple
fromorg.openjfx
to create a JAVA FX (not Swing!) appliction - Extend the Code in
App.java
and create a GUI which consists of 6 TextField's and one "Draw" Button. Fill theTextField
s with random numbers between 1 and 49 viaMath.random()
. - Extend the application with the following features:
- No number is drawn more than 1 time
- All numbers are sorted ascending from left to right