【クラス・構造体メニュー】> 【静的メンバ】STEP: 1 クラスの作成 (paizaランク C 相当) [難易度: 1606 ±15]
※リンク先へ移動するためには[paiza]へのログインが必要です。
エンジニアであり、社員を管理を管理する立場にあるあなたは、効率的に社員を管理するために、
各社員の社員番号 number と名前 name を持ち、加えて情報を返す関数を持つような構造体、すなわち次のようなメンバ変数とメンバ関数を持つ社員クラス class employee
を作成することにしました。
メンバ変数
number : 整数
name : 文字列
メンバ関数
getnum(){
return number;
}
getname(){
return name;
}
入力で make number name
と入力された場合は変数に number , name を持つ社員を作成し、 getnum n
と入力された場合は n 番目に作成された社員の number を、getname n
と入力された場合は n 番目に作成された社員の name を出力してください。
解答例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
<?php //Classを定義 class employee { //プロパティを定義 private $number; private $name; //インスタンス化するときに引数を受け取れるようにする public function __construct($number, $name) { $this->number = $number; $this->name = $name; } //数字を取得するメソッドを追加 public function getnum() { return $this->number; } public function getname() { return $this->name; } } $n = trim(fgets(STDIN)); for($i=0; $i<$n; $i++) { $s = explode(" ", trim(fgets(STDIN))); $commond = $s[0]; $num = $s[1]; switch($commond) { case "make" : $name = $s[2]; $employee[] = new employee($num, $name); break; case "getnum" : echo ($employee[$num-1]->getnum()). "\n"; break; case "getname" : echo ($employee[$num-1]->getname()). "\n"; break; } } ?> |