ボーアンドボン ウェルシュレディー ホースラディッシュ 175g×12個クーポン 配布中

連載

C#入門

第3回 クラスとオブジェクト

(株)ピーデー
川俣 晶
2001/04/21


クラスとインスタンス

 オブジェクト指向の概念のあるプログラム言語を使ってきた方々なら、この説明は不用だろう。読み飛ばしてしまっても構わないが、多少、C#でのオブジェクト指向の構文にも触れるので、斜め読みしていただくとベストである。

 さて、オブジェクト指向のなかでも、クラシックなオブジェクト指向と呼ばれるものは、文字どおりクラス(class)とオブジェクト(object)が存在するものである。C#もこの範疇に入る。クラスとは設計図として機能する定義であり、オブジェクトとは設計図に従って製造される製品と考えると分かりやすい。製造された製品はインスタンス(instance)と呼ばれる。例えば、時計の機能を持ったクラスがあり、それにwatchという名前が付いているとしよう。すると、実際に製造された時計は、クラスwatchのインスタンスと呼ばれる。奇異な用語に聞こえると思うが、意味は難しくないので、丸暗記してしまおう。

クラスとインスタンス
クラスは設計図であり、その設計図を基にして実際に生成された製品がインスタンスである。

 クラスとインスタンスの関係を見るために簡単なサンプル・ソースを見てみよう。以下は、名前(name)と年齢(age)の情報を含むPersonという極めてシンプルなクラスを作ってみた例である。

   1: class Person
   2: {
   3:   public string name;
   4:   public int age;
   5: }
シンプルなPersonクラスの例

 クラスを定義するには、classというキーワードに続き、クラスの名前を記述する。そして、その後の中括弧{}の内部がクラスの内容となる。stringは文字列型を示すデータ型、intは整数型を示すデータ型のキーワードである。それに続けて変数名を記述すると変数を宣言することができる。手前に付いているpublicは後で説明するが、ここではお約束だと思ってほしい。さて、クラスのなかでこのように変数宣言を行っても、実際の変数は作成されない。なぜならクラスとは設計図なので、これは「変数を作りなさい」という指示を書き込んだと見なされるからである。この変数が本当に作成されるのは、クラスのインスタンスが作られたときである。逆に言えば、ここではnameやageという変数は1個しか宣言していないが。インスタンスは何個でも作ることができるので、変数nameやageは、実際には何個も作られる場合もある。

 ここで疑問を持った人もいるだろう。インスタンスを作るというが、具体的にどう作ればよいのだろうか。メソッドのなかで、以下のように記述することはできる。

   1: void test()
   2: {
   3:   Person taro;
   4:   Console.WriteLine(taro.name);
   5: }
Personクラスのインスタンスを作成する(エラーになる例)

 これはtest( )というメソッドのなかで、上で宣言したPersonというクラスを利用した例である。だが、このプログラムはまったく機能しない。コンパイルする段階で、「未割り当ての変数taroにアクセスされました」というエラー・メッセージを食らうことになる。Visual BASICやJavaの経験があればピンと来るかもしれないが、“Person taro;”と書いて実際に行われるのは、Personクラスのインスタンスを参照する入れ物としての変数が用意されるだけで、Personクラスのインスタンスが実際に作られるわけではない。インスタンスを作るには、newキーワードを書き込む必要がある。

   1: void test()
   2: {
   3:   Person taro;
   4:   taro = new Person();
   5:   Console.WriteLine(taro.name);
   6: }
newキーワードを使用してPersonクラスのインスタンスを作成する

 3行目の段階では、変数は準備されるが、中身は空っぽである。4行目の段階で、クラスPersonのインスタンスがnewキーワードにより生成される。生成されたインスタンスは、そのままでは、ただ存在するだけでアクセスすることができない。そこで、空っぽであった変数taroに、インスタンスへの参照を代入(=)する。すると、変数taroを経由して、生成したインスタンスにアクセスすることが可能になる。5行目のConsole.WriteLineというメソッドの引数として指定している“taro.name”は、変数taroを通して、nameというクラス内の変数(メンバ変数)を参照するという意味の記述である。

クラスとインスタンス、インスタンスを格納する変数の関係
宣言されたPersonクラスからインスタンスを生成し、その結果を変数taroに代入する。

 もし、4行目がなければ、変数taroは空っぽであり、インスタンスも生成されていないので、エラーとなり実行は不可能である。

 ちなみに、このサンプルソースはそのままでは実行できない。なぜなら、変数nameに文字列を入れるコードが存在しないので、変数nameが空っぽのまま出力しようとしてエラーが起こる。これは以下のように変数に何か代入しておけば回避できる。

   1: static public void test()
   2: {
   3:   Person taro;
   4:   taro = new Person();
   5:   taro.name = "太郎";
   6:   taro.age = 20;
   7:   Console.WriteLine(taro.name);
   8: }
Personクラスのインスタンスであるtaroの変数nameに値を代入する

 繰り返し説明することになるが、5行目と6行目の代入は、3行目と4行目の間に移動させると機能しない。この時点で、入れ物としての変数taroは存在するが、インスタンスはまだ作られていないためだ。

 さて、変数nameや変数ageは1個しか定義していないのに、複数作られる可能性があると書いた。具体的に、どんな状況で複数作られるのだろうか。具体的な一例を以下に示す。

   1: static void test()
   2: {
   3:   Person taro;
   4:   Person hanako;
   5:   taro = new Person();
   6:   taro.name = "太郎";
   7:   taro.age = 20;
   8:   hanako = new Person();
   9:   hanako.name = "花子";
  10:   hanako.age = 17;
  11:   Console.WriteLine(taro.name);
  12:   Console.WriteLine(hanako.name);
  13: }
newを2回使用して、Personクラスの2つのインスタンスを作成する

 この例では、newが2回出現することから分かるとおり、2個のインスタンスを作っている。それぞれ、taroという変数とhanakoという変数に参照情報を格納しているが、taroとhanakoではまったく別個のインスタンスを参照しているので、同じ変数nameに値を代入しても、それぞれ別個のものとして扱われる。そのため、hanako.nameに代入したからといって、taro.nameの値が書き替わるわけではない。これを実行すると以下のような結果になる。

2つのインスタンスを生成するサンプル・プログラムの実行結果
taroとhanakoにそれぞれ独立したインスタンスを生成しているため、taro.nameとhanako.nameはまったく別のものとして扱われる。この結果、「太郎」、「花子」という別の文字列が表示された。

 なお、ここまでの解説はソースコードの一部分だけを抜粋して解説していたので、実際に実行できるソースコード(最初から最後まで)を以下に示す。メソッドtest( )にstaticが付いている理由は次の章で説明する。

   1: namespace ConsoleApplication4
   2: {
   3:   using System;
   4:
   5:   class Person
   6:   {
   7:     public string name;
   8:     public int age;
   9:   }
  10:
  11:   class Test
  12:   {
  13:     static void test()
  14:     {
  15:       Person taro;
  16:       Person hanako;
  17:       taro = new Person();
  18:       taro.name = "太郎";
  19:       taro.age = 20;
  20:       hanako = new Person();
  21:       hanako.name = "花子";
  22:       hanako.age = 17;
  23:       Console.WriteLine(taro.name);
  24:       Console.WriteLine(hanako.name);
  25:     }
  26:
  27:     public static int Main(string[] args)
  28:     {
  29:       Test.test();
  30:       return 0;
  31:     }
  32:
  33:   }
  34: }
Personクラスの2つのインスタンスを作成するプログラム(実行可能なコード)
 

 INDEX
 C#入門 第3回 クラスとオブジェクト
   1.オブジェクト指向とコンポーネント指向
  2.クラスとインスタンス
   3. staticの効力
 
「C#入門」


リファアクティブ ホワイト RF-AC1929B ReFa ACTIVE

BMzwwSIv2c

リファアクティブ ホワイト RF-AC1929B ReFa ACTIVE【0121】【】【SIB】

リファアクティブ ホワイト RF−AC1929B ReFa ACTIVE【0121】【】【SIB】:ネイルコレクション

リファアクティブ ホワイト RF-AC1929B ReFa ACTIVE

フレキシブルに圧・幅を変更して思い通りのローリング

顔はもちろん、首、二の腕、バスト、脇腹(ウエスト)ヒップ、レッグ、ふとももなど様々な部分のケアにお使いいただけます。
毎日のケアはもちろん、体を揺り起こす時のウォームアップや、丹念なトリートメントが必要なクールダウン時やハードワークのあとにも!

エステティックメソッド

● ボディを深くとらえるワイドフィット
ローラー間の幅をコントロールできるフレキシブルハンドルを開発。
スポーツトレーナーの卓越した手技を再現する、「ワイドフィット加圧」が可能に。
身体のどの部位にもフィットし、肌表面だけでなく筋肉まで、深くアプローチできます。
クールダウン時のボディケアや、忙しい毎日に耐え続ける身体を整えるための丁寧なケアがご自身でできます。

● フレキシブルハンドル
フレキシブルに圧・幅をチェンジして、思い通りのローリング、ボディへ。
コンディションに合わせ、ローリングの種類・強度を調整できる特殊構造。
眺めるだけで気持ちが高まる流線型のボディ!
機能性と美しさを兼ね備えたイノベーティブなデザインです。
12.6~40mmの間で、ローラー間の幅をコントロールできます。

● ダブルソーラーパネル
ハンドルの両側に2つのソーラーパネルを設置。
効率的に光を取り込み、微弱電流「マイクロカレント」を発生させます。

● ダブルドレナージュローラー
肌をつまみ上げながら、やさしく押し流す動きを可能にしました。
※ドレナージュとはエステティシャンの流れる動きを表したものであり、人体への効果効能を表現したものではありません。

● チタンコーティング
ローラーの表面を、高い耐食性で知られるチタンでコーティング。
傷がつきにくく、汗にも強いので、デイリーユースのツールにふさわしい素材です。

ReFaシリーズの美しくなる秘密 ~ 微弱電流「マイクロカレント」 ~

美しい肌を守るといわれている微弱な電流。 ReFaはソーラーパネルから光を取り込むことにより、 この電流に極めて近い微弱電流「マイクロカレント」を発生させています。
毎日、ローラーで肌表面をトリートメントしていくことで、 キメを整え、ハリとツヤのある引き締まった肌へ導きます。

ご注意事項

●次のような方は使用しないでください。
◎アレルギー体質、金属アレルギーのある方
◎皮膚病およびアトピー性皮膚炎の方、敏感肌の方
◎妊娠中の方や妊娠の可能性がある方、生理中の方
◎出血性疾患、血友病疾患などの血液異常の方
◎紫斑になりやすい方
◎意思表示の出来ない方、麻痺及び知覚障害の方
◎骨疾患の方
●アクセサリー類(ネックレス、ピアス等)は巻き込みの危険がありますので、ご使用時は外して下さい。
●髪を巻き込まないよう、束ねるか、ヘアバンドなどで固定してご使用下さい。
●また、短い髪の場合もクリップなどで固定して下さい。
●耳周りの髪は、特に巻き込みやすいのでご注意下さい。
●乾燥肌など、お肌が敏感な方は、保湿を行ってからご使用下さい。

運動後のボディケアに!リファアクティブ

ホワイト

32,000円(税別)

ブラック

32,000円(税別)

■キーワード:株式会社MTG,Refa,ACTIVE,リファ,カラット,アクティブ,ACTIVE,プラチナ電子ローラー,コロコロローラー,ゲルマローラー,マッサージローラー,マイクロカレント,ローラー,微弱電流,マイクロカレント,テレビ,TV,テレビCM,つまむ,つまみ上げ,電流,リフトアップ,アップ,アンチエイジング,肌,ハリ,たるみ,弛み,タルミ,豊麗線,ほうれい線,小顔整体,表情筋,指圧効果,マッサージ,フェイスライン,頬骨,リンパの流れ,発汗作用,相乗効果,クリスティアーノ,クリスチャーノ,ロナウド,ロナルド,小顔,運動,SMAP,SMAP×SMAP,スマスマ,テレビ,CM,話題,効果,使い方,ボール,丸,ソーラー,CM,ラッピング,プレゼント,ギフトボックス,ギフトBOX,ギフト,プチギフト,おもたせ,贈り物,お祝い,誕生日,バースデー,クリスマス,大人気,大評判,ネット通販,テレビ通販,TV通販,おしゃれ,お洒落,オシャレ,,SALE,セール,ワケあり,訳あり,ワケアリ,激安,大特価,ヒット商品,在庫限り,,正規品,正規販売店,正規輸入品,本物,韓国,KARA,CM,正規品,本物,MTG,MTG公式,Cristiano,Ronaldo,dos,Santos,Aveiro,広告塔,美魔女,MORE,an・an,anan,non-no,nonno,DRESS,Eclat,Marisol,precious,gold,Steady,anecan,ミセス,HERES,Inred,Lee,Very,mini,seda,20代,30代,40代,50代,60代,Domani,Gina,Glitter,美STORY,STORY,UP,SPRING,女性誌,掲載,

,

ブランド・メーカーMTG
カラー・デザインホワイト
品番RF-AC1929B
サイズ約103×171×66mm
素材ABS樹脂・アクリル・ステンレス・エラストマー・ナイロン・シリコン・チタン
重量約240g
仕様付属品:取扱説明書・保証書・ガイドブック・ポーチ・クリーンクロス
特長:つまみ流す、つかみ絞る
ローラー形状:ダブルドレナージュ※ローラー(440面体×2)
ローラーコーティング:チタン
ハンドル形状:フレキシブルハンドル
防水性:JIS 防水保護等級 IPX 7に準拠
適応使用部位:フェイス、ボディ
保証期間:お買い上げ日から1年間

※ドレナージュとはエステティシャンの流れる動きを表したものであり、人体への効果効能を表現したものではありません。
※スクラブ剤や硫黄成分配合の化粧水・クリームなどは併用しないでください。
※本品の性能向上の為、仕様の一部を予告無く変更する場合がございます。
※本品は、日本国内にて企画、開発、設計、最終組み立て、検査を行い、一部の部品調達および部品組み立てを海外の工場で行っています。
生産国日本製(Made in Japan)
備考●次のような方は使用しないでください。
◎アレルギー体質、金属アレルギーのある方
◎皮膚病およびアトピー性皮膚炎の方、敏感肌の方
◎妊娠中の方や妊娠の可能性がある方、生理中の方
◎出血性疾患、血友病疾患などの血液異常の方
◎紫斑になりやすい方
◎意思表示の出来ない方、麻痺及び知覚障害の方
◎骨疾患の方
●アクセサリー類(ネックレス、ピアス等)は巻き込みの危険がありますので、ご使用時は外して下さい。
●髪を巻き込まないよう、束ねるか、ヘアバンドなどで固定してご使用下さい。
●また、短い髪の場合もクリップなどで固定して下さい。
●耳周りの髪は、特に巻き込みやすいのでご注意下さい。
●乾燥肌など、お肌が敏感な方は、保湿を行ってからご使用下さい。

注意事項※実際の商品の色になるべく近いかたちで掲載しておりますが、モニターの違いなどで実際の商品と色味が異なる場合がございます。予めご了承ください。
※複数店舗を運営しておりますため、ご注文の入れ違い等で欠品などになってしまう場合がございます。万が一、発送が遅れる場合は、ご注文受付当日中にご案内差し上げます。誠に恐れ入りますがご了承くださいますよう、お願い申し上げます。
広告文責エルスタイル(株) 092-725-1208

アヴェダ aveda インヴァティ アドバンス ヘアデンス コンディショナー 【1000ml】,セルソアン EGケアジェル(200g)()【送料無料】,【送料無料】 聖牛のジャルダーラ(水差し) 中 / ナンディン 聖水 礼拝 インド ランプ お香立て インセンス アジア エスニック,【クーポンで最大2000円OFF&ポイントMAX27倍!】 ディプティック アールデュソワン プレシャスオイルズ 125ml,【アウトレット品】ラックス ストレート&ビューティー シャンプー ポンプ 240gを10個・コンディショナー ポンプ 240gを10個のセット,【クリスチャン ディオール】 ディオール オム ダーモシステム アフターシェーブ ローション 100ml 【化粧品・コスメ:男性用化粧品:シェービング:アフターケア】【CHRISTIAN DIOR DIOR HOMME DERMO SYSTEM AFTER SHAVE LOTION】,イオンドクター柿染レッグウォーマー(うぐいす) 送料無料,トムフォード TOM FORD ソレイユネージュ EDP 50ml,【送料無料】モロッカンオイル スムージング コンディショナー 1000ml 業務用【MOROCCANOIL モロッカンオイル】国内正規,【定形外送料無料】資生堂 クレ・ド・ポー ボーテ ローションイドロAn レフィル 170ml リニューアル発売 -CLE DE PEAU BEAUTE-【定形外対象】8月21日発売,資生堂 リバイタル ローションEX I,クラシエ クリエステ クリアミルキィエッセンス (550ml詰替用)×6本セット,ディプティック テュベルーズ(月下香) キャンドル 190g DIPTYQUE TUBEREUSE CANDLE[0536],【送料込・まとめ買い×12個セット】SHO-BI デコラティブネイル オイルトップコ-ト クリア TN81117 9ml 1個,1/10は最大8倍!カード&エントリー要♪エスティローダーリニュートリィブアルティメイトリフト AC クリーム リッチ 50ml(0027131781738),高田ベッド製作所 フットマッサージHogushi TB-1347 24-7512-00,【3000円offクーポン(要獲得) 1/28 9:59まで】 【送料無料】 ベルベット スブリーム EDP・SP 50ml 【ドルチェ&ガッバーナ】【香水 フレグランス】【レディース・女性用】【ドルチェ&ガッバーナ 】【DOLCE&GABBANA VELVET SUBLIME EAU DE PARFUM SPRAY】,ベアミネラル ベアプロ リキッド ファンデーション ウォーム ナチュラル 12,♪ #02【GIORGIO ARMANI BEAUTY】ジョルジオ アルマーニ ビューティクレマ ヌーダ #02 50ml<グロークリーム><エイジングケア><ベースメイク><コントロールカラー>,九谷焼 K3-1623 3.5号香炉 川せみ 古田弘毅 サイズ 径10.0cm × 高11.5cm,エルメティカ アンバービー オードパルファン 50ml【Hermetica Amberbee EDP 50ml】,マリコール Mary Cohr エージ サインズ リペア イントラ-リペア セラム 25ml/0.84oz【海外直送】,ラブルケットハンドケア 241 ハイドレーティングハンドクレンザーフェンネルシードラベンダーブラックペッパー1000mL,スパトリートメント ユーフォリアオイル/業務用 (500ml)美容オイル ボディ トリートメント マッサージ 多幸感 オーガニック ラベンダー ストレス リラックス プロ使用 ヒーリング,【先着順!クーポン対象】アジュバン リ:プラチナム トリートメント M 700g 詰替用|アジュバンre: re: リ: リ リ:トリートメント re:トリートメント reトリートメント re:プラチナム reプラチナム プラチナム プラチナムトリートメント 詰替え用,【脱毛パッド】ラブケア (Love Care) 脱毛パッドセット (パッド・シート2枚・専用ポーチ1個)×150個セット - クルクルするだけでツルツル!【smtb-s】,【ジバンシイ】 グラマ― オン ザ ゴ― 3ステップ メイクアップパレット 【化粧品・コスメ:メイクアップ:セット】【GIVENCHY GLAMOUR ON THE GO 3-STEP MAKEUP PALETTE】,【ゲラン】 アベイユ ロイヤル クリーム 50ml 【化粧品・コスメ:スキンケア:クリーム】【アベイユ ロイヤル】【GUERLAIN ABEILLE ROYALE DAY CREAM】,【ふるさと納税】朝倉のハーブ園 ハーブセット B-4【1032787】,プリマニアックス 鬼滅の刃 フレグランス第2弾 01胡蝶しのぶ,ルネ フルトレール トリファジック プログレッシブ アンチシュート 5.5ml×8本 / RENE FURTERER 【コスメ】,希香泉 6個セット,《クーポン配布中》 島田流 温巡かっさ プロイデア 美顔器 温熱 振動 イオン導入 カッサプレート カッサ かっさプレート かっさマッサージ トータルケアかっさ 島田流かっさ エステ サロン 自宅 プレゼント 送料無料,【3000円offクーポン(要獲得) 1/28 9:59まで】 【送料無料】 卓上 バルブ アトマイザー ドイツ製 手作り クリスタルガラス 香水瓶 390992 (ハンドメイドBKBL) 180ml 【ヒロセ アトマイザー】【香水 フレグランス】【】【クリスタルアトマイザ 】【HIROSE ATOMIZER】,喜筆 KIHITSU 熊野筆 サッカーボールブラシ×同色5個セット ブラック・SB-BK-1-5,ジバンシイ アンクルアンテルディ No06 ラディカルレッド,ポイント10倍★9-11日20時~4H限定!ミキモト化粧品 リンクル アドバンスト クリーム 20g 【医薬部外品】,【当店は3980円以上で送料無料】COCOROMAKE 音波振動洗顔ブラシブルー MS-CM02B 3個セット,新商品【 全国送料無料 1000ml ( 1L ) 】 ゴールデンホホバオイル / 未精製ホホバオイル / スキンケア / ヘアケア / 頭皮ケア / ボディケア / 天然100% / 無添加 / 安心の国内産 / YASUKE,【送料無料】KANEBO カネボウ ザ ローション 150ml [化粧水]:【宅急便対応】 再入荷12,【240個で送料込】メンソレータム リップベビー クレヨン ドラマティックレッド 3g  ( 化粧品・リップクリーム ) ×240点セット ( 4987241143641 ),ReFa(リファ) ReFa CARAT RAY FACE,●最大3,600円OFFクーポン●SK-II SK2 フェイシャル トリートメント エッセンス ブルー KARAN リミテッド エディション 230ml【宅配便送料無料】,【営業日14時までの注文で当日出荷!】コタ セラスパ スキャルプローション 480ml  COTA 税込3,980円以上御買上で送料無料!,エスティローダー パーフェクショニスト プロ ブライト セラム 56ml,■セット■サンコール R-21 シャンプー EX エクストラ 700ml 詰め替え 詰替用 & トリートメント 700g /EXTRA/R21/SUNCALL/美容室 サロン専売品 美容院 ヘアケア おすすめ品,【VENUS COSME】VENUS MAGIC ヘアカラーHチャート,ドゥラメール ザ・コンセントレート 50ml,ローション ローションパック セット 佐伯式ローションパックセット 佐伯チズ チズアンゼルスローション+コットン2箱 佐伯チズオリジナルコスメ アルコールフリー お得セット,《限定クーポン配布!18日9:59迄》ラボラトリオ・オルファティーボ アロマディフューザー LABORATORIO OLFATTIVO リフィル 500ml 雑貨 おしゃれ 可愛い ブランド ギフト フレグランス アロマ 香り インテリア リード式 ワイン イタリア ホワイト 白 レッド 赤 ワイン クリア,C-329 収納ワゴン クリア 取り寄せ商品A,【MENARD】イルネージュ クリーム 内容量:30g【メナード】,Bランク【FALCO ファルコシザー】 シザー ハサミ鋏 はさみ 美容師・理容師 6.8インチ 右利き :H-448,【月間優良ショップ受賞】Guinot Newhite Brightening Mask ギノー マスク ニューワイト 7sheets 【海外直送】,Milano Collection(ミラノコレクション) ミラノコレクション フェースアップパウダー2021 24g,【10個セット】コスメプラウド COSMEPROUD ゴールドリバイタライザー 30ml,YAMAN 美顔器 RFボーテ フォトプラスEX シャンパンゴールド ラジオ波 EMS LED 毛穴 たるみ 多機能 目元ケア HRF20N,セフィーヌ ナノミック ザ・クリームLX 30g

Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)
- PR -

注目のテーマ

Insider.NET 記事ランキング

本日 月間
ソリューションFLASH