いろんなオブジェクト指向言語のインスタンス生成とメソッド呼び出しの方法をまとめてみた。
調べてみて使ったことない言語も結構あるなあって思いました。
ちなみにコンストラクタとは初期化を行うための特別なメソッド。
クラス名 インスタンス名 = new クラス名(); クラス名 インスタンス名 = new クラス名(引数); インスタンス名.メソッド名(); インスタンス名.メソッド名(引数);
クラス名 インスタンス名= new クラス名(); クラス名 インスタンス名= new クラス名(引数); インスタンス名.メソッド名(); インスタンス名.メソッド名(引数);
Dim インスタンス名 As New クラス名 Dim インスタンス名 As New クラス名(引数) インスタンス名.メソッド名() インスタンス名.メソッド名(引数)
インスタンス名 = クラス名.new インスタンス名 = クラス名.new(引数) インスタンス名.メソッド名 インスタンス名.メソッド名(引数)
C++
クラス名* インスタンス名 = new クラス名; クラス名* インスタンス名 = new クラス名(引数); インスタンス名.メソッド名() インスタンス名.メソッド名(引数)
インスタンス名 = クラス名() インスタンス名 = クラス名(引数) インスタンス名.メソッド名() インスタンス名.メソッド名(引数)
$インスタンス名 = new クラス名; $インスタンス名 = new クラス名(引数); $インスタンス名->メソッド名(); $インスタンス名->メソッド名(引数);
インスタンス名 = new クラス名(); インスタンス名 = new クラス名(引数); インスタンス名.メソッド名(); インスタンス名.メソッド名(引数);
Swift
インスタンス名 = クラス名() インスタンス名 = クラス名(変数名: 引数) インスタンス名.メソッド名() インスタンス名.メソッド名(引数)
Kotlin
インスタンス名 = クラス名() インスタンス名 = クラス名(引数) インスタンス名.メソッド名() インスタンス名.メソッド名(引数)
GO
var インスタンス名 クラス名 インスタンス名 := new(クラス名) インスタンス名.メソッド名() インスタンス名.メソッド名(引数)
※GO言語にはクラスがないがそれに近いものがあるらしい。
各言語でだいぶ違いがありますね。
JavaとC#はやはりほぼ同じ。
Python、C++、Swift、Kotlin、GOは使ったことないからよくわからない。
PythonとSwift、Kotlinはnewが要らないっていうのが衝撃的。
C++はこれであっているのか?
GOは全く分かんない。
間違いがあったらごめんなさい。