C# 属性(属性,重要)

1.属性的概述

属性是一种用于访问对象或类的特性的成员。

举例,属性就是特征,如,button ,字体颜色,背景颜色,字体大小,等等

如,date类,该类中有一个属性day

//* 属性不能作为ref参数或out  参数传递 //

public class Date
{
       private int Day=7;
       public int day // 星期属性
    {
           get{ return Day;}
           set
          {
                  if((value>0)&&(value<8))
                  {
                     Day=value;
                  }
           }
     }


}

2. 属性的使用

对象名.属性名
button1.text="123";

PS:  在其他类中调用,定义属性设置public

using System;
namespace runoob
{
   class Student
   {

      private string code = "N.A";
      private string name = "not known";
      private int age = 0;




      // 声明类型为 string 的 Code 属性
      public string Code
      {
         get
         {
            return code;
         }
         set
         {
            code = value;
         }
      }
   

      // 声明类型为 string 的 Name 属性
      public string Name
      {
         get
         {
            return name;
         }
         set
         {
            name = value;
         }
      }



      // 声明类型为 int 的 Age 属性
      public int Age
      {
         get
         {
            return age;
         }
         set
         {
            age = value;
         }
      }


      public override string ToString()
      {
         return "Code = " + Code +", Name = " + Name + ", Age = " + Age;
      }
    }


    class ExampleDemo
    {
      public static void Main()
      {
         // 创建一个新的 Student 对象
         Student s = new Student();                    // 实例化student为S
            
         // 设置 student 的 code、name 和 age
         s.Code = "001";                                // 为ID 赋值
         s.Name = "Zara";                               //为名称赋值
         s.Age = 9;
         Console.WriteLine("Student Info: {0}", s);
         // 增加年龄
         s.Age += 1;                                    //重新为年龄赋值
         Console.WriteLine("Student Info: {0}", s);
         Console.ReadKey();
       }
   }
}

PS:  get 访问器为了方便灵活调用

        在一个类中有很多属性,如学生,属性男女,姓名,年龄,学习成绩,身高

3.抽象属性

抽象属性对类共有属性的抽象共有的属性,如 正方形和长方形他们都具有的属性是面积,周长等属性。但是他们又有一些不同的属性和方法,比如长方形有长和宽。正方形只有一个边长。他们各自的面积和周长 的计算方法也不一样。

using System;
namespace ab_cl
{
    abstract class shape          //定义一个抽象类( 要使用关键字abstract,不同于普通类的定义)
    {
        double area;                  //定义一个成员(面积)
    }


    class a:shape//定义一个长方形的类
    {
        private double length;//长方形的私有属性长
        private double width;//长方形的私有属性宽

              public a(double len, double wid)//定义一个带参的构造函数。主要用于长,宽的赋值
              {
                length = len;
                width = wid;
               }

        public double area()               //用于计算长方形的面积的方法
        {
            return length * width;
        }

        public double zhouchang()          //用于计算长方形的周长的方法
        {
            return (length + width) * 2;
        }
    }




    class b : shape//定义一个正方形的类
    {
        private double width;//定义正方形的私有属性边长


        public b(double wid)//定义一个带参的构造函数。主要用于边长的赋值
        {
            width = wid;
        }


        public double area()//计算正方形的面积
        {
            return width*width;
        }


        public double zhouchang()//用于计算正方形的周长
        {
            return width * 4;
        }

    }


    class c
    {
        static void Main()//入口函数
        {
            a t = new a(2.5, 1.2);//将长方形这个类实例化为对象
            b t1 = new b(2.5);   //将正方形这个类实例化为对象

            Console.WriteLine("C#中抽象类的应用:");

            Console.WriteLine("长方形的面积是:{0}", t.area());
            Console.WriteLine("长方形的周长是:{0}", t.zhouchang());

            Console.WriteLine("正方形的面积是:{0}",t1.area());
            Console.WriteLine("正方形的周长是:{0}", t1.zhouchang());
            Console.ReadKey();
        }
    }
}

在C#中,抽象属性是指在一个抽象类中声明的属性,该属性没有具体的实现代码,只是声明了一个属性名称和数据类型。抽象属性可以被继承类覆盖(override),也可以被继承类重写(override)。

抽象属性通常在抽象类中使用,用于定义需要在继承类中实现的具体属性。继承类必须提供具体的实现代码,以便在需要时可以访问该属性。

例如,假设有一个抽象类Animal,其中声明了一个抽象属性Sound:

public abstract class Animal  
{  
    public abstract string Sound { get; set; }  
}


该抽象属性Sound没有具体的实现代码,只是一个声明。现在,任何继承Animal类的类都必须提供Sound属性的具体实现。

如,Dog类可以继承Animal类并实现Sound属性:

public class Dog : Animal  
{  
    public override string Sound  
    {  
        get { return "Woof"; }  
        set { }  
    }  
}


在这个例子中,Dog类覆盖了Animal类的Sound属性,并提供了读取和写入访问的实现。
现在,我们可以创建一个Dog对象,并访问其Sound属性:


Dog myDog = new Dog();  
Console.WriteLine(myDog.Sound); // 输出 "Woof"  

myDog.Sound = "Bark";  
Console.WriteLine(myDog.Sound); // 输出 "Bark"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值