「PHPでオブジェクト指向入門10~アクセサメソッド(カプセル化)~」の編集履歴(バックアップ)一覧はこちら
追加された行は緑色になります。
削除された行は赤色になります。
前回記事[[PHPでオブジェクト指向入門9~アクセス装飾子(カプセル化)~]]ではpublicとprivateについて学習しました。
実際のコードを見ていきましょう。長方形の面積を計算しますが、エラーならば値が不正ですというようにしていきたいと思います。
~
~
目次
#contents
~
~
----
~
*privateとpublic
横の変数$widthと縦の変数$heightはクラスの中で値をチェックするために外から呼び出されないようにprivateにします。
また、外から呼び出される方はpublicにしておきます。
~
~
*コード
Rectangle.php
<?php
class Rectangle{
private $width;
private $height;
//プロパティ値を初期化
public function __construct(){
$this->width = "値が不正です。";
$this->height = "値が不正です。";
}
//widthプロパティのゲッターメソッド
public function getWidth(){
return $this->width;
}
//widthプロパティのセッターメソッド
public function setWidth($width){
if(is_numeric($width) && $width > 0){
$this->width = $width;
}
}
//heightプロパティのゲッターメソッド
public function getHeight(){
return $this->height;
}
//heightプロパティのセッターメソッド
public function setHeight($height){
if(is_numeric($height) && $height > 0){
$this->height = $height;
}
}
//計算
public function getArea(){
if($this->width === "値が不正です。"|| $this->height === "値が不正です。"){
return "値が不正です。";
}else{
return '面積は'.$this->getWidth() * $this->getHeight().'です。';
}
}
}
?>
index.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>アクセサメソッド</title>
</head>
<body>
<?php
require ('../class/Rectangle.php');
$f = new Rectangle();
$f->setWidth(10);
$f->setHeight(-10);
print $f->getArea();
?>
</body>
</html>
~
~
*実行結果
どちらかを負の数や文字列にすると値は不正ですと出ます。
~
~
*まとめ
何を隠して、何を呼び出す準備しておけばいいのかというイメージがとても必要です。
~
~
以上
前回記事[[PHPでオブジェクト指向入門9~アクセス装飾子(カプセル化)~]]ではpublicとprivateについて学習しました。
実際のコードを見ていきましょう。長方形の面積を計算しますが、エラーならば値が不正ですというようにしていきたいと思います。11月7日記事
~
~
目次
#contents
~
~
----
~
*privateとpublic
横の変数$widthと縦の変数$heightはクラスの中で値をチェックするために外から呼び出されないようにprivateにします。
また、外から呼び出される方はpublicにしておきます。
~
~
*コード
Rectangle.php
<?php
class Rectangle{
private $width;
private $height;
//プロパティ値を初期化
public function __construct(){
$this->width = "値が不正です。";
$this->height = "値が不正です。";
}
//widthプロパティのゲッターメソッド
public function getWidth(){
return $this->width;
}
//widthプロパティのセッターメソッド
public function setWidth($width){
if(is_numeric($width) && $width > 0){
$this->width = $width;
}
}
//heightプロパティのゲッターメソッド
public function getHeight(){
return $this->height;
}
//heightプロパティのセッターメソッド
public function setHeight($height){
if(is_numeric($height) && $height > 0){
$this->height = $height;
}
}
//計算
public function getArea(){
if($this->width === "値が不正です。"|| $this->height === "値が不正です。"){
return "値が不正です。";
}else{
return '面積は'.$this->getWidth() * $this->getHeight().'です。';
}
}
}
?>
index.php
<!DOCTYPE HTML>
<html>
<head>
<meta charset="utf-8">
<title>アクセサメソッド</title>
</head>
<body>
<?php
require ('../class/Rectangle.php');
$f = new Rectangle();
$f->setWidth(10);
$f->setHeight(-10);
print $f->getArea();
?>
</body>
</html>
~
~
*実行結果
どちらかを負の数や文字列にすると値は不正ですと出ます。
~
~
*まとめ
何を隠して、何を呼び出す準備しておけばいいのかというイメージがとても必要です。
~
~
以上