🎮 ピカチュウって200種類おんねん
ピカチュウにもいろんな種類がいるように
プログラミング言語にもいろいろな種類があるのだが、
プログラミングの基本的な概念である「クラス」を、
Java・Python・JavaScript・Rubyの4つの言語で比較してみました!
各言語で「ピカチュウ」というクラスを定義し、
違いを見てみよう!!
表形式で比較
| プログラミング言語 | 静的型付け | インスタンス化 | 継承 | アクセス修飾子 |
|---|---|---|---|---|
| Java | 静的型付け(int、String等事前に決定) | Pikachu pikachu = new Pikachu("ピカチュウ"); | class Pikachu extends Pokemon | あり |
| Python | 動的型付け (実行時決定) |
p = Pikachu("ピカチュウ") | class Pikachu(Pokemon): | なし アンダースコア(_)で目印のみ |
| JavaScript | 動的型付け | let pikachu = new Pikachu("ピカチュウ"); | class Pikachu extends Pokemon | *1 なし アンダースコア(_)で目印のみ |
| Ruby | 動的型付け型宣言不要 | pikachu =Pikachu.new("ピカチュウ") | class Pikachu < Pokemon | *2 あり (メソッドのみ) |
※Java以外は調べただけなので、後学のために間違ってたら教えてください、
アクセス修飾子 ⇒ クラス外部からフィールド、メソッドが使えるかを制御する
*1 JavaScript:#でアクセスを制限できる(ES2022以降)
*2 Ruby :フィールドにはアクセス修飾子なし(デフォルトでprivate)
他に共通してた処理・機能:
コンストラクタ(Java以外はフィールドをコンストラクタ内で宣言)
クラスメソッド、クラスフィールド、
インスタンスメソッド、インスタンスフィールド、オーバーライド
共通してないもの(Javaのみ)
オーバーロード、クラス内でのフィールドの宣言
1. Javaでのピカチュウのクラス
public class Pikachu {
// フィールド(属性)
private int hp;
private String name;
// コンストラクタ(インスタンス生成時に呼ばれる)
public Pikachu(String name) {
this.name = name;
this.hp = 100; // 初期HP
}
// メソッド(行動)
public void attack() {
System.out.println(name + "が10万ボルトで攻撃!");
}
// ゲッター
public int getHp() {
return hp;
}
public String getName() {
return name;
}
// 使用例
public static void main(String[] args) {
Pikachu pikachu = new Pikachu("ピカチュウ");
pikachu.attack();
System.out.println(pikachu.getName() + "のHPは" + pikachu.getHp() + "です。");
}
}
2. Pythonでのピカチュウのクラス
class Pikachu:
# コンストラクタ
def __init__(self, name):
self.name = name
self.hp = 100 # 初期HP
# メソッド(行動)
def attack(self):
print(f"{self.name}が10万ボルトで攻撃!")
# ゲッター
def get_hp(self):
return self.hp
def get_name(self):
return self.name
# 使用例
pikachu = Pikachu("ピカチュウ")
pikachu.attack()
print(f"{pikachu.get_name()}のHPは{pikachu.get_hp()}です。")
3. JavaScriptでのピカチュウのクラス
class Pikachu {
// コンストラクタ
constructor(name) {
this.name = name;
this.hp = 100; // 初期HP
}
// メソッド(行動)
attack() {
console.log(`${this.name}が10万ボルトで攻撃!`);
}
// ゲッター
getHp() {
return this.hp;
}
getName() {
return this.name;
}
}
// 使用例
let pikachu = new Pikachu("ピカチュウ");
pikachu.attack();
console.log(`${pikachu.getName()}のHPは${pikachu.getHp()}です。`);
4. Rubyでのピカチュウのクラス
class Pikachu
# コンストラクタ
def initialize(name)
@name = name
@hp = 100 # 初期HP
end
# メソッド(行動)
def attack
puts "#{@name}が10万ボルトで攻撃!"
end
# ゲッター
def get_hp
return @hp
end
def get_name
return @name
end
end
# 使用例
pikachu = Pikachu.new("ピカチュウ")
pikachu.attack
puts "#{pikachu.get_name}のHPは#{pikachu.get_hp}です。"
あとがき
正直なところ、、、
どのピカチュウもかわいい💛💛💛
ではなく、
プログラミング言語って、
どの言語も面白いですよね!💛💛💛
ここまで読んでくれて、本当にありがとうございました。
「プログラミングって難しい…」って思ってた人も、
「ちょっと楽しいかも…!」って思ってもらえたらうれしいな。
次の投稿も、よろしくおねがいします。
💬 コメント・フィードバック歓迎!
「この章わかりやすかった!」
「これ表現まちがってない?」
「次は○○をやってほしい!」などなど、
お気軽にコメントで教えてくださいね!