1Object-Oriented Programming (OOP)
A style of programming focused on the use of classes and
class hierarchies
2Inheritance
Reuse and extension of fields and method implementations from another class
3Encapsulation
Bundling data and code into a restricted container
4Abstraction
Specifying a general interface while hiding implementation details (sometimes listed as a 4th fundamental concept of OOP, though I believe it's common to most paradigms)
5Primitive type
A data type that can typically be handled directly by the underlying hardware
6Enumerated type
A data type that includes a fixed set of constant values called enumerators
7Class
A template encapsulating data and code that manipulates it
8Interface
a reference type containing only method signatures, default methods, static methods, constants, and nested types
9Instance
An encapsulated bundle of data and code (e.g., an instance of a program is a process; an instance of a class is an object)
10Object
An instance of a class containing a set of encapsulated data and associated methods
11Variable
A block of memory associated with a symbolic name that contains a primitive data value or the address of an object instance
12Operator
A short string representing a mathematical, logical, or machine control action
13Reference Counter
A managed memory technique that tracks the number of references to allocated memory, so that the memory can be freed when the count reaches zero
14Garbage Collector
A program that runs in managed memory systems to free unreferenced memory
15Field
A class member variable (also called an "attribute" or "class variable")
16Constructor
A special class member that creates and initializes an object from the class
17Destructor
A special class member that cleans up when an object is deleted (not supported by Java)
18Method
A function that manipulates data in a class (also called a "class function")
19Getter
A method that returns the value of a private variable
20Setter
A method that changes the value of a private variable
21Multiple Inheritance
A subclass inheriting class members from two or more superclasses
22Superclass
The class from which members are inherited
23Subclass
The class inheriting members
24Abstract Class
A class that cannot be instantiated
25Abstract Method
A method declared with no implementation
26Override
A subclass replacing its superclass’ implementation of a method
27Namespace
A named scope
28Package
A grouping of related types providing access protection and namespace management
29Declaration
A statement that introduces a name with an associated type into a scope
30Definition
A declaration that also fully specifies the entity declared
31Shadowing
A variable declared in a narrower scope than that of a variable of the same name declared in a broader scope
32Algorithm
A procedure for solving a specific problem, expressed in terms of an ordered set of actions to execute
33Exception
An object created to represent an error or other unusual occurrence and then propagated via special mechanisms until caught by special handling code
34Assertion
An expression that, if false, indicates a program error (in Java, via the assert keyword)
35Invariant
Code for which specified assertions are guaranteed to be true (often, a class in which fields cannot change after instantiation)
36Data Validation
Ensuring that a program operates on clean, correct and useful data
37Validation Rules
Algorithmically enforceable constraints on the correctness, meaningfulness, and security of input data
38Version Control
The task of keeping a system consisting of many versions well organized
39Unified Modeling Language (UML)
The standard visual modeling language used to describe, specify, design, and document the structure and behavior of object-oriented systems
40Intellectual Property
Exclusive right to authors and inventors to their writing and discoveries
41Trademark
Symbol or name established by use as representing a company or product
42Patent
Exclusive right to make, use, or sell an invention, and authorize others to do the same
43Copyright
Exclusive right to print, publish, perform, execute, or record a creative work or its derivatives, and to authorize others to do the same