C#のプロパティを他の言語に置き換えてみる(カプセルで制約)
次のC#のプロパティサンプルを他の言語に置き換えてみる
C#基本
このコードは、C#でプレイヤーのクラスを定義し、プレイヤーのインスタンスを作成し、年齢を設定し、取得するために使用しています。Ageプロパティは、プライベートのageフィールドにアクセスし、読み取り、書き込みを行うように設計されています。それは、年齢が0以上であることを確認するために、setterに条件を追加しています。それは正常に動作し、プレイヤーの年齢を保護しています
Player player = new Player();
player.Age = 10;
int age = player.Age;
class Player
{
int age;
public int Age
{
get
{
return age;
}
set
{
if (age >= 0)
{
age = value;
}
}
}
}
プロパティを使わない場合
このコードは、Playerクラスを定義しています。このクラスは、プレイヤーの年齢を保持する_ageという名前のプライベートフィールドを持っています。また、SetAgeメソッドとGetAgeメソッドを持っています。 SetAgeメソッドは、年齢を設定するために使用され、0以上の値のみが許可されています。 GetAgeメソッドは、現在のプレイヤーの年齢を取得するために使用されます。
Player player = new Player();
player.SetAge(10);
int age = player.GetAge();
class Player
{
private int _age;
public void SetAge(int age)
{
if (age >= 0)
{
_age = age;
}
}
public int GetAge()
{
return _age;
}
}
Javaに置き換えてみる
このコードは、Player
クラスを定義しています。このクラスは、プレイヤーの年齢を保持するプライベートな変数age
を持っています。また、getAge
メソッドとsetAge
メソッドがあります。これらのメソッドは、プレイヤーの年齢を取得したり設定したりするために使用されます。
setAge
メソッドは、年齢が0以上の場合にのみage
変数に値を設定します。これは、年齢が負の値の場合に不適切な値を設定しないためです。
main関数では、Player
インスタンスを生成し、その後年齢を10に設定し、その後年齢を取得しています。
Player player = new Player();
player.setAge(10);
int age = player.getAge();
class Player {
private int age;
public int getAge() {
return age;
}
public void setAge(int age) {
if (age >= 0) {
this.age = age;
}
}
}
JavaScriptに置き換えてみる
このコードは、JavaScriptでクラスを使ってプレイヤーオブジェクトを作成し、そのプレイヤーの年齢を設定し、取得するためのものです。
let player = new Player();
で、Playerクラスから新しいインスタンスを作成して、変数playerに代入しています。player.Age = 10;
で、作成したインスタンスのAgeプロパティに10を設定しています。let age = player.Age;
で、作成したインスタンスのAgeプロパティを取得して、変数ageに代入しています。
Playerクラスには、constructor()メソッドと、Ageプロパティに対応するgetter、setterが定義されています。 constructor()メソッドは、インスタンスを生成した時に呼び出され、初期値を設定するために使用されています。 getterは、Ageプロパティを取得するために使用され、setterはAgeプロパティを設定するために使用されます。
このコードは、正しく実装されており、プレイヤーの年齢の設定、取得ができることがわかります。ただし、Ageプロパティを負の値に設定しようとした場合に、何も起こらないので、その点は改善の余地があるかもしれません
let player = new Player();
player.Age = 10;
let age = player.Age;
class Player {
constructor() {
this.age = 0;
}
get Age() {
return this.age;
}
set Age(value) {
if (value >= 0) {
this.age = value;
}
}
}
Pythonに置き換えてみる
このコードは、「Player」という名前のクラスを定義しています。このクラスは、プレイヤーの年齢を保持するために使用されます。
クラスの初期化メソッドでは、プレイヤーの年齢を0に設定しています。また、「age」プロパティを定義しています。これにより、プレイヤーの年齢を取得および設定することができます。
最後の部分では、「Player」クラスのインスタンスを作成し、その年齢を10に設定し、その年齢を取得しています
class Player:
def __init__(self):
self._age = 0
@property
def age(self):
return self._age
@age.setter
def age(self, value):
if value >= 0:
self._age = value
player = Player()
player.age = 10
age = player.age
ディスカッション
コメント一覧
まだ、コメントがありません