四、c#类的定义和使用方法

四、c#类的定义和使用方法

类的构成:字段和方法

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpData
{
    public class Person
    {
        //定义字段年龄
        public int Age;
        //定义字段性别
        public Gender gender;
        //定义字段姓名
        public string Name;
        //定义方法
        public void Greating()
        {
            string Words = string.Format("你好,我的名字叫{0},我的性别是{1},我的年龄是{2}", Name, gender, Age);
            Console.WriteLine(Words);
        }
    }
    //性别是枚举类型
    public enum Gender
    {
        male,
        female
    }

}

属性相当于字段的升级版,可以通过属性实现对字段的控制

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpData
{
    public class Person
    {
        //定义字段年龄
        private int age;
        //属性
        public int Age
        {
            get { return age; }
            set
            {
                if (value < 0)
                {
                    age = 18;
                }
                else
                    age = value;
            }
        }
        //定义字段性别
        public Gender gender;
        //定义字段姓名
        public string Name;
        //定义方法
        public void Greating()
        {
            string Words = string.Format("你好,我的名字叫{0},我的性别是{1},我的年龄是{2}", Name, gender, Age);
            Console.WriteLine(Words);
        }
    }
    //性别是枚举类型
    public enum Gender
    {
        male,
        female
    }

}

属性和字段都是针对类的对象实例化之后才可以使用,我们可以用一些静态字段来描述类本身的特点。比如“人类”这个类,就可以用总人口数来描述。这种字段前面要加上一个static,这样引用的时候就可以直接通过类名来直接调用。

函数和方法是同样的道理。

构造函数:就是在构造这个类的同时,将其初始化。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpData
{
    public class Person
    {
        //定义字段年龄
        private int age;
        //属性
        public int Age
        {
            get { return age; }
            set
            {
                if (value < 0)
                {
                    age = 18;
                }
                else
                    age = value;
            }
        }

        public string Name { get; set; }//定义名字属性
        public Gender Gender { get; set; }//定义性别属性
        public Person(string name,Gender gender,int age)//构造函数
        {
            Name = name;
            Gender = gender;
            Age = age;
        }

        //定义字段性别
        //public Gender gender;
        定义字段姓名
        //public string Name;
        //定义方法
        public void Greating()
        {
            string Words = string.Format("你好,我的名字叫{0},我的性别是{1},我的年龄是{2}", Name, Gender, Age);
            Console.WriteLine(Words);
        }
    }
    //性别是枚举类型
    public enum Gender
    {
        male,
        female
    }
   
}
->>Person person1 = new Person("william", Gender.female, -3);//创建对象并传入参数
   person1.Greating();//实例化

类的继承:就是在创建类的时候可以有效的复用。比如说已经有了一个HUMAN类,我们现在要创建一个STUDENT类,student和human有很多地方非常相似,只不过多了一些特性,那么我们就可以让student继承human所有的属性和方法。那么student就是子类,human就是父类。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CsharpData
{
    public class Student : Person
    {
        public Student(string name, Gender gender, int age) : base(name, gender, age)
        {
            //继承大大的提高了类的复用性,这里的student继承了person类的所有属性
        }

    }
}

类的封装:封装主要是用修饰符来实现的。

private protected等等修饰符来封装类的权限控制。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值