OOP Flashcards
Namespace
A container which lets developers bundle all functionality under a unique, application-specific name.
Class
Defines the object’s characteristics. A class is a template definition of an object’s properties and methods.
Object
An instance of a class.
Property
An object characteristic, such as color.
Method
An object capability, such as walk. It is a subroutine or function associated with a class.
Constructor
A method called at the moment an object is instantiated. It usually has the same name as the class containing it.
Inheritance
A class can inherit characteristics from another class.
Encapsulation
Encapsulation is the packing of data and functions into one component (for example, a class) and then controlling access to that component to make a “blackbox” out of the object. Because of this, a user of that class only needs to know its interface (that is, the data and functions exposed outside the class), not the hidden implementation.
Abstraction
The conjunction of an object’s complex inheritance, methods, and properties must adequately reflect a reality model.
Polymorphism
Poly means “many” and morphism means “forms”. Different classes might define the same method or property.
Polymorphisme
L’idée d’autoriser le même code à être utilisé avec différents types, ce qui permet des implémentations plus abstraites et générales.
Public
Les variables, méthodes ou classes publiques sont accessibles par tout objet.
“Rien” (devant une variable, méthode, classe publique)
Les variables, méthodes ou classes définies sans modificateur sont accessibles par toute classe appartenant au même package.
Protected
Les variables, méthodes ou classes définies comme protégées ne sont accessibles que par les classes filles et classes du même package.
Private
Les variables, méthodes ou classes définies comme privées ne sont accessibles que par la classe dans laquelle elles sont définies.
Static
Devant une variable ou méthode : Le mot clé static devant une variable (ou méthode) indique que celle-ci n’appartient pas à une instance particulière de la classe. Les variables ou méthodes statiques appartiennent à la classe elle-même. On peux ainsi les utiliser sans avoir une instance créée. De nombreuses classes ont des membres ou méthodes statiques. Devant un bloc de code : Le mot-clé static devant un bloc de code indique que celui-ci ne sera exécuté qu’une fois.
Final (devant une méthode)
On indique que cette méthode ne pourra plus être redéfinie dans une classe fille. Ce qui entraîne une certaine optimisation dans les appels à cette méthode.
Final (devant une classe)
On ne peut pas créer de classe dérivée de celle-ci. Par exemple il est impossible de dériver une classe à partir de la classe String de la bibliothèque de base. La solution consisterait à “encapsuler” String dans une classe de notre conception. Devant une variable membre ou une variable locale : La variable ne peut plus être modifiée après son initialisation, et doit obligatoirement être initialisée une fois (et une seule fois)
This
Référence à l’instance courante
Super
Référence à la classe mère
Why use getters and setters?
- When you realize you need to do more than just set and get the value, you don’t have to change every file in the codebase.
- You can perform validation here.
- You can change the value being set.
- You can hide the internal representation. getAddress() could actually be getting several fields for you.
- You’ve insulated your public interface from changes under the sheets.
- Some libraries expect this. Reflection, serialization, mock objects.
- Inheriting this class, you can override default functionality.
- You can have different access levels for getter and setter.
- Lazy loading.
- People can easily tell you didn’t use Python.
Abstract class
Abstract classes are distinguished by the fact that you may not directly construct objects from them using the new operator. An abstract class may have zero or more abstract methods.
Abstract method
An abstract method has no method body. Methods defined in an interface are always abstract. The body of an abstract method must be defined in a sub class of an abstract class, or the body of a class implementing an interface.
API
A set of definitions that you can make use of in writing programs. In the context of Java, these are the packages, classes, and interfaces that can be used to build complex applications without having to create everything from scratch.
Block
Statements and declarations enclosed between a matching pair of curly brackets ({ and }). For instance, a class body is a block, as is a method body. A block encloses a nested scope level (not in ES5)
Class inheritance
When a super class is extended by a sub class, a class inheritance relationship exists between them. The sub class inherits the methods and attributes of its super class. In Java, class inheritance is single inheritance. See interface inheritance for an alternative form of inheritance.
Class method
A synonym for static method.