Key Concepts
Abstraction (Lesson 1.2.2; 8.2.1; 8.2.2) Abstraction is the process of ignoring details in order to focus attention on the higher level of a problem. Abstraction is one of the main theoretical principles of object oriented programming
Access modifier (Lesson 2.1.2) An access modifier (public, protected, private) defines the visibility of a section of code, which could be a field, constructor, or method.
Anonymous object (Lesson 2.3.5) An anonymous object is an object that has been created but does not have a name.
Argument (Lesson 2.1.4) An actual argument is a value that is passed when a method or constructor is executed, which is then substituted in the place of any formal parameters.
Array (Lesson 4.2.2) An array is a special type of collection that can store a fixed number of items. Arrays can store elements of primitive or an object type.
ArrayList (Lesson 6.1.3) The ArrayList class is a resizable array, which can be found in the java.util package.
Associativity (Lesson 1.4.3; 3.1.5) refers to the order in which operators with the same level of precedence are evaluated in an expression.
Autoboxing (Lesson 6.1.3) Autoboxing is performed automatically when a primitive-type value is used in a context where an object type is required.
break (Lesson 4.1.4) The break statement is used to terminate the loop immediately. Use of this statement leads to poor program design and we will not be using this statement in FIT9131.
Block (Lesson 2.2.1, 2.3.3) A block is any section of code that is enclosed with a matching set of curly braces { }.
Boolean expression (Lesson 3.1.1) A boolean expression is an expression that returns a boolean value.
Bytecode (Lesson 1.3.2) Bytecode is an intermediate code generated by the Java compiler after the compilation of source code.
Class variables (Lesson 9.1.2) Class variables are variables declared within the class outside any methods.
Class (Lesson 1.2.2) A class is a pattern describing the behaviours and attributes of objects that can be created (instantiated) from that class.
Class diagram (Lesson 4.4.1) A class diagram shows a program's classes, the classes' attributes and methods, and the relationships between the classes.
Client-server (Lesson 10.1.1) The term "client–server" is used to describe the relationship between cooperating classes in an application. The server class provides a function or service to one or many clients. The clients initiate requests for these services.
Collection (Lesson 4.2, 6.1.1) A collection in Java is a data structure used to store sets of the same type of object.
Computer (Lesson 1.1.1) Using a modern definition, a computer is a piece of electronic technology that is capable of performing any computational operation according to a set of internally stored instructions.
Computer bug (Lesson 1.1.2) The term computer bug refers to the existence of an error in a computer program that results in an undesirable and/or unexpected operation when the program is executed.
Computer program (Lesson 1.1.2) A computer program is set of ordered instructions (also called computer code) for a computer to perform.
Concatenation (Lesson 4.3.2) String concatenation happens when the + operator is used in an expression where one or both operands are strings. Concatenation is the joining of the operand values together to form a new string.
Constructor (Lessons 2.1.1, 2.1.4) A constructor assigns initial values to the attributes of a newly created object.
Conditional operator (Lesson 3.2.3) The conditional operator, represented by the symbols ? and : , selects one of two expressions for evaluation, based on the evaluation of the first operand. It is also called a ternary operator because it takes three operands.
continue (Lesson 4.1.4) The continue statement is used to skip the current iteration of the loop. Use of this statement leads to poor program design and we will not be using this statement in FIT9131.
Declaration of a variable (Lesson 1.4.1) Declaring a variable is done by stating its data type and giving it a name for memory allocation.
Debugger (Lesson 6.3.3) A debugger is essentially a software tool that provides support for performing a walk-through on a segment of code.
Debugging (Lesson 6.3.2) Debugging is the process of finding the location of errors and fixing them. Examples of debugging strategies are: manual walkthroughs, verbal walkthroughs, and print statements.
Definition (of a variable) (Lesson 1.4.1) Defining a variable is done by assigning a value to a variable.
Dynamic type (Lesson 11.2.1) The initialised type of an object that is assigned at runtime is its dynamic type.
Encapsulation (Lesson 2.1.2; 4.4.2; 8.2.1; 8.2.4) Encapsulation is idea of wrapping data (fields) and code that uses the data (methods) together as a single unit. Encapsulation is one of the main theoretical principles of object oriented programming.
Exception (Lesson 10.1.1) An exception is an event that occurs during the execution of a program, which disrupts the normal flow of the program's instructions. A checked exception is one that occurs when there is a possibility for an operation to fail that can be anticipated. By contrast, an unchecked exception is encountered when a program error occurs during the normal execution of the program and is not anticipated.
Exception handler (Lesson 10.1.5) An exception handler is any part of a program code that outlines a protected block in order to handle any exception being thrown during the execution of code within this block.
Execution (runtime) error (Lesson 6.3.1) An execution or runtime error is an error that occurs during the execution of the program after it has been compiled.
Expression (Lesson 1.4.2) An expression is a series of variables, operators, and method calls that evaluates to a single value.
extends (Lesson 11.1.2) When using inheritance, the extends keyword is used in the class header of the sub class followed by the name of the super class.
Field (Lessons 2.1.1; 2.1.3; 9.1.1) A field is used to store the value of the attribute of an object. Fields are also known as instance variables.
Generic class (Lesson 6.1.2) A generic class is one which allows the user to define the data types of the attributes that will be used within the class.
HashMap (Lesson 6.1.4) HashMap is a collection that stores key and value pairs as entries. Values can accessed by providing the key.
HashSet (Lesson 6.1.4) HashSet is a collection that stores each individual element at most once. It does not maintain any specific order.
Identity (Lesson 1.2.3; 2.3.5; 7.1.1) The identity of an object distinguishes one object from another.
Immutable (Lesson 5.3.1) An object is said to be immutable if its contents or state cannot be changed once it has been created. A String object is immutable.
Implementation (Lesson 5.1.2) The implementation of a class is the source code that defines the class.
Information hiding (Lesson 8.2.1; 8.2.4) Information hiding is where the internal information of a class is hidden so only information about what a class can do, and not the implementation details about how it is done, is made visible to the outside.
Inheritance (Lesson 11.1.1) Inheritance enables us to define one class as an extension of another class.
Inheritance relationships (Lesson 11.1.1) Inheritance relationships are expressed by the following word pairs: super/sub, parent/child, and base/derived.
Interface (Lesson 5.1.2) The interface of a class describes what a class can do and how it can be used, without showing the implementation. Interfaces are an example of abstraction, one of the main theoretical principles of object oriented programming.
Iterator (Lesson 6.2.2) An iterator is an object that provides functionality to iterate over objects of a collection
Java API (Lesson 5.2.2) The Java API is a set of classes included with the Java Development Environment that have been written, compiled, and tested by professional programmers. These classes have been optimised for reusability, and are designed to fit into any program another programmer wishes to write with no modification.
javadoc (Lesson 5.1.2) is a tool that can be used to generate class descriptions from the documentation comments in Java source files, specifically the comment blocks before the class and method headers. Using the javadoc tool you can produce documentation in a similar format to the Java API classes.
Lifetime (Lesson 2.3.4; 9.1.1) Lifetime of a variable describes how long the variable continues to exist before it is destroyed.
Local variable (Lesson 2.2.3; 9.1.1) A variable that is defined within the body of a method and is accessible within that method only.
Logic error (Lesson 3.1.5; 6.3.1) A logic error occurs when the programmed code meets the syntax requirements of the language, but does not translate into the correct sequence of instructions to produce the desired output when converted to machine code and executed on the system.
Logical operators (Lesson 3.1.2) Logical operators operate on boolean values (true or false) and produce a new boolean value as a result.
Loop (Lesson 4.1.1) A loop is a construct that can be used to execute a block of statements repeatedly without having to write them multiple times. The two main types of loop are pre-test loops (Lesson 4.1.2) where the condition is tested prior to loop execution and post-test loops (Lesson 4.1.3) where the condition is tested after loop execution.
Math class (Lesson 5.3.2) The Math class provides many mathematical operations and defines a value for mathematical constants such as pi.
Method (Lessons 2.1.1, 2.1.5, 2.2) A method is a sequence of instructions grouped together that when executed perform a specific action within the computing system. Methods implement the behaviour of an object.
Method overloading (Lesson 2.2.1) Method overloading occurs when two or more methods, generally from the same class, share the same method name but different method signatures.
Method overriding (Lesson 11.2.3) Method overriding is a method used by a subclass to define a method with the same name and signature as one already existing in the super class. When invoked, the subclass' method is executed instead of the method defined in the super class.
Method signature (Lesson 2.1.4) A method or constructor signature is the combination of the method or constructor name and the parameter list.
Modularisation (Lesson 8.2.1; 8.2.3) Modularisation is the process of dividing a whole into well-defined parts that can be built and used separately.
new (Lesson 2.3.2) The new operation creates an object of a class and executes a constructor of that class. The constructor that is executed is identified by its signature.
null (Lesson 4.2.4; 6.1.5). null is a reserved word in Java that means 'no object' and is used when an object variable is not currently referring to a particular object. An object type variable that has not explicitly been initialised will contain the value null by default.
Object (Lesson 1.2.2) An object is an instance of a class.
Object class (Lesson 11.2.4) All classes with no explicit superclass have Object as their superclass.
Object diagram (Lesson 4.4.3) An object diagram shows the objects and their relationships at one moment in time during the execution of an application. Object diagrams present the dynamic view of a program.
Object type (Lesson 1.4.1; 7.1.1) An object type is a data type defined by a class.
Object-oriented programming (OOP) (Lesson 1.2.1) The object-oriented programming paradigm is a style of computer programming where the program design is organised around data (or objects) rather than functions and logic.
Parameter (Lesson 2.1.4; 2.2.3; 9.1.1) A parameter is a type of variable included as part of a constructor (or method) declaration.
Pass-by-reference (Lesson 2.3.8) When an object variable is passed as an argument the address (reference) of the object is passed to the method. Object variables are sometimes referred to as reference variables.
Pass-by-value (Lesson 2.3.8) When a primitive variable is passed as an argument, a copy of that variable is made and the copy is then passed to the method.
Polymorphism (Lesson 11.2.2) the term polymorphism is used to describe variables, objects, or methods that can exist in multiple forms.
Polymorphic variable (Lesson 11.2.2) A polymorphic variable is a variable that can store objects of varying types.
Polymorphic method (Lesson 11.2.2) A polymorphic method is a method that when invoked at different times, may execute a different method that exists in the same or a different class, which is determined based on the dynamic type associated with the object.
Precedence (Lessons 1.4.3; 3.1.5) Precedence refers to the order in which operators are evaluated within an expression.
Primitive type (Lesson 1.4.1; 7.1.1) A primitive type in Java is a data type that is predefined as part of the language.
Program translation (Lesson 1.3.1) The process of translating a program written in a high-level language, such as Java, into machine code that the computing system can understand and execute. This may be done through compilation or interpretation. Java involves both compilation and interpretation.
Programming language (Lesson 1.1.2) A programming language is a set of rules (or syntax) for writing instructions (program code) in a form that the computing system can understand, interpret and execute.
Programming paradigm (Lesson 1.1.2) A programming paradigm a style of writing computer programs. In this unit we will be using the object-oriented paradigm.
Relational operators (Lesson 3.1.1) Relational operators are used to check the relationship between two operands and return a boolean result.
Responsibility-driven design (Lesson 4.4.2; 8.2.5) A design technique in object-oriented programming that is used when dealing with multiple classes. In responsibility-driven design, classes are designed based on their behaviours by grouping related methods to be part of the same class.
Return type (Lesson 2.2.2) Specifies a data type (primitive or object) that is returned to the calling object or method.
Runtime error (see Execution error)
Scanner class (Lesson 3.3.2) The Scanner class is used to get user input. The Scanner class is part of the Java libraries and it is found in the java.util package.
Scope (Lesson 2.3.3; 9.1.1) The scope of a variable defines the section of source code from which the variable can be accessed.
Selection statement (Lesson 3.2.1) A selection statement allows a program to choose different paths of execution based on a condition. Java supports two main types of selection statements: if-else statements and switch statements.
State (Lesson 1.2.3; 7.1.1) The state of an object is the value of its attributes.
Statement (Lesson 1.4.2) A statement is an action or series of actions ending in a semi-colon.
Static type (Lesson 11.2.1) The declared type of an object is its static type.
String class (Lesson 1.4.1; 4.3; 5.3.1; 7.1.2) An object of the String class is used to store a sequence of characters.
Substitution (Lesson 11.2.1) The principle of substitution states that objects of an inherited subclass may be used wherever objects of the super class are expected.
Subtype (Lesson 11.2.1) The type defined by a subclass is a subtype of the type of its superclass. Types form a hierarchy similarly to the class hierarchy.
super (Lesson 11.1.4) The super keyword is used with inheritance in two ways. It can be used as a method call in a subclass or it can be used with the dot notation to invoke a method in the super class.
Syntax error (Lesson 1.1.2; 6.3.1) A syntax error is an error that occurs when the code does not meet the correct grammatical requirements for that particular programming language.
System class (Lesson 3.3.1). The System class is part of the Java libraries and is included by default with every program written in Java. The System class contains all of the requirements needed for the system to perform the most basic operations.
throw (Lesson 10.1.4) The primary use of the throw keyword is to report an unchecked exception within a program.
throws (Lesson 10.1.4) The primary use of the throws keyword is to report checked exceptions within a program.
Testing (Lesson 7.2.1) Testing is the activity of finding out whether a piece of code (a method, class, or program) produces the intended behaviour.
Testing heuristics (Lesson 7.2.3) Testing heuristics are 'rule-of-thumb' strategies for testing. Three heuristics we use in FIT9131 are: boundary testing, control flow testing and precision testing.
Test strategy (Lesson 7.2.4) A test strategy is document that specifies how a class or program will be tested and, after testing, provides documentation of all the tests done. A test strategy contains two components: a test plan, which is a summary of all the tests and the test details (test data, expected results and actual results).
this (Lesson 2.3.5) The keyword this refers to the current object.
Type conversion - implicit and explicit (Lesson 3.1.6; 11.2.1) Type conversion is the conversion of a data type. Implicit type conversion is carried out automatically by the compiler without programmer intervention. Explicit type conversion is where the programmer instructs Java to forcibly convert one data type to another.
Unified Modelling Language (UML) (Lesson 4.4.1) UML is used in software engineering as a modelling language.
Unit testing (Lesson 7.2.2) Unit testing is low-level testing where the smallest testable parts of an application are tested individually and independently for their functionality correctness. A component can be a package, class, or method.
Variable (Lesson 1.4.1) A variable is a 'container' that is used by a program to store a value.
Wrapper classes (Lesson 6.1.3) Wrapper classes provide a way to use primitive data types where object types are required.