A class definition.
A class definition has the following components:
annotations
,class
’ keyword,name
,parameters
, if present,body
.Examples (multi-line):
shared class PrintableWrapper<T>(shared T wrapped) satisfies Printable { shared actual void print() { package.print(wrapped else "<null>"); } } shared class Counter(Integer initialCount=0) { variable Integer n = initialCount; shared Integer count => n; shared void increment() => n++; }
no subtypes hierarchy
Initializer |
ClassDefinition(UIdentifier name, Parameters? parameters, ClassBody body, CaseTypes? caseTypes = null, ExtendedType? extendedType = null, SatisfiedTypes? satisfiedTypes = null, TypeParameters? typeParameters = null, TypeConstraint[] typeConstraints = [], Annotations annotations = ...) Parameters:
|
Attributes | |
annotations | shared actual Annotations annotations The annotations of the class. Refines Declaration.annotations |
body | shared ClassBody body The body of the class. |
caseTypes | shared actual CaseTypes? caseTypes The case types of the class. Refines ClassOrInterface.caseTypes |
children | shared actual <Annotations|UIdentifier|TypeParameters|Parameters|CaseTypes|ExtendedType|SatisfiedTypes|TypeConstraint|ClassBody>[] children The child nodes of this node. Refines Node.children |
extendedType | shared actual ExtendedType? extendedType The extended type of the class. Refines AnyClass.extendedType |
hash | shared actual Integer hash The hash value of the value, which allows the value to be an element of a hash-based set or key of a hash-based map. Implementations must respect the constraint that:
Therefore, a class which refines In general, Note that when executing on a Java Virtual Machine, the
64-bit Refines Object.hash |
name | shared actual UIdentifier name The name of the class. |
parameters | shared actual Parameters? parameters The parameters of the class. Refines AnyClass.parameters |
satisfiedTypes | shared actual SatisfiedTypes? satisfiedTypes The satisfied types of the class. Refines ClassOrInterface.satisfiedTypes |
typeConstraints | shared actual TypeConstraint[] typeConstraints The type constraints on the class’ type parameters. Refines TypeDeclaration.typeConstraints |
typeParameters | shared actual TypeParameters? typeParameters The type parameters of the class. Refines TypeDeclaration.typeParameters |
Inherited Attributes |
Attributes inherited from: AnyClass |
Attributes inherited from: ClassOrInterface |
Attributes inherited from: Declaration |
Attributes inherited from: Node |
Attributes inherited from: Object hash , string |
Attributes inherited from: TypeDeclaration |
Methods | |
copy | shared ClassDefinition copy(UIdentifier name = ..., Parameters? parameters = ..., ClassBody body = ..., CaseTypes? caseTypes = ..., ExtendedType? extendedType = ..., SatisfiedTypes? satisfiedTypes = ..., TypeParameters? typeParameters = ..., TypeConstraint[] typeConstraints = ..., Annotations annotations = ...) Parameters:
|
equals | shared actual Boolean equals(Object that) Determine if two values are equal. Implementations should respect the constraints that:
Furthermore it is recommended that implementations
ensure that if A class which explicitly refines Note that an implementation of Refines Object.equals |
transform | shared actual Result transform<out Result>(Transformer<Result> transformer) Transform this node with the given If you have a Refines Node.transform |
visit | shared actual void visit(Visitor visitor) Visit this node with the given Refines Node.visit |
Inherited Methods |
Methods inherited from: Node |
Methods inherited from: Object equals |