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.
mchsamples-.net-core/ex_016_001_getters_setters_.../Program.cs

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()}");
}
}
}