Skip to main content

Properties

Definition :

A property is a class member that provides a flexible mechanism to read, write, or compute the value of a private field. Properties encapsulate private data while exposing controlled access through getters and setters.

Properties help implement encapsulation by allowing controlled access to internal data.


C++

Note: C++ does not have built-in properties like C# or some other languages. Instead, getter and setter methods are used to control access to private data members, simulating properties.


Syntax (Using Getter and Setter methods)**

class ClassName {
private:
int data;

public:
// Setter
void setData(int value) {
data = value;
}

// Getter
int getData() {
return data;
}
};

Example

#include <iostream>
using namespace std;

class Account {
private:
double balance;

public:
// Setter method (simulating a property)
void setBalance(double amount) {
if (amount >= 0)
balance = amount;
else
cout << "Invalid balance amount." << endl;
}

// Getter method
double getBalance() {
return balance;
}
};

int main() {
Account acc;
acc.setBalance(1000.50);
cout << "Balance: " << acc.getBalance() << endl;

acc.setBalance(-500); // Invalid

return 0;
}

C#

Syntax(Uses built-in get/set keywords)

class className {
private string name;

public string Name {
get { return name; }
set { name = value; }
}
}

Example

class Person {
private string name;

public string Name {
get { return name; }
set { name = value; }
}

public void displayName() {
Console.WriteLine("Name: " + Name);
}
}

class Program {
static void Main() {
Person p = new Person();
p.Name = "Alice"; // using property setter
p.displayName(); // using property getter inside method
}
}


Java

Syntax(Uses explicit getter/setter methods)

class className {
private String name;

public String getName() {
return name;
}

public void setName(String value) {
name = value;
}
}

Example

public class Person {
private String name;

public String getName() { // getter
return name;
}

public void setName(String name) { // setter
this.name = name;
}

public void displayName() {
System.out.println("Name: " + getName());
}

public static void main(String[] args) {
Person p = new Person();
p.setName("Alice"); // using setter
p.displayName(); // using getter inside method
}
}

Python

Syntax(Uses @property decorator)

class className:
def __init__(self):
self._name = ""

@property
def name(self):
return self._name

@name.setter
def name(self, value):
self._name = value

Example

class Person:
def __init__(self):
self._name = ""

@property
def name(self): # getter
return self._name

@name.setter
def name(self, value): # setter
self._name = value

def display_name(self):
print("Name:", self.name)

p = Person()
p.name = "Alice" # using setter
p.display_name() # using getter

JavaScript

Syntax(Uses get/set in class definition)

class className {
constructor() {
this._name = "";
}

get name() {
return this._name;
}

set name(value) {
this._name = value;
}
}

Example

class Person {
constructor() {
this._name = "";
}

get name() { // getter
return this._name;
}

set name(value) { // setter
this._name = value;
}

displayName() {
console.log("Name:", this.name); // using getter
}
}

const p = new Person();
p.name = "Alice"; // using setter
p.displayName(); // using getter

TypeScript

Note: TypeScript supports getter and setter methods using the get and set keywords, which allow safe and controlled access to class properties—similar to C# and more elegant than C++.


Syntax (Using Getter and Setter methods)

class ClassName {
private _data: number;

// Setter
set data(value: number) {
this._data = value;
}

// Getter
get data(): number {
return this._data;
}
}

Example

class Account {
private _balance: number = 0;

// Setter method (simulating a property)
set balance(amount: number) {
if (amount >= 0) {
this._balance = amount;
} else {
console.log("Invalid balance amount.");
}
}

// Getter method
get balance(): number {
return this._balance;
}
}

const acc = new Account();
acc.balance = 1000.50; // Setter called
console.log("Balance: " + acc.balance); // Getter called

acc.balance = -500; // Invalid

Back to top