You are on page 1of 1

Has-a-relationship means that a class can have reference to an instance of another class or

another instance of the same class. Has-a-relationship is also known as composition or


aggregation relationship which is a good way of code reuse. Usually used with the new
keyword. Composition classes are strongly associated with each other as without a container
object, the contained object cannot exists. For example without a Car (Container), Car Battery
and Engine would not exist (Contained Object).
Is-a-relationship is related to implementation or inheritance and use the word extend or with
in Scala. The main advantage of this concept is code reuse. It involves the relationship between
the Super-Class (Parent) and the Sub-Classes (Child).Method Overriding allows the Sub-Class
to provides its own implementation of a method which already inherited by the Super-Class. It
uses the override keyword.
Polymorphism is the ability of an object to have many implementations. Encapsulation is to hide
the implementation details from users and also known as data hiding. Abstract Classes cannot
be instantiated and can have both abstract and concrete classes. Casting Object is taking an
object from one type and converting into other classes. Consists of up casting and down casting
objects.
I handle the search part of the application which involves Encapsulation. For example, in the
Search Object there is a SearchStudentID(StudentID:String,SearchType:Int) method. The user
only need to input the Search Value and the Search Type to the method and the method
implementation is hidden from the user.
We can see other concepts being applied by other members of my group in their respective
responsibilities. Aggregation and has-a relationship can be seen between ReadFile Object and
StudentData Class in this assignment. Is-a-relationship, Inheritance and Method Overriding can
be seen between Student and Special Student Classes.
The problem we encountered with this assignment is we just beginning to learn Scala, although
it uses OOP concepts similar to Java, the way Scala works and its syntaxes is significantly
different compared to Java. We overcome it by referring to our practical classes and through the
internet. Thus we used up a lot of time learning on how to create basic an application using
basic Scala commands instead where the time could be used to create a more advance OOP
features.
The strength of our application is that we developed a Scala application with a working GUI with
five features and implemented these OOP concepts Aggregation, Encapsulation, Method
Overriding, and Inheritance, and Has-a and Is-a relationship.
The weakness of our application is that we began our assignment before the introduction of
Java FX Scene Builder and we hard code our GUI which remove the drag and drop
functionality. Our application have minimal or no implementation of polymorphism, abstract
classes, and object casting.
Group Contribution:
Goh Chia Jun
24%

Chow Loh Fern


19%

Chong Xin Hui


19%

Lim Tzhi Jian


19%

Sin Jun Yee


19%