Board logo

標題: [9-8]static關鍵字 [打印本頁]

作者: 李泳霖    時間: 2024-1-12 20:38     標題: [9-8]static關鍵字

static 屬性為屬於class本身的,利用static物件來記錄總共創建了幾個video物件

[attach]17332[/attach]
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Threading.Tasks;

  6. namespace ConsoleApp1
  7. {
  8.     class Video
  9.     {
  10.         public string title;
  11.         public string author;
  12.         //影片類型有四種:教育、娛樂、音樂、其他
  13.         //public string type;//類型,限制屬性存取
  14.         private string type;
  15.         //static 屬性為屬於class本身的
  16.         //例如:表總共幾個video物件
  17.         public static int video_count = 0;

  18.         public Video(string title, string author, string type)
  19.         {
  20.             this.title = title;
  21.             this.author = author;
  22.             Type = type;
  23.             video_count++;
  24.         }
  25.         //Type為type的對外代理人,想要在Video以外的類別存取,就需要透過Type
  26.         public string Type
  27.         {
  28.             get//取得影片類型
  29.             {
  30.                 return type;
  31.             }
  32.             set//限制只能有四種類型
  33.             {//value為設定的值
  34.                 if (value == "教育" || value == "娛樂" || value == "音樂" || value == "其它")
  35.                 {
  36.                     type = value;
  37.                 }
  38.                 else//若不再以上四種,強制改為其它
  39.                 {
  40.                     type = "其它";
  41.                 }
  42.             }
  43.         }
  44.     }
  45. }
複製代碼
  1. using ConsoleApp1;
  2. using System;
  3. using System.Linq.Expressions;

  4. class Program
  5. {
  6.    
  7.     static void Main()
  8.     {
  9.         string v1, a1, t1;
  10.         Console.Write("請輸入影片名稱:");
  11.         v1 = System.Console.ReadLine();
  12.         Console.Write("請輸入作者:");
  13.         a1 = System.Console.ReadLine();
  14.         Console.Write("請輸入影片類型(教育、娛樂、音樂、其它): ");//需控制亂輸入
  15.         t1 = System.Console.ReadLine();
  16.         Video video1 = new Video(v1, a1, t1);
  17.         Console.WriteLine("==========================================");
  18.         Console.WriteLine("影片名稱為:" + video1.title);
  19.         Console.WriteLine("影片作者為:" + video1.author);
  20.         //Console.WriteLine("影片類型為:" + video1.type);//出錯,type為private
  21.         Console.WriteLine("影片類型為:" + video1.Type);

  22.         //Video video2 = new Video("獅子王", " 羅伯‧民可夫", "娛樂");
  23.         // Console.WriteLine(video1.Type);//不合理不可存取
  24.         Console.WriteLine("總共" + Video.video_count + "個物件");

  25.     }
  26. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2