.net(C#)中的类和对象

11 篇文章 0 订阅

比较简单,不过是很认真写的,希望对看到的同学有所帮助!

首先说下类:

      类呢,就是一类事物的抽象,抽象的过程中把,这类事物共有的、一般性的特征、行为啦,抽象成类中的属性和方法。

举个例子:

就说人吧,可以把人作为一个类,人这个类的特征:两条腿、两个胳膊、两个眼睛等这些都是一说到人,咱们都能想起的一般特征,这些都是人这个类的属性。

然后是行为,走路、吃饭、喝茶、打游戏等等,这些都是人能够进行的活动,这些都是人的行为,都可以作为人这个类中的方法。

再说说对象:

      首先,对象就是类的实例化,也就是说,对象就是类范围内的具体的某一个。

比如说吧:

     还说人这个类吧,人这个类中的某一个具体的人就是这个类的一个对象。比如:你、我、小张、你女朋友,这些都是人这个类中的一个具体的人,这些都是人这个类实例化出的一个对象。实例化出的对象,有类中的所有基本属性、也可进行类中的所有的行为。

创建类是应该注意的事项;

创建之前,先分析有到底有多少个对象,再通过对象分析去确定有多少个类,接下啦,去确定类的详细内容:属性、方法、行为等等......

当一个类创建好以后,会有一个默认的无参数的构造函数

构造函数可以重载,构造函数访问修饰符,一般都是public

1.构造函数名必须与类名一致,可以有参数,也可以没有参数,有参数的,实例化时,必须要有传值

比如;

 无参数的:  public Student(){}    实例化: Student stu = Student();

 有参数的:

   public Student(string _name1, int _no1)

     {
           this.Name = _name1;
           this.No = _no1;  
     }

这是实例化对象是语法应该是这样的

Student stu = Student("name",110);

2.构造函数下不能有任何返回值,哪怕void也不行

3.构造函数的访问修饰符,一般都是public

   例如

     public Student(string _name1, int _no1)

     {
           this.Name = _name1;
           this.No = _no1;  
     }

这是实例化对象是语法应该是这样的

Student stu = Student("name",110);

当然也可以是private|protected,不过或两者不常用,如果构造函数访问修饰符是private|protected;则实例化时就不能直接用构造函数实例化,这时候就需要,在类中创建一个方法来调用私有的或受保护的构造函数,向外返回一个实例化的对象

例如:

        private Student(string _name1, int _no1)
        {
            this.Name = _name1;
            this.No = _no1;
          
        }
        public static Student get_student(string _name,int _no)
        {           
            return new Student(_name,_no);
        }

这时想用原来的方法实例化对象,就会出错,可以自己试试。

正确的实例化对象是语法应该是这样的

Student stu = Student.get_student("name",110);

4.如果手动添加一个构造函数,这是会将默认的构造函数覆盖

例:

    我创建一个Student的类

   class Student
    {
        public string _name;
        public int _no;

        private Student(string _name1, int _no1)
        {
            this.Name = _name1;
            this.No = _no1;
          
        }
        public static Student get_student(string _name,int _no)
        {           
            return new Student(_name,_no);
        }
        public string Name
        {
            get 
            {    return _name;     }
            set 
            {    _name = value;   }
        }
       public int No
        {
            get 
            {  if (_no < 0)

                {  _no = 2;  }
                 return _no;

            }         
            set
            {   if (value < 3)
                {    _no = value;   }
                else
                {   Console.WriteLine("输入的值{0}过大", value);
                    _no = 3;   }
            }
        }
        public void SayHi()
        {
            Console.WriteLine("你好,我是{0}号\n我叫{1}", this.No, this.Name);
        }
    }

你应该发现啦,我的No,Name两个属性中的get(),set()地方法是不一样,不急,这正是我想给你聊的

Get()方法,是取值的函数,通过这个函数,可以去类中相应字段的值,就是说get()是对应字段对外部的一个接口,可以把相应的字段设置为private|protected,然后通过,它的get()方法访问它,当然,因为get()是一个方法,它也就有一般方法的所有功能,可以执行各种操作,比如可以根据一定的条件对值进行判断、重置,也可以根据返回的值的情况,判断是否允许把这个值返回去,对之进行有选择的拦截和更改。

Set()方法,是对对象中相应的属性的赋值函数,通过这个函数,可以给对象中的属性或字段进行赋值,当然和上面讲述的一样,也可以对将要赋值的字段的范围进行限定,然后根据限定条件进行实际赋值。




  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值