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);
        }
    }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章