カプセル化とアクセス修飾子
プロパティとメソッドへのアクセスを保護、制御します
「カプセル化とアクセス修飾子」はCoddyKit上の無料PHP Academyレッスンです。 これはレッスン4/5です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはPHP Academy学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 PHP Academyコースには全5レッスンが含まれています。
カプセル化とアクセス修飾子
カプセル化とアクセス修飾子
カプセル化のレッスンへようこそ!このレッスンでは、カプセル化によってクラス内のデータを保護する方法と、アクセス修飾子によってクラスのプロパティやメソッドの可視性を制御する方法を学びます。それでは始めましょう!

カプセル化とは
カプセル化とは
カプセル化とは、データ(プロパティ)とそのデータを操作するメソッドをクラス内にまとめ、クラス外部からの直接アクセスを制限する手法です。
カプセル化の主な特徴:
- オブジェクトの内部状態を保護します。
- メソッドを使用して、クラスのプロパティへのアクセスを制御できます。
- データの整合性を維持しやすくなります。
ヒント:カプセル化は、安全でモジュール化されたアプリケーションを構築するための基本概念です。
PHPのアクセス修飾子
PHPのアクセス修飾子
アクセス修飾子は、クラスのプロパティやメソッドの可視性を定義します。PHPには、次の3つの可視性レベルがあります:
public:どこからでもアクセスできます。protected:クラス内およびその子クラスからのみアクセスできます。private:クラス自体の内部からのみアクセスできます。
重要:プロパティやメソッドへのアクセスと変更の方法を制御するには、アクセス修飾子を使用します。
<code>public</code>プロパティの使用
publicプロパティの使用
publicとして宣言されたプロパティは、どこからでもアクセスおよび変更できます。例:
ヒント:誰でもアクセスできるようにするプロパティやメソッドには、publicを使用します。
<?php
class Car {
public $make;
public $model;
public function drive() {
echo "The car is driving.";
}
}
$car = new Car();
$car->make = "Toyota";
$car->model = "Corolla";
echo "Make: " . $car->make . ", Model: " . $car->model;
$car->drive();
?>
<code>private</code>プロパティの使用
privateプロパティの使用
privateとして宣言されたプロパティには、クラス内からのみアクセスできます。例:
重要:外部からの変更を防ぐ必要があるプロパティには、privateを使用します。
<?php
class BankAccount {
private $balance;
public function __construct($initialBalance) {
$this->balance = $initialBalance;
}
public function getBalance() {
return $this->balance;
}
public function deposit($amount) {
$this->balance += $amount;
}
}
$account = new BankAccount(100);
$account->deposit(50);
echo "Balance: " . $account->getBalance(); // Outputs: Balance: 150
?>
<code>protected</code>プロパティの使用
protectedプロパティの使用
protectedとして宣言されたプロパティには、クラス内および子クラスからアクセスできます。例:
重要:子クラスから親クラスのプロパティやメソッドにアクセスできるようにするには、protectedを使用します。
<?php
class Vehicle {
protected $fuel;
public function setFuel($fuel) {
$this->fuel = $fuel;
}
}
class Car extends Vehicle {
public function getFuel() {
return $this->fuel;
}
}
$car = new Car();
$car->setFuel("Gasoline");
echo "Fuel: " . $car->getFuel(); // Outputs: Fuel: Gasoline
?>
ゲッターとセッター
ゲッターとセッター
カプセル化では、privateプロパティへのアクセスを制御するために、ゲッターメソッドとセッターメソッドを使用することがよくあります。例:
ヒント:プロパティを変更する前にデータを検証するには、セッターを使用します。
<?php
class User {
private $password;
public function setPassword($password) {
$this->password = $password;
}
public function getPassword() {
return $this->password;
}
}
$user = new User();
$user->setPassword("my_secure_password");
echo "Password: " . $user->getPassword();
?>
カプセル化の利点
カプセル化の利点
カプセル化には、次のような利点があります:
- オブジェクトの内部状態を保護します。
- プロパティの制御を一元化し、コードの保守性を向上させます。
- データが誤って変更されるのを防ぎます。
- 機密データへの直接アクセスを制限し、セキュリティを高めます。
重要:カプセル化は、安全でモジュール化されたOOPの基本原則です。
よくできました!
よくできました!
おめでとうございます!カプセル化と、アクセス修飾子によってクラスのプロパティやメソッドの可視性を制御する方法を学びました。次のレッスンでは、ポリモーフィズムと、それによってオブジェクトの振る舞いに柔軟性を持たせる方法について学びます。引き続きコーディングしましょう!

よくある質問
「カプセル化とアクセス修飾子」レッスンは無料ですか?
はい。「カプセル化とアクセス修飾子」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、PHP Academyコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 PHP Academyコースには全5レッスンが含まれています。
「カプセル化とアクセス修飾子」で何を学びますか?
プロパティとメソッドへのアクセスを保護、制御します ブラウザで直接実行するハンズオンコードでPHP Academyを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
PHP Academyを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのPHP Academyは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン4/5です。
「カプセル化とアクセス修飾子」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このPHP Academyレッスンでコードを書いて実行できますか?
はい。すべてのPHP Academyレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。
このコースのすべてのレッスン
- PHPでオブジェクト指向プログラミング入門
- クラスとオブジェクトを定義する
- 継承
- カプセル化とアクセス修飾子
- ポリモーフィズム