プロパティ （） はオブジェクト指向プログラミング言語において、フィールドの操作と同じ構文でアクセッサーを定義するための言語機能および構文の一種である。
概要.
構文例.
type
 public
 // プロパティの定義例
 // メソッドとして実装したプロパティ
 // 読み取り専用にしたプロパティ
 // 書き込み専用にしたプロパティ
 // フィールドの読み書きに特化したプロパティ
 // (派生型で再定義しなければほぼフィールドと同じ)
 // プロパティの使用例
 // 参考：フィールドの直接操作
フィールドのプロパティ化.
■フィールド直接操作による問題の具体例(Object Pascal)
// フィールドを直接操作する汎用関数の例
// 呼び出し側
// アクセッサー経由で操作する汎用関数の例
 // 例示用であり現実的に意味のある処理ではない。
// 呼び出し側
// どちらも構文エラーとならない。
反面プロパティを持つ言語においてはソースコード互換の範囲ではあるがフィールドからアクセッサーへの変更が極めて容易となる。下記の例では、フィールドとして公開していたValueを削除してプロパティであるValueに置換しているが、プロパティがフィールドと互換性を持つためフィールドを操作していた箇所には一切変更が発生しない。これによりプロパティが存在する言語ではとりあえずはフィールドを公開しておき必要なってきたらプロパティに変更していくという運用が可能になっている。
■プロパティ化(Object Pascal)
type
 // Valueをプロパティ化
 // 追加
 public
 // 削除
 // 追加
 // プロパティ化しても一切変更は必要ない
その他言語の例.
明示的なバッキングフィールドを持つプロパティ.
 /// バッキングフィールド
 /// nameをカプセル化するプロパティ
 set {
呼び出し側では、フィールドにアクセスするような構文でプロパティの機能を呼び出す。
 // set アクセス
 // get アクセス
自動実装プロパティ.
自動実装プロパティでは、バッキングフィールドが内部的に自動生成される。
プログラマは自動生成されたバッキングフィールドには直接アクセスすることはできない。