Class

A class is a blueprint for objects and defines a type with fields and methods.

Related concepts:  ObjectFieldMethodMemberTypePrototype

Closest Wikipedia entry:  Class (computer programming) — In object-oriented programming, a class is an extensible program-code-template for creating objects, providing initial values for state (member variables) and implementations of behavior (member functions or methods).When an object is created by a constructor of the class, the resulting object is called an instance of the class, and the member variables specific to the object are called instance variables, to contrast with the class variables shared across the class. In certain languages, classes are, as a matter of fact, only a compile time feature (new classes cannot be declared at run-time), while in other languages classes are first-class citizens, and are generally themselves objects (typically of type Class or similar). In these languages, a class that creates classes within itself is called a metaclass.

Authoritative Definition

Wikipedia does not necessarily offer the best fitting definition of a concept. The exact meaning we attribute to the concept of Class is based on principled authoritative sources such as:

Misconceptions about Class
28 documented Misconceptions

Check Yourself
Misconception
AbstractClassMustImplementAbstractMethod
An abstract class must implement all abstract methods defined in its superclass
Misconception
AbstractClassNoImplementation
An abstract class cannot contain implemented methods
Misconception
AddMemberAtRuntime
Set of class members can change at runtime
Misconception
AllClassesHaveDefaultConstructor
All classes automatically get a no-argument constructor
Misconception
AnyClassException
Any class can be an exception class
Misconception
ArrayListIsArray
ArrayLists are arrays
Misconception
CallNotStaticallyChecked
A method invocation on a reference of a type that does not have that method won't compile
Misconception
ConcreteClassMustOverride
A concrete class needs to implement all methods declared in its abstract superclasses
Misconception
ConcreteClassOnlyImplementClassAbstract
A concrete class only needs to implement those abstract methods it inherits from abstract superclasses
Misconception
ConcreteClassOnlyImplementDirectAbstract
A concrete class only needs to implement abstract methods declared in its direct supertypes
Misconception
ConcreteClassOnlyImplementInterfaceAbstract
A concrete class only needs to implement those abstract methods it inherits from interfaces
Misconception
ImmutableRequiresFinalParameters
Immutable classes need final constructor/method parameters
Misconception
ImplicitInterfaceImplementation
Java implicitly produces implementations of any methods a class inherits from the interfaces it implements
Misconception
InterfaceExtendClass
An interface can extend a class
Misconception
MethodAsField
Each object contains its own special fields for all of its methods
Misconception
MethodsWithoutClass
Methods can be defined outside a class
Misconception
MultipleSuperclasses
A class can have multiple superclasses
Misconception
NestedObjectsImplyNestedClasses
If objects are part of a containment hierarchy, their classes are nested, too
Misconception
NoFieldInheritance
An object contains only the fields declared in its class
Misconception
NoMethodInheritance
Subclasses inherit fields but not methods
Misconception
PrivateFieldsImplyImmutability
A class where all fields are private is immutable
Misconception
ReferringToRecursiveStructureMakesRecursive
A class referring to a recursive data structure is (indirectly) part of that recursion as well
Misconception
SetterIsStatic
Setter methods are static
Misconception
SuperclassObjectAllocated
When instantiating an object of a subclass, an object of a superclass is also allocated
Misconception
UnqualifiedNamesMustDiffer
The unqualified names of different classes must be different
Misconception
UseOfSelfTypeImpliesRecursiveType
If a class has a method that has a local variable, parameter, or return value with the class as its type, the class is a recursive type

Stay up-to-date

Follow us on  twitter to hear about new misconceptions.