C# 中的类

using System;
using System.Collections.Generic;
using System.Text;

namespace Class_test
{
    public class Person
    {
        //字段,属性,方法,构造函数
        //字段,存储数据
        //属性,保护字段
        //方法,描述对象的行为
        //构造函数:初始化对象(给对象的每个属性依次赋值)
        //类中的成员,如果不加修饰符,默认都是 private
        string _name;
        /// <summary>
        /// 属性的本质就是2个方法,set和get
        /// </summary>
        public string Name //如果在set中限定,则修改的是value的值
        {
            get { return _name; }
            set { 
                if (value != "孙权")
                {
                    value = "孙权";
                }
                _name = value; }
        }

        int _age;
        public int Age  //如果在get中限定,则修改的是字段的值
        {
            get {
                if (_age < 0 || _age > 100)
                {
                    return _age = 0;
                }
                return _age; }
            set { _age = value; }
        }

        char _gender;
        public char Gender  //属性是扳手
        {
            get { return _gender; }
            set { _gender = value; }
        }
        //this:当前类的对象
        //this:调用当前类的构造函数
        public void SayHello() //没有static,证明是 非静态方法/实例方法
        {
            string Name = "小猪"; //局部变量
            Console.WriteLine(
                "他的名字是{0}, 年龄是{1}岁, 性别是{2}", 
                this.Name, this.Age, this.Gender);//三个实例成员,最好使用this
        }
       
        private static readonly int _id = 22; //静态成员
        //静态方法只能访问静态成员
        public static void SayHello_2()
        {
            Console.WriteLine("我是方法2静态方法,我的ID是{0}", _id);
        }

        //构造函数:1,没有返回值,连void都没有
        //          2,构造函数名和类名一样
        //          3,将传进来的参数的值分别赋予给属性
        public Person(string name, int age, char gender)
        {
            this.Name = name;
            this.Age = age;
            //在构造函数中限定
            if(gender != '男' && gender != '女')
            {
                gender = '男';
            }

            this.Gender = gender;
        }

        //构造函数的重载
        public Person(string name, char gender):this (name,0,gender)
        {
            //this.Name = name;
            //this.Gender = gender;
        }
    }
}

using System;

namespace Class_test
{
    class Program
    {
        static void Main(string[] args)
        {
            Person zsPerson = new Person("张三",18,'女');
            //new : 1,在内存中开辟一个空间 2,在开辟的空间创建对象 3,调用对象的构造函数

            zsPerson.SayHello(); //非静态方法的调用

            Person.SayHello_2();//静态方法的调用
                                //静态方法不能访问this.Name等非静态
                                //静态方法智能访问静态成员
            Console.ReadKey();
        }
    }
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

潘诺西亚的火山

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值