类----(一)属性与字段

类的属性与字段:

  1. 当字段为private时。可以通过属性来访问私有字段,也可以在类的内部用方法来访问字段。

  2. 可以在属性中将set访问器或者get访问器设为private,实现只写或只读。

  3. 与字段不同,属性是一个函数成员。
    example

using System;

namespace classTest012
{
    class constructor
    {
        static void Main(string[] args)
        {

            Person2 per = new Person2();
            per.SetName("xiao hong"); //通过方法给字段赋值。
            per.Age = 23;//通过属性给字段赋值。
            per.Print();

            Person person = new Person();
            person.Name = "lily";
            person.Age = -1;//通过属性赋值。
            person.Print();

            

            Console.Read();
        }
    }

    class Person
    {
        private string _name;
        private int _age;
        public string Name
        {

            get
            {
                return _name;
            }

            set
            {
                this._name = value;
            }
        }
        public int Age
        {
            private
            get
            {
                return _age;
            }
            set
            {
                if ((value > 0) && (value < 130))
                {
                    _age = value;
                }
                else
                {
                    Console.WriteLine("无效的年龄!!!");
                }
            }
        }

        public void Print()
        {
            Console.WriteLine("name: {0},age:{1}", _name, _age);
        }
    }
    class Person2
    {
        private string _name;
     
        //定义GetName方法
        public string GetName()
        {
            return _name;
        }
        //定义SetName方法,显示定义 value 参数 
        public void SetName(string value)
        {
            this._name = value;
        }
        private int _age;
        public int Age //属性
        {
            private get
            {
                return _age;
            }
            set
            {
                if ((value < 0) || (value > 130))
                    Console.WriteLine("输入的年龄值无效!!");
                else
                {
                    this._age = value;
                }
            }
        }
        public void Print()
        {
            Console.WriteLine("name: {0},age= {1}", _name, _age);
        }
    }
    class C1
    {
        private int realValue; 
        private int complexValue;
        public int RealValue 
        {
            get //只读
            {
                return realValue;
            }
        }
        public int ComplexValue 
        {
            set  //只写
            {
                complexValue = value;
            }
        }
    }
    /// <summary>
    /// 自动实现属性:c# 允许只声明属性而不声明后备字段,编译器会创建隐藏的后备字段。并且自动挂接到get,set访问器上。
    /// </summary>

    class C2
    {
        public int RealValue //分配内存
        {
            get;
            set;
        }
    }
    class Triangle 
    {
        public double A = 3;
        public double B = 5;
        public double GetThird 
        {
            get 
            {
                return Math.Sqrt((A * A) + (B * B));
            }
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值