Sì, questo risolve il tuo scopo ma la storia è diversa.
I campi con getter e setter sono noti come proprietà. Se non si impostano in modo esplicito getter e setter, si tratta di variabili membro o semplicemente variabili.
Quindi dì, se codi questo ...
public int a { get; set; }
private int b { get; set; }
Questi sono conosciuti come proprietà.
Oppure, queste sono note come variabili membro.
public int a;
private int b;
Inoltre, fa la stessa cosa e puoi eseguire l'assegnazione e il recupero come di seguito in entrambi i casi (a condizione che tu non stia infrangendo la logica dei modificatori di accesso).
a = 1;
b = 2;
int c = a;
int d = b;
Quindi, questo non ha nulla a che fare con l'approccio. È possibile ottenere questo con entrambi l'approccio.
Entrambi gli approcci non hanno nulla a che fare con il pubblico o il privato. Sono noti come modificatori di accesso. È possibile accedere a proprietà / variabili pubbliche da qualsiasi luogo, mentre le proprietà / variabili private sono accessibili solo all'interno del blocco definito.
Bene, allora perché sono state introdotte proprietà? Come si usa? La risposta è che sono stati introdotti per implementare l'incapsulamento.
Diciamo che hai
private int _unitprice;
private int _quantity;
public int UnitPrice
{
get
{
return _unitprice;
}
set
{
if(value > 0) _unitprice = value
}
}
public int Quantity
{
get
{
return _quantity;
}
set
{
if(value > 0) _quantity = value
}
}
public int Total
{
get
{
return _unitprice * _quantity;
}
}
Supponiamo che non si desideri che gli utenti accedano direttamente ai membri privati _unitprice e _quantity, ma accedano tramite proprietà pubbliche con / senza convalida. Ho fatto alcune convalide nell'esempio sopra, ma non è obbligatorio.
E alcune altre proprietà come Quantità che non esiste dicono in tabella, ma abbiamo fornito in Business Class per fornire all'utente funzionalità e semplicità.
Inoltre, potresti notare che Total ha solo ottenuto e nessun set. Quindi puoi anche limitare l'assegnazione o il recupero usando getter e setter.
Spero che questo aiuti:)