C#のカプセル化とは?アクセス指定子を使った実装方法を解説
カプセル化(Encapsulation)は、オブジェクト指向プログラミングにおける重要な概念の一つです。C#においてカプセル化とは、クラスの内部実装の詳細を外部から隠蔽し、意図しないアクセスや変更を防ぐことを指します。
C#では、アクセス指定子を使用することでカプセル化を実現できます。アクセス指定子を適切に設定することで、クラスのメンバー変数やメソッドへのアクセス範囲を細かく制御することが可能です。
C#で利用できる主なアクセス指定子
- public … すべてのコードからアクセス可能
- private … 同じクラス内からのみアクセス可能
- protected … 同じクラスおよび派生クラスからアクセス可能
- internal … 同じアセンブリ内からアクセス可能
- protected internal … 同じアセンブリ内、または派生クラスからアクセス可能
privateによるカプセル化の例
カプセル化の仕組みは、privateアクセス指定子の例で理解しやすくなります。privateを指定したメンバー変数やメソッドは、他のクラスや関数、オブジェクトから隠され、外部から直接アクセスすることができなくなります。
以下の例では、長さ(length)と幅(width)という変数に対してprivateアクセス指定子を設定しています。これにより、これらの変数はRectangleクラスの外部から直接操作できず、クラスが提供する公開メソッドを通じてのみ値の設定や参照が行われます。
サンプルコード
using System;
namespace RectangleApplication {
class Rectangle {
private double length;
private double width;
public void Acceptdetails() {
length = 10;
width = 15;
}
public double GetArea() {
return length * width;
}
public void Display() {
Console.WriteLine("Length: {0}", length);
Console.WriteLine("Width: {0}", width);
Console.WriteLine("Area: {0}", GetArea());
}
}
class ExecuteRectangle {
static void Main(string[] args) {
Rectangle r = new Rectangle();
r.Acceptdetails();
r.Display();
Console.ReadLine();
}
}
}実行結果
Length: 10 Width: 15 Area: 150
このように、メンバー変数をprivateにし、値の操作をpublicメソッド経由に限定することで、データの整合性を保ちながら安全なクラス設計を行うことができます。これがC#におけるカプセル化の基本的な考え方です。
-
JavaScriptの配列lengthプロパティとは?使い方とサンプルコードを解説
JavaScriptのlengthプロパティは、配列に格納されている要素の総数(配列の長さ)を取得したり、設定したりできる便利なプロパティです。配列操作において最もよく使われるプロパティの一つであり、ループ処理や条件分岐など、さまざまな場面で活用されます。 lengthプロパティの基本 lengthプロパティは、以下のような特徴を持っています。 配列内の要素数を数値として返す 値を代入することで配列の長さを変更できる(短くすると要素が削除される) インデックスは0から始まるため、最後の要素のインデックスは「length - 1」になる サンプルコード 以下は、lengthプロパティを使って
-
JavaScriptのlengthプロパティで配列オブジェクトの長さを取得する方法
JavaScriptにおけるlengthプロパティとはJavaScriptのlengthプロパティは、文字列や配列などのオブジェクトが持つ要素数(サイズ)を返すために使用されます。配列の場合は格納されている要素の個数、文字列の場合は文字数を取得できます。ここでは、文字列と配列オブジェクトの長さをlengthプロパティで取得するサンプルコードを紹介します。サンプルコード以下の例では、ボタンをクリックすると配列の長さが画面に表示される仕組みを実装しています。<!DOCTYPE html> <html lang="ja"> <head> <