アクセサー④
ども!こんばんは!
お久しぶりです。
クローバーフィールドの伊関です。
今日は七夕でございます。
例年この日はいつも梅雨真っ盛りで、天の川どころか織姫と彦星が欠片も会えない年が続いておりましたが、
今日はなんだかんだ晴れたせいもあり、ひょっとしたら会えたかもしれませんね。
とか、ちょっとロマンチなことを言ってみました。
久々のブログですが、決して勉強していなかったわけではありません!
ちょっとだけ休憩もしてましたけど・・・。
ということで今日も”アクセサー”の続きです。
プロパティは、使用する側からはフィールドのように見えますが、クラスを実装する側ではメソッドのように振る舞います。
・プロパティをとおしてのフィールドデータのやりとり
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | class Program { static void Main(string[]args) { Television tv=new Television(); Console.WriteLine("10チャンネルを設定します"); tv.Channel=10; Console.WriteLine("TVは{0)チャンネルです。",tv.Channel); class Television { : private int channel; //フィールド : public int Channel //プロパティ { get{return channel;} ←getアクセサーでchannelを返す↑ set { if(value>=channelMin&&value<=channelMax) channel=value; ↑setアクセサーでchannelに10を代入する← |
なお、getアクセサーとsetアクセサーには異なるアクセスレベルを指定でき、setの前にprivateを書くと、外からセットできないフィールドになります。
setを実装せずに読み取り専用のプロパティにすることもできます。テレビの電源と音量は外部から直接指定する必要はないので、TelevisionクラスのPowerとVolumeは次のように読み取り専用のプロパティに書き換えてください。
さて、続きは次回に回したいと思います。
今回は5日ほど空いてしまいましたが、またコンスタントにつらつら上げていきたいと思いますので、懲りずにまた見てやってくださいまし。
では。