实例变量~用属性(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