LinkedList | is less efficient than ArrayList and Vector for operations such as extracting an arbitrary element |  |
is more efficient than ArrayList and Vector for operations such as inserting an element in the middle |  |
is a subtopic of The Basics of Java |  |
is an instance of Java collection class |  |
Java collection class | has purpose working with collections of objects |  |
has part iterator method |  |
uses iterator methods for doing something with every member of the collection |  |
Java class | can extend only one superclass |  |
can have more than one constructor each of which has different sets of arguments |  |
can have the same name as another class if the two classes are not in the same package and their packages are never imported into the same file |  |
can implement more than one interface |  |
has form class classname { // declarations of variables // declarations of constructors (discussed below) // declarations of other methods with public ones first } |  |
is stored in a file of the same name |  |
may implement particular low-level subsystems |  |
should be placed in its own source file |  |
should have a unique name since somebody in the future might want to import the packages containing both classes and hence create a name clash |  |
should order elements as follows: - class variables
- instance variables
- constructors
- the most important public methods
- methods that are simply used to access variables
- private methods
|  |
class | contains all of the code that relates to its objects including - code describing how the objects of the class are structured - i.e. the data stored in each object that implement the properties
- The procedures, called methods, that implement the behaviour of the objects
|  |
contains data associated with each object |  |
declares a list of variables, called instance variables, corresponding to data that will be present in each instance |  |
is divided up into methods |  |
is drawn as a box with the name of the class inside in a UML class diagram |  |
is needed in a domain model if you have to store or manipulate instances of it in order to implement a requirement |  |
represents several similar objects |  |
see also class^2 |  |
should be created to hold a responsibility if the responsibility cannot be attributed to any of the existing classes |  |
should be named after things their instances represent in the real world |  |
should not be named after the internals of a computer system such as 'Record', 'Table', 'Data', 'Structure', or 'Information' |  |
data abstraction | groups the pieces of data that describe some entity, so that programmers can manipulate that data as a unit |  |
helps a programmer to cope with the complexity of data |  |
hides the details of data |  |
module | has high cohesion if related aspects of a system are kept together in this module, and unrelated aspects are kept out |  |
lacks side effects if it does not modify any data, and does not leave behind any information, other than its result, that would have an effect on other computations |  |
component | may perform a special-purpose function such as the user interface for a particular system |  |