我不太懂理解构造函数和属性!
来源:百度知道 编辑:UC知道 时间:2024/08/20 21:23:17
struct Person
{
private string _name;
public Person(string name)
{
_name = name;
}
public string Name
{
get { return _name; }
set { _name = value; }
}
}
class Test
{
static void Main()
{
Person p=new Person("张三");
}
}
-----------------------------------在我看来上面的代码都在给私有字段_name赋值,所以不懂为什么要这样写,这不是重复了吗?
我觉得 rightmin 说得好,那么构造函数的修饰符public 还有意义吗,这点又不太懂?能否补充!
上面用的是结构,我用类来说明吧:
private string _name;
这里的_name是类的成员,而且是私有的,就是类外部不能访问这个成员。
public Person(string name)
{
_name = name;
}
这是构造函数,构造函数用于新建类的一个对象:Person p=new Person("张三"); 在这里new Person的Person就是构造函数,它的参数就是“张三”,这个“张三”在构造函数里面将要被赋值给_name,确切的来说是p._name="张三";但是这个_name是私有的,不能直接用p._name来读写,但是类定义个一个属性 Name,这个属性是公共的,所以可以使用p.Name来读写。
我们可以这么使用:
p.Name="李四"; 这样p这个对象的_name值就变成"李四"了;
string str=p.Name; 这样str就等于"李四"了;
using System;
struct Person
{
private string _name; //私有的变量
public Person(string name) //这个是参数名称叫name,自定义的
{
_name = name; //_name是私有的变量,name是参数的名称
}
public string Name //这人是他的属性
{
get { return _name; }
set { _name = value; }
}
}
class Test
{
static void Main()
{
Person p=new Person("张三"); //给参数变量name传递了张三
}
}
a. 如果一个类没有显式的提供构造函数,编译器会提供一个无参数的构造函数,格式