类的实例化
类是指具有相同属性或方法的成员的集合,例如:人是一个类,而每个人又都是独一无二的,每个人都是人这个类的实例化。
类的实例化 代码示例
//类Person中的字段与方法
public class Person
{
public string _name;
public char _gender;
public int _age;
public void SayHello()
{
Console.WriteLine("大家好");
}
public void Walk()
{
Console.WriteLine("步行");
}
}
//对Person类的实例化
class Program
{
static void Main(string[] args)
{
Person per = new Person();
per._name = "nikita";
per._gender = '女';
per._age = 18;
per.SayHello();
per.Walk();
Console.WriteLine(per._name );
Console.ReadKey();
}
}
访问修饰符
类与结构的异同
类可以被实例化,是分配在内存的堆上的,类是引用传递的。结构属于值类型,是分配在内存的栈上的,结构是复制传递的,如int32,boolean都属于结构体。
属性 代码示例
//调用Person类中private的字段,需要声明属性再进行调用
public class Person
{
private string _name;
public string Name
{
get { return _name; }//读
set { _name = value; }//写
}
private char _gender;
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
}
//调用Person类中的属性
static void Main(string[] args)
{
Person per = new Person();//实例化类
per.Name = "nikita";
per.Gender = '女';
Console.WriteLine("{0},{1}",per.Name,per.Gender);
Console.ReadKey();
}
构造函数
存在的意义:
有一个属性,如果我们不希望别人对它随意改动,就会把属性改为只读类型,也就是只有get语句,那么,这个属性就不能实例化后对它进行赋值了,这时,可以通过构造函数来进行赋值。
-有无参数:
-如果不指定构造函数,则类中有一个默认的无参构造函数;
-如果指定了构造函数,则不再有默认的无参构造函数
-如果需要无参构造函数,则需要自己写。
重载:
构造函数还可重载,也就是有多个参数不同的构造函数。
构造函数 代码示例
//有两个参数的构造函数
public Person(string name,char gender)
{
this._name = name;
this._gender = gender;
}
private string _name;
public string Name
{
get { return _name; }//读
//set { _name = value; }//写
}
private char _gender;
public char Gender
{
get { return _gender; }
//set { _gender = value; }
}
//实例化后进行调用