m_<:继续记录类的学习过程。
1
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Person(10); //调用构造函数,一般Person p1 = new Person(),是类中默认的无参数构造函数
Person p2;
p2 = p1;
p1.Age++;
Console.WriteLine(p2.Age); //输出结果11
IncAge(p2);
Console.WriteLine(p2.Age); //结果12
Console.ReadKey();
}
static void IncAge(Person p)
{
p.Age++;
}
}
class Person
{
public int Age {set; get;}
public Person(int age) //构造函数
{
this.Age = age;
}
}
}
输出结果为11。普通的对象是引用类型,赋值的时候传递引用,即p1引用了某个内存,p2=p1时,引用了同一个内存,所以p1时,该内存值变,p2也就变了。
2 构造函数
构造函数在创建对象的同时,对对象进行初始化。其函数名与类名相同,没有返回值,不用void。构造函数可以有参数,可以重载。如果不指定构造函数,则类默认一个无参构造函数。
namespace ConsoleApplication1
{
class Program
{
static void Main(string[] args)
{
Person p1 = new Person("KenGee");
Person p2 = new Person("KenGee", 20);
Console.WriteLine("名字:{0}.",p1.Name);
Console.WriteLine("名字:{0},年龄:{1}.", p2.Name, p2.Age);
Console.ReadKey();
}
}
class Person
{
public string Name {get; set;}
public int Age {get; set;}
public Person(string name) //构造函数重载1
{
this.Name = name;
}
public Person(string name, int age) //重载2
{
this.Name = name;
this.Age = age;
}
}
}
网友评论