You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
118 lines
3.6 KiB
118 lines
3.6 KiB
// ========================================================================
|
|
//
|
|
// Copyright (C) 2016-2017 MARC CHEVALDONNE
|
|
// marc.chevaldonne.free.fr
|
|
//
|
|
// Module : Program.cs
|
|
// Author : Marc Chevaldonné
|
|
// Creation date : 2016-09-24
|
|
//
|
|
// ========================================================================
|
|
|
|
using System;
|
|
using static System.Console;
|
|
|
|
namespace ex_016_001_getters_setters_methods
|
|
{
|
|
class Nounours
|
|
{
|
|
//un getter permet de lire un champ privé
|
|
public string GetNom()
|
|
{
|
|
return mNom;
|
|
}
|
|
|
|
//un setter permet de modifier un champ privé
|
|
public void SetNom(string value)
|
|
{
|
|
mNom = value;
|
|
}
|
|
private string mNom;
|
|
|
|
//on peut ainsi, protéger nos champs privés de différentes manières
|
|
public int GetTaille()
|
|
{
|
|
return mTaille;
|
|
}
|
|
public void SetTaille(int value)
|
|
{
|
|
if (value > 0)
|
|
{
|
|
mTaille = value;
|
|
}
|
|
}
|
|
private int mTaille;
|
|
|
|
public int GetPoils()
|
|
{
|
|
return mPoils;
|
|
}
|
|
private void SetPoils(int value)
|
|
{
|
|
if (value >= 0)
|
|
{
|
|
mPoils = value;
|
|
}
|
|
}
|
|
private int mPoils;
|
|
|
|
//on peut aussi avoir un getter uniquement et transformer ainsi le champ en lecture seule
|
|
//ou un setter privé comme pour mPoils
|
|
public DateTime GetDateDeNaissance()
|
|
{
|
|
return mDateDeNaissance;
|
|
}
|
|
private DateTime mDateDeNaissance;
|
|
|
|
//ou en écriture seule...
|
|
|
|
//un getter n'est pas forcément lié à un membre, mais peut simuler la lecture d'un membre qui est alors calculé à la volée
|
|
public float GetPoilsParCm()
|
|
{
|
|
return (float)mPoils / (float)mTaille;
|
|
}
|
|
|
|
//on utilise les setters pour initialiser les membres
|
|
public Nounours(string nom, int taille, DateTime naissance, int poils)
|
|
{
|
|
SetNom(nom);
|
|
SetTaille(taille);
|
|
mDateDeNaissance = naissance;
|
|
SetPoils(poils);
|
|
}
|
|
|
|
//getter et setter statiques
|
|
public static string GetDéfinition()
|
|
{
|
|
return mDéfinition;
|
|
}
|
|
public static void SetDéfinition(string value)
|
|
{
|
|
mDéfinition = value;
|
|
}
|
|
private static string mDéfinition = "Mot enfantin pour désigner un ours en peluche";
|
|
}
|
|
|
|
class Program
|
|
{
|
|
static void Main(string[] args)
|
|
{
|
|
OutputEncoding = System.Text.Encoding.UTF8;
|
|
|
|
//utilisation des getters et setters
|
|
Nounours nounours = new Nounours("ours", 42, DateTime.Today, 30000);
|
|
WriteLine("Nounours nounours = new Nounours(\"ours\", 42, DateTime.Today, 30000);");
|
|
WriteLine($"Nom : {nounours.GetNom()}");
|
|
WriteLine($"Poils : {nounours.GetPoils()}");
|
|
WriteLine($"Taille : {nounours.GetTaille()}");
|
|
WriteLine($"Date de naissance : {nounours.GetDateDeNaissance()}");
|
|
WriteLine($"Poils par cm : {nounours.GetPoilsParCm()}");
|
|
WriteLine("nounours.SetTaille(41);");
|
|
nounours.SetTaille(41);
|
|
WriteLine($"Taille : {nounours.GetTaille()}");
|
|
WriteLine($"Poils par cm : {nounours.GetPoilsParCm()}");
|
|
WriteLine($"Définition : {Nounours.GetDéfinition()}");
|
|
}
|
|
}
|
|
}
|