当前位置:首页 > 技术 > c# > c#相关文章

C# 类的get、set方法以及方法重载

2015-10-11 来源:未知 作者:admin

构造方法重载

明白:一个类可以有若干构造方法,在构建对象的时候,我们可以选择自己需要的构造方法来完成对象初始化。

【1】无参数构造方法在什么情况下使用?

通常我们给一下特定的和固定不变的成员(字段、属性)或者配置文件读取等,可以使用。

【2】有参数的构造方法?

根据需求,你希望用户创建对象的时候,做哪些初始化的工作,可以放到有参数的构造方法。

不同:需要调用者从外面传递数据过来。

构造方法相互调用

使用:this关键字(参数....)

无参数构造方法:只有在没有任何构造方法的情况下,编译器才会自动生成。

所以,如果你设计一个类,需要用户在构建对象的时候,必须传递初始化的数据,就可以自己删掉无参数的构造方法,从而添加有参数的构造方法。

构造方法重载的条件:不同构造方法的参数类型或个数必须不一样。

构造方法重载的好处:创建对象的时候,会综合到一起,提示给用户选择。

this关键字

【1】在构造方法调用另一个构造方法的时候,可以使用。

【2】this可以调用类的成员(字段、属性、方法)

 public Student(string name, int age, string gender)
        {
            this.name = name;
            this.age = age;
            this.gender = gender;
        }

this.表示当前类(对象)

代码演示

Student类

using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace itss.HelloWord{
    public class Student
    {
        //添加字段        /*        private string name;//姓名                private int age;//年龄                private string gender;//性别*/

        //默认方法        public Student()
        {
            this.name = "xll";
            this.age = 18;
            this.gender = "男";
        }

        //方法重载        /// <summary>        /// 学生类方法重载        /// </summary>        /// <param name="name">姓名</param>        /// <param name="age">年龄</param>        /// <param name="gender">性别</param>        public Student(string name, int age, string gender)
        {
            this.name = name;
            this.age = age;
            this.gender = gender;
        }
        public string name { get; set; }
        public int age { get; set; }
        public string gender { get; set; }
    }}

测试类

using MyTestDLL;using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace itss.HelloWord{
    internal class Program
    {
        static void Main(string[] args)
        {
            /*Console.WriteLine("Hello word !");            //Console.ReadLine();            Class1 cc =    new Class1();            Console.WriteLine(cc.addTest());            Console.ReadLine();*/

            Student stu1 = new Student();/*            stu1.name = "sql";            stu1.age = 17;            stu1.gender = "男";*/
            Console.WriteLine(stu1.name);
            Console.WriteLine(stu1.age);
            Console.WriteLine(stu1.gender);
            Console.WriteLine("----------------------------------");

            Student stu2 = new Student("xxl", 17, "男");
            Console.WriteLine(stu2.name);
            Console.WriteLine(stu2.age);
            Console.WriteLine(stu2.gender);

            Console.ReadLine();
        }
    }}

运行结果

微信截图_20230831173517.jpg

相关内容: C#
『 猜你喜欢 』