unity游戲開發-C#語言基礎篇( 面向對象基礎(二))


class Program : CarClass1 //子類:父類  冒號表示繼承;
    {
        static void Main(string[] args)
        {
            CarClass BugattiCar = new CarClass();
            BugattiCar.Name = "布加迪.威航";
            BugattiCar.Brand = "布加迪";
            BugattiCar.Speed = 350;
            BugattiCar.Colour = "red";
            BugattiCar.ShowMsg();


            CarClass ferrariCar = new CarClass();
            ferrariCar.Name = "法拉利.歐美亞";
            ferrariCar.Brand = "法拉利";
            ferrariCar.Speed = 300;
            ferrariCar.Colour = "yellow";
            ferrariCar.ShowMsg();
            Console.ReadKey();

            CarClass1 bujiadiCar = new CarClass1();
            bujiadiCar.Name = "布加迪.威航";
            bujiadiCar.Brand = "布加迪";
            bujiadiCar.Speed = 388;
            bujiadiCar.Colour = "Red";
            string Str = CarClass1.Insurance;//常量的值是不能改變的
            Console.WriteLine(CarClass1.Insurance);//直接打印
            Console.WriteLine(Str);
            bujiadiCar.Capactiy = 50;//注意類的設置;簡寫過程 set get 都要寫!
            bujiadiCar.ShowMsg();
            Console.WriteLine(bujiadiCar.Colour);
            Console.ReadKey();


            AnimalClass duck = new AnimalClass("鴨", 80, 90, "白色");
            duck.ShowMsg();


            //繼承
            Program myProgram = new Program();
            Console.WriteLine(myProgram.sex1);//獲取字段 protected 修飾符 只能通過子類的實例去獲取;

            FunctionClass fun = new FunctionClass();

            Console.WriteLine(fun.ShowTestFun("張三", 100));//調用方法,有返回值;
            Console.WriteLine(fun.ShowTestFun("李四", 88));


            fun.showTest(8888);//調用方法,沒有返回值

            fun.ShouTest1(bujiadiCar);


            MujiClass muji = new MujiClass("小小");
            GongjiClass gongji = new GongjiClass();

            gongji.chenJiao(muji);//傳參之前必須實例化

            Console.ReadKey();

        }
    }
  class AnimalClass
    {
        //--------字段--------
        private string Animalname;
        private int Animalweingth;
        private int Animalheigth;
        private string Aniamalcolour;

        //-----------屬性---------------

        public string Name
        {
            set { Animalname = value; }//set 設置值 Animalname=“鴨子”否則報錯
            get { return Animalname; }//get 獲取值 Animalname.Name 否則報錯;

        }
        public int Weigth
        {
            set { Animalweingth = value; }
            get { return Animalweingth; }

        }

        public int Heigth
        {
            set { Animalheigth = value; }
            get { return Animalheigth; }
        }

        public string Colour
        {
            set { Aniamalcolour = value; }
            get { return Aniamalcolour; }
        }
        //---------------------方法----------------

        public void Eatting()
        {

            Console.WriteLine("吃!");
        }

        public void Running()
        {
            Console.WriteLine("跑!");
        }

        public void Latting()
        {
            Console.WriteLine("拉翔!");
        }



        /// <summary>
        /// 打印到控制臺
        /// </summary>
        public void ShowMsg()
        {
            Console.WriteLine("動物名稱:{0} 重量:{1}g 高度:{2}cm 顏色:{3}", Animalname, Animalheigth, Animalweingth, Aniamalcolour);
            Console.WriteLine("具有以下能力:");
            Eatting();
            Running();
            Latting();
        }

        //------------------------構造函數-------------
        public AnimalClass(string _name, int _weigth, int _heigth, string _colour)
        {
            Animalname = _name;
            Animalheigth = _heigth;
            Animalweingth = _weigth;
            Aniamalcolour = _colour;

        }
    }
public class CarClass1//public 公開的類 不寫是只限當前程序集使用 internal
    {//類或結構的默認訪問類型是internal
        //類中所有的成員,默認均為private

        /// <summary>
        /// 汽車保險年限設置為常量
        /// </summary>
        public const string Insurance = "3年";//常量默認靜態的;必須初始化賦值;常量的值是不能改變的;
        //---------------字段---------------
        private string name;//名字

        private string brand;//品牌

        private string colour;//顏色

        private int speed;//速度

        //-----------構造函數----------------通過構造函數初始化相關值
        public CarClass(string _name, string _brand, int _speed) {

            this.name = _name;
            this.brand = _brand;
            this.speed = _speed;

        }


        //--------------屬性-------------------
        //name屬性
        public string Name
        {
            set { name = value; }
            get { return name; }

        }


        //品牌屬性
        public string Brand
        {
            set { brand = value; }
            get { return brand; }
        }

        //速度屬性
        public int Speed//上面是私有的,不賦值;現在是公開的;
        {
            set
            {
                if (value > 0 && value <= 500)
                {
                    speed = value;
                }
                else
                {
                    Console.WriteLine("超出范圍!");
                }
            }
            get { return speed * 2; }
        }

        //油箱容量L
        public int Capactiy { set; get; }//系統默認創建一個油箱容量字段

        public string Colour
        {
            set
            { colour = value; }
            get { return colour; }
        }

        //男女屬性
        public string Sex
        {
            set
            {
                if (Sex == "男" || Sex == "女")
                {
                    Sex = value;
                }
                else
                {
                    Console.WriteLine("輸入錯誤!");
                }
            }
            get { return Sex; }
        }

        //受保護屬性
        protected string sex1 = "女";

        //-------------------方法-----------------
        /// <summary>
        /// 跑
        /// </summary>
        private void Run()
        {
            Console.WriteLine("汽車開動了!");
        }
        /// <summary>
        /// 載人
        /// </summary>
        public void Manned()//注意private 和 public 的區別和應用范圍;私有的,公開的,
        {
            Console.WriteLine("可以載人!");
        }

        /// <summary>
        /// 屏幕顯示信息
        /// </summary>
        public void ShowMsg()
        {

            Console.WriteLine("汽車:{0} 品牌:{1} 顏色:{2} 速度:{3}km/h 油箱容量:{4}L", name, brand, colour, speed, Capactiy);
        }

    }
 class FunctionClass
    {
        public string ShowTestFun(string name, int money)
        {//有返回值的方法
            string str = "";
            str = name + "說今天星期四!";


            return str;

        }

        //沒有返回值的方法
        public void showTest(int money)
        {
            //方法體

            Console.WriteLine("我身上有" + money + "元!");
        }

        public void ShouTest1(CarClass1 car)
        {

            Console.WriteLine("我的汽車是:" + car.Name);
        }
    }
class GongjiClass
    {
        private string name = "小明";

        public const string tedian = "不能下蛋!";


        public string Name
        {
            set { name = value; }
            get { return name; }
        }


        public void chenJiao(MujiClass muji)
        {

            Console.WriteLine(name + "公雞晨叫:太陽曬屁股了!!!起床下蛋了!!!");

            muji.xiaDan();
        }

        private GongjiClass()
        { //私有的函數不能被實例化,只能被當前類使用

        }
    }

    class MujiClass
    {
        private string name = "小花";

        public string Name
        {
            set { name = value; }
            get { return name; }
        }

        public void xiaDan()
        {
            Console.WriteLine(name + "母雞下蛋了!");
        }
        public MujiClass()
        {//優先級最高,首先執行 構造函數;
            Console.WriteLine("正在實例化一個母雞");
        }

        public MujiClass(string muji)
        { //構造函數可以重名 只有兩個構造函數,只有傳參不傳參
            Console.WriteLine("正在實例化一個{0}母雞", muji);
        }
    }
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容