首页 > 其他分享 >.NET平台与设计【4】

.NET平台与设计【4】

时间:2023-03-12 17:44:05浏览次数:42  
标签:breed 变量 age 平台 private 设计 NET public string

实例变量~用属性(property)来从外部调用实例变量

private实例变量¿

现在介绍一种只能在类内使用的变量:private

class Dog
    {
        private string name;                                    
        private int age;
        private string breed;
    }

这些变量只能在类内访问,而外部访问需要使用属性。

属性

通过定义属性来从外部访问类内用private声明的实例变量
可以通过以下语句构建:
public [类型][属性名称]

举个例子

        public int Age        //属性,从外部访问
        { 
            get { return age; } set {  age = value; } 
        }           
        public string Breed    
        { 
            get { return breed; } set {  breed = value; }
        }

在main函数中调用时,可以用以下方式调用:
[类名].[属性名]
赋值时,会使用到属性中的set方法;
调用时,会使用到属性中的get方法。

为什么要这么做?

在c#中隐藏类的实例变量,利用属性有以下好处。:

  • 利用set、get,可以进行变量的访问控制。例如,你可以限制对变量的访问,从而防止不正当写入。
  • 利用附件方法,可以扩展对变量的操作。例如,你可以添加验证变量值的处理。
  • 隐藏实例变量可以限制外部访问,并改变变量界面。
  • 不需要从类外部直接访问变量,就可以对变量进行操作。
  • 隐藏实例变量,利用属性,可以检测变量值的改变。

根据这些优点,可以提高程序的维护性和扩张性。

Sample05完整

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

namespace Sample04
{
    class Dog
    {
        //*************实例变量********************
        private string name;                                    
        private int age;
        private string breed;


        //**************属性,从外部访问*************
        public string Name
        {
            get { return name;} set { name = value; }
        }
        public int Age
        {
            get { return age; } set {  age = value; }
        }           
        public string Breed
        { 
            get { return breed; } set {  breed = value; } 
        }
        //******************以下是方法**************
        public void Bark()
        {
            Console.WriteLine(name+" : Woof!");
        }

        public void PrintInfo()
        {
            Console.WriteLine("name : " + name);
            Console.WriteLine("age : " + age);
            Console.WriteLine("breed : " + breed);
        }
    }
    internal class Program
    {   
        static void Main(string[] args)
        {
            Dog mydog = new Dog();
            mydog.Name = "doggy";
            mydog.Age = 4;
            mydog.Breed = "Golden";

            mydog.PrintInfo();
            mydog.Bark(); 
            Console.ReadLine();

        }
    }
}

运行结果:

标签:breed,变量,age,平台,private,设计,NET,public,string
From: https://www.cnblogs.com/nekodream/p/17208612.html

相关文章