A | B | C | D | E | F | G | H | CH | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
This article may require cleanup to meet Wikipedia's quality standards. The specific problem is: This article's reference section contains many footnotes, but lists no external references or sources. (June 2013) |
This comparison of programming languages compares how object-oriented programming languages such as C++, Java, Smalltalk, Object Pascal, Perl, Python, and others manipulate data structures.
Object construction and destruction
construction | destruction | |
---|---|---|
ABAP Objects | data variable type ref to class . [1]
|
[2][3] |
APL (Dyalog) | variable←⎕NEW class «parameters»
|
⎕EX 'variable'
|
C++ | class variable«(parameters)»; [4] orclass *variable = new class«(parameters)»; [5]
|
delete pointer;
|
C# | class variable = new class(parameters);
|
variable.Dispose(); [3]
|
Java | [3] | |
D | destroy(variable);
| |
eC | class «instance handle» { «properties/data members assignments, instance method overrides» }
|
delete instance handle;
|
Objective-C (Cocoa) | class *variable = class alloc init; or class *variable = class alloc initWithFoo:parameter «bar:parameter ...»;
|
variable release;
|
Swift | let variable = class(parameters)
|
|
Python | variable = class(parameters)
|
del variable [3] (Normally not needed)
|
Visual Basic .NET | Dim variable As New class(parameters)
|
variable.Dispose() [3]
|
Xojo | Dim variable As New class(parameters)
|
variable = Nil
|
Eiffel | create variable orcreate «{TYPE}» variable.make_foo «(parameters)» orvariable := create {TYPE} orvariable := create {TYPE}.make_foo «(parameters)»
|
[3] |
PHP | $variable = new class«(parameters)»;
|
unset($variable); [3]
|
Perl 5 | «my »$variable = class->new«(parameters)»;
|
undef($variable);
|
Raku | «my »$variable = class.new«(parameters)»;
|
$variable.undefine;
|
Ruby | variable = class.new«(parameters)»
|
[3] |
Windows PowerShell | $variable = New-Object «-TypeName» class ««-ArgumentList» parameters»
|
Remove-Variable «-Name» variable
|
OCaml | let variable = new class «parameters» or let variable = object members end [6]
|
[3] |
F# | let variable = «new »class(«parameters»)
| |
Smalltalk | The class is an Object. Just send a message to a class, usually #new or #new: , and many others, for example:
Point x: 10 y: 20.
Array with: -1 with: 3 with: 2.
|
|
JavaScript | var variable = new class«(parameters)» or var variable = { «key1: value1«, key2: value2 ...»»}
|
[3] |
Object Pascal (Delphi) | ClassVar := ClassType.ConstructorName(parameters);
|
ClassVar.Free;
|
Scala | val obj = new Object // no parameters
val obj = new Object(arg0, arg1, arg2...)
val obj = Object(arg0, arg1, arg2...) // case class
val obj = new Object(arg0, arg1, param1 = value1, ...) // named parameters
|
[3] |
COBOL | INVOKE class "NEW" RETURNING variable orMOVE class::"NEW" TO variable
|
|
Cobra | variable «as class» = class(parameters)
|
variable.dispose
|
ISLISP | (setq variable (create (class <some-class> :field-1 value-1 :field-2 value-2 ..)))
|
[3] |
Class declarationedit
class | protocol | namespace | |
---|---|---|---|
ABAP Objects | class name definition «inheriting from parentclass». «interfaces: interfaces.» method_and_field_declarations endclass.
|
interface name. members endinterface.
|
— |
APL (Dyalog) | :Class name «:parentclass» «,interfaces» members :EndClass
|
:Interface name members :EndInterface
|
:Namespace name members :EndNamespace
|
C++ | class name« : public parentclasses [7]» { members };
|
namespace name { members }
| |
C# | class name« : «parentclass»«, interfaces»» { members }
|
interface name« : parentinterfaces» { members }
| |
D | module name;
| ||
eC | class name« : base class» { «default member values assignments» «members» }
|
|
namespace name;
|
Java | class name« extends parentclass»« implements interfaces» { members }
|
interface name« extends parentinterfaces» { members }
|
package name; members
|
PHP | namespace name; members
| ||
Objective-C | @interface name« : parentclass» [8]«< protocols >» { instance_fields } method_and_property_declarations @end [9]
|
@protocol name«< parentprotocols >» members @end
|
[10] |
Swift | class name« : «parentclass»«, protocols»» { members }
|
protocol name« : parentprotocols» { members }
|
|
Python | class name«(parentclasses[7])»:
|
[11] | __all__ = member1,member2,...
|
Visual Basic .NET | Class name« Inherits parentclass»« Implements interfaces»
|
Interface name« Inherits parentinterfaces»
|
Namespace name
|
Xojo | Class name« Inherits parentclass»« Implements interfaces»
|
Interface name« Inherits parentinterfaces»
|
Module name
|
Eiffel | class name« inherit parentclasses[7]»
|
— | |
Perl | package name; «@ISA = qw(parentclasses[7]);» members 1;
|
package name; members
| |
Raku | class name «is parentclass «is parentclass ...[7]»» «does role «does role ...»» { members }
|
role name «does role «does role ...»» { members }
|
module name { members }
|
Ruby | class name« < parentclass»
|
module name
| |
Windows PowerShell | — | ||
OCaml | class name «parameters» = object «(self)» «inherit parentclass «parameters» «inherit parentclass «parameters» ...[7]»» members end
|
module name
| |
F# | type name«(parameters)» «as this» = class «inherit parentclass«(parameters)» «as base»» members «interface interface with implementation «interface interface with implementation ...»» end
|
type name = interface members end
|
namespace name
|
Smalltalk | [12] | [13] | |
JavaScript (ES6) | class name «extends parentclass» { members }
|
||
Object Pascal (Delphi) |
|
package name; members
| |
Scala | class ConcreteClass(constructor params)
extends ParentClass
with Trait1 with Trait2 with Trait2 {
// members
}
|
trait TraitName
extends OtherTrait1
with OtherTrait2 with OtherTrait3 {
// members
}
|
package name
|
COBOL | CLASS-ID. name« INHERITS« FROM» parentclasses».
FACTORY« IMPLEMENTS interfaces». class-members END FACTORY. OBJECT« IMPLEMENTS interfaces». instance-members END OBJECT.
|
INTERFACE-ID. name« INHERITS« FROM» interfaces».
members
|
— |
Cobra | class name «inherits parentclass» «implements interfaces»
|
interface name «inherits parentinterfaces»
|
namespace name
|
ISLISP | (defclass name (base-class) ((x :initform 0 :accessor get-x :initarg x)) (:abstractp nil))
|
Class membersedit
Constructors and destructorsedit
constructor | destructor | finalizer[14] | |
---|---|---|---|
ABAP Objects | methods constructor «importing parameter = argument» [15]
|
— | |
APL (Dyalog) | ∇ name :Implements Constructor «:Base «expr»» instructions ∇
|
∇ name :Implements Destructor instructions ∇
| |
C++ | class(«parameters») «: initializers [16]» { instructions }
|
~class() { instructions }
|
|
C# | class(«parameters») { instructions }
|
void Dispose(){ instructions }
|
~class() { instructions }
|
D | this(«parameters») { instructions }
|
~this() { instructions }
| |
eC | class() { instructions }
|
~class() { instructions }
|
|
Java | Zdroj:https://en.wikipedia.org?pojem=Comparison_of_programming_languages_(object-oriented_programming)