using System;
using System.Collections.Generic;
using System.Text;
namespace oop
{
class Person
{
public string name;
public int age;
/**
* static修饰的字段
*
* 用static修饰的字段,它们属于类,而不属于类的某一个实例,
* 也就是说,在调用静态字段时,只能通过类名来调用,即(Person.sex)
* 而不能通过类的某一个实例来调用,而不是(Person person = new Person();person.sex)
* 2.
* 如果方法被声明为静态的,也是如此
*/
public static string sex;
/**构造方法
* 特点:
* 1.与类名相同
* 2.构造方法一般被声明为public
* 3.构造方法一般用来初始化成员变量
* 4.构造方法可以重载
* 5.构造方法在实例化对象的时候被调用
* 6.如果类中没有默认构造方法,也没有带参数的构造方法,编译时,将会自动添加一个默认构造方法,
* 7.如果类中有带参数的构造方法,而没有默认构造方法,则编译器不会再添加默认构造方法,
* 8.默认构造方法也叫无参构造方法
*/
public Person()
{
}
public Person(string name, int age)
{
/**
* this
* this代表类的实例.
* 如果一个字段或者方法被声明为static的,则不能用this来调用,因为static声明的字段或者方法属于类,
* 而this代表的是类的实例(如:this.sex是错误的)
*/
this.name = name;
this.age = age;
}
/**
* 方法的重载
*
* 重载的特点:
* 1.方法名都要相同
* 2.方法的可以参数不同,返回值可以不同,方法的访问权限可以不同,方法参数不同的几种情况如下:
*
* 重载的几种情况:
* 1.参数的类型不同
* 2.参数的个数不同()
* 3.参数的顺序不同(参数的列表不同 在C# 中,这种情况没有实际使用价值)
* 4.返回类型不同
* 5.访问修饰符不同
*/
public void GetInfo()
{
Console.WriteLine("这个是无参的方法");
}
public void GetInfo(string name)
{
Console.WriteLine("姓名是:" + name);
}
public int GetInfo(int age)
{
Console.WriteLine("年龄:" + age);
return age;
}
internal void GetInfo(int age, string name)
{
Console.WriteLine(" 年龄: " + age + "姓名:" + name);
}
public void GetInfo(string name, int age)
{
Console.WriteLine("姓名:" + name + " 年龄: " + age);
}
/* 用static修饰的方法
*
* 1.static修饰的方法中,不能用this关键字来调用实例字段
* 2.static修饰的方法中,也不能直接调用实例字段,如果要调用这些字段,
* 要先实例化对象(如 Person p1 =new Person();p1.age=2;)
* 3.静态方法中,可以类名调用静态方法
*/
public static void StaticInfo()
{
Console.WriteLine("这个方法是一个静态方法");
}
/**
* 析构函数
*
* 特点:
* 1.析构函数前有一个"~",表明是一个析构函数
* 2.析构函数的函数名和类名相同
* 3.一个类只有一个析构函数
* 4.析构函数没有参数
* 5.析构函数没有返回值
* 6.析构函数没有访问修饰符
* 7.析构函数不能重载
* 8.析构函数不能实现继承
* 9.析构函数是用来清理垃圾的(如:用来清除不再使用的对象)
* 10.析构函数不用手动调用,而是由垃圾回收器自动调用
*
*/
~Person()
{
}
}
class Program
{
static void Main(string[] args)
{
Person p = new Person();
p.GetInfo();
Console.WriteLine("/n");
p.GetInfo("sofie");
Console.WriteLine("/n");
p.GetInfo("sofie", 21);
Console.WriteLine("/n");
p.GetInfo(21, "sofie");
Console.WriteLine("/n");
int a = p.GetInfo(12);
Console.WriteLine(a);
}
}
}
转自: