c#【方法】--烏雲後依然是燦爛的晴天

方法

1.把可以重複執行完成某一件事情的代碼寫成一個方法,可以減少代碼的冗餘量。函數就是專門做事情,我們提供一些數據,執行完以後給我們執行結果,提供的數據叫參數,返回的執行結果叫返回值。像ATM機,用來取錢,提供取錢的金額就是參數,金錢取出成功就是返回值。
2.方法也可以叫函數,每一個程序只能有一個主方法(主函數),但是可以有多個方法
3.方法使用需要先定義

方法的定義

[訪問修飾符] static 返回值(的類型) 方法名([參數列表]{
         方法體
}

1.訪問修飾符:可以限制這個方法的可見性
2.返回類型:兩種情況(函數可以有返回值,也可以沒有返回值)
(1).函數沒有返回值:用void代表這個方法不需要返回值,方法體頁不需要寫return語句,寫return語句也不會報錯。
(2).函數有返回值:像上述代碼一樣,方法體中一定要寫return語句,否則會報錯。return可以立即退出方法。
3.方法名:首字母需要大寫,方法名開頭大寫,參數名開頭小寫,參數名、變量名要有意義
4.參數列表:用圓括號括起來,一個方法可以有參數,也可以沒有參數,可以有一個參數,也可以有多個參數,參數頁可以是一個數組。

//1.第一種:此方法最簡單的方法無參數無返回值
public static void Show()       //此方法是無返回值,無參數的方法
{		
    Console.WriteLine("啦啦啦,我是快樂的小畫家");
}
 
//2.第二種:有參數,有返回值,上面的判斷輸入內容是否爲字符串就屬於這種
public static int IsNumber(string strNumber)
{
    
}
 
//3.第三種:無參數,有返回值
string str=Console.ReadLine();   //無參數,有返回值
 
//4.第四種:無返回值
Console.WriteLine();            //無返回值,參數可有可無

方法的調用

對於靜態方法,調用有兩種方式
1.如果在同一個類中,直接寫名字調用就可以了
2.或者類名.方法名();

方法的重載

方法重載是指方法名相同,單參數的數據類型,個數或順序不同的方法。方法重載和返回值無關

方法的重寫

方法的重寫和方法的重載不一樣,方法的重寫是在子類繼承父類的時候,重寫父類中方的方法
父類:動物
子類:貓狗牛
有共同的方法叫,但是不能直接在父類中直接定義出叫聲,因爲子類狗的方法的汪汪,子類牛的方法是哞哞,這時候就可以將父類的方法重寫。
重寫父類的方法,在父類的方法中加virtual關鍵字,將方法定義爲多態,有virtual關鍵字修飾的爲“虛方法”在子類中加上override關鍵字。
在這裏插入圖片描述

			Animal[]animal = new Animal[5];
            Random r = new Random();
            for (int i = 0; i < animal.Length ; i++)
            {
                int num = r.Next(1, 6);
                switch (num)
                {
                    case 1:animal[i] = new Pig("小豬");break;
                    case 2: animal[i] = new Dog("小狗"); break;
                    case 3: animal[i] = new Cow("小牛"); break;
                    case 4: animal[i] = new Cat("小貓"); break;
                    
                }
            }
            for (int i = 0; i < animal.Length; i++)
            {
                animal[i].Shout();
            }
            Console.ReadKey();

        }
    }
    public abstract  class Animal
    {
        public Animal(string name )
        {
            this._name = name;
        }
        private string _name;
        public string Name
        {
            get { return _name; }
            set { _name = value; }
        }
        public abstract  void Shout();
    }

    public class Pig : Animal
    {
        public Pig(string name) : base(name)
        { 
        }
        public override void  Shout()
        {
            Console.WriteLine("{0}哼哼",this.Name);
        }
    }
    public class Dog : Animal
    {
        public Dog(string name) : base(name)
        {
        }
        public override void Shout()
        {
            Console.WriteLine("{0}汪汪",this.Name);
        }
    }
    public class Cow : Animal
    {
        public Cow(string name) : base(name)
        {
        }
        public override void Shout()
        {
            Console.WriteLine("{0}哞哞", this.Name);
        }
    }
    public class Cat : Animal
    {
        public Cat(string name) : base(name)
        {
        }
        public override void Shout()
        {
            Console.WriteLine("{0}喵喵", this.Name);
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章