Übung Java ShapeSwing Poly Interfacehttps://www.springboot.ch/Schweiz Java SE 11 Ausbildung Übung ShapeSwing Poly Interface?&atomFri, 29 Mar 2024 01:33:42 +0000stack.ch
https://stack.ch/
60740344-ed6c-11ee-8c11-005056bb85fbSimtech AG - Ausbildung - Java - Kurs Java SE 17 Einführung - Kurs Java 8 Einführung - Ressourcen - Kurs Java 8 Einführung - Übungen OO - Übung Java ShapeSwing Poly Interface
https://www.springboot.ch/Schweiz Java SE 11 Ausbildung Übung ShapeSwing Poly Interface
607405fa-ed6c-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:33:42 +0000Übung Java ShapeSwing Poly Interface
https://www.springboot.ch/Schweiz Java SE 11 Ausbildung Übung ShapeSwing Poly Interface
60740863-ed6c-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:33:42 +0000
https://www.springboot.ch/Schweiz Java SE 11 Ausbildung Übung ShapeSwing Poly Interface
60740982-ed6c-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:33:42 +0000Mit dieser Übung nutzen wir nun die Polymorphie umd die Lösung zu optimieren. Zur Zeit werden die Shape Instanzen in der Methode paintComponent() immer wieder neu instanziiert und dann gezeichnet (draw). Dabei handelt es sich immer um die gleichen Shape Objekte. Die paintComponent() Methode wird je nach Nutzung vielfach aufgerufen. Es handelt sich hier also um eine schlechte Lösung hinsichtlich dem Memory Usage und der Performance. Dies werden wir nun mittels Polymorphie optimieren als Refactoring. Neu sollen alle Shape Objekt in einer Liste innerhalb der Klasse ShapeSwing geführt werden. Im Konstruktor werden die Shape Objekte instanziiert und initialisiert und der Liste hinzugefügt. In der Methode paintComponent() wird die Liste traversiert und gezeichnet (draw).In einem letzten Schritt lagern wir die Shape-Methoden getArea() und draw() in das Interface IShape aus.Das folgende Klassendiagramm zeigt die Interfaces und Klassen:
https://www.springboot.ch/Schweiz Java SE 11 Ausbildung Übung ShapeSwing Poly Interface
60741438-ed6c-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:33:42 +0000Lösen Sie bitte die Aufgabe wie folgt:Öffnen Sie die Klasse ShapeSwing der Übung ShapeSwing Inheritance.Definieren Sie das Attribute shapeList wie folgt:private List<IShape> shapeList;Programmieren Sie den Default Konstruktor ShapeSwing und kopieren Sie den Inhalt der paintComponent() Methode. Entfernen Sie den Aufruf der draw-Methode und fügen Sie anstelle solcher die Shape Instanz in die shapeList, welche zuvor mit einer ArrayList zu instanzieren ist.Programmieren Sie die leere paintComponent() Methode aus indem Sie die shapeList mit einer forEach Schleife traversieren und jedes Shape Objekt via draw() zeichnen.Extrahieren Sie aus der Klasse Shape das Interface IShape gemäss dem Klassendiagramm. Ersetzen Sie den shapeList Generic Typ mit IShape.Das gezeichnete Bild sollte immer noch genau gleich gezeichnet werden.
https://www.springboot.ch/Schweiz Java SE 11 Ausbildung Übung ShapeSwing Poly Interface
60741dc1-ed6c-11ee-8c11-005056bb85fbFri, 29 Mar 2024 01:33:42 +0000Eine mögliche Lösung finden Sie hierÜber uns
https://www.springboot.ch/about
Fri, 29 Mar 2024 01:33:42 +0000607425cd-ed6c-11ee-8c11-005056bb85fbAktuell
https://www.springboot.ch/
Fri, 29 Mar 2024 01:33:42 +0000607427d0-ed6c-11ee-8c11-005056bb85fbAGB
https://www.springboot.ch/agb
Fri, 29 Mar 2024 01:33:42 +00006074289e-ed6c-11ee-8c11-005056bb85fbBildungswege
https://www.springboot.ch/bildungswege
Fri, 29 Mar 2024 01:33:42 +000060742940-ed6c-11ee-8c11-005056bb85fbBlog
https://www.springboot.ch/blog
Fri, 29 Mar 2024 01:33:42 +000060742b3b-ed6c-11ee-8c11-005056bb85fbRufen Sie mich an
https://www.springboot.ch/callus
Fri, 29 Mar 2024 01:33:42 +000060742bee-ed6c-11ee-8c11-005056bb85fbCharts
https://www.springboot.ch/charts
Fri, 29 Mar 2024 01:33:42 +000060742c82-ed6c-11ee-8c11-005056bb85fbConsulting
https://www.springboot.ch/consulting
Fri, 29 Mar 2024 01:33:42 +000060742e46-ed6c-11ee-8c11-005056bb85fbKontakt
https://www.springboot.ch/contact
Fri, 29 Mar 2024 01:33:42 +000060742f1b-ed6c-11ee-8c11-005056bb85fbAusbildung/Kurse
https://www.springboot.ch/education
Fri, 29 Mar 2024 01:33:42 +000060742fca-ed6c-11ee-8c11-005056bb85fbSoftware Engineering
https://www.springboot.ch/engineering
Fri, 29 Mar 2024 01:33:42 +000060743060-ed6c-11ee-8c11-005056bb85fbFreelancer
https://www.springboot.ch/freelancer
Fri, 29 Mar 2024 01:33:42 +00006074325d-ed6c-11ee-8c11-005056bb85fbImpressum
https://www.springboot.ch/impressum
Fri, 29 Mar 2024 01:33:42 +0000607432fa-ed6c-11ee-8c11-005056bb85fbKursleiter
https://www.springboot.ch/kursleiter
Fri, 29 Mar 2024 01:33:42 +0000607433dd-ed6c-11ee-8c11-005056bb85fbNetzwerk
https://www.springboot.ch/network
Fri, 29 Mar 2024 01:33:42 +0000607435ed-ed6c-11ee-8c11-005056bb85fbReferenzen
https://www.springboot.ch/references
Fri, 29 Mar 2024 01:33:42 +0000607436a4-ed6c-11ee-8c11-005056bb85fbSitemap
https://www.springboot.ch/sitemap
Fri, 29 Mar 2024 01:33:42 +00006074374c-ed6c-11ee-8c11-005056bb85fbTools
https://www.springboot.ch/tools
Fri, 29 Mar 2024 01:33:42 +000060743940-ed6c-11ee-8c11-005056bb85fbVision
https://www.springboot.ch/vision
Fri, 29 Mar 2024 01:33:42 +0000607439de-ed6c-11ee-8c11-005056bb85fb