构造方法
构造方法(Constructor):构造对象其实就是创建对象。在创建对象过程中,需要调用的方法,叫做构造方法。
构造方法的本质是为了如何对字段、属性、对象或其他的相关性的初始化。
初始化调用顺序:字段=》属性=》=》构造方法
在一个类中,如果没有显示的去写一个构造方法,编译器会默认给这个类添加一个无参数的构造方法。若在调用的类中没有无参数的构造方法,再去调用会出错
构造方法的规范写法
class MyClass
{
public MyClass()
{
}
public MyClass([参数1],[参数2])
{
}
public MyClass([参数1],[参数2]....[参数n])
{
}
}
构造方法不能有返回值,方法名必须和类名一致,调用有参的构造方式,如果参数名和类中的字段名有相同,可以用this关键期来区分。
public MyClass(string _name)
{
this._name = _name;
}
private string _name="张三";
public string Name { get => _name; set => _name = value
实例方法
实例方法是通过对对象的实例化调用的方法,其他地方要想访问到这个方法需要用public修饰。
方法名定义:使用Pascal命名法,尽量用动宾短语,或动词
调用方式:实例名.实例方法([参数])
MyClass myClass = new MyClass();
myClass.Add(1, 2, 3);
myClass.Add(1, 20);
方法的重载是根据参数和参数类型来决定调用那个重载方法。重载方法需要不同类型的参数或不同数量的参数,参数相同和返回值相同的方法不能被重载。
public int Add(int a ,int b)
{
return a + b;//方法体
}
public int Add(int a,int b,int c)
{
return a + b + c;//方法体
}
命名参数
在一些情况下,调用方法需要考虑参数顺序的问题,引用命名参数可以不考虑顺序
//命名参数(也就是说调用方法的时候,给参数前面写上参数名称,这样可以不用考虑顺序)
myClass.Add(a: 2, b: 7);
静态方法
静态方法是带有static修饰的方法。
调用实行:类名.静态方法
MyClass.Mul(3, 7);
静态方法的特征:所谓静态,就是不需要new对象,直接通过类完成。这些静态的成员(字段、属性、方法)在程序启动的时候由CLR负责的,随着程序的启动自动初始化完成。
静态方法不能直接调用未实例的方法、字段、属性。
public static int Mul(int a,int b)
{
//这里可以调用其他实例的实例方法、属性
MyClass myClass = new MyClass();
myClass.Name = "李四";
return a * b;
}
静态方法和实例方法的区别
实例方法或其他实例成员,在被调用时都需要实例化,在内存中开辟一段空间,使用完毕时,会被GC(垃圾回收)回收掉,进而释放内存。程序就是在不断的创建对象和销毁对象。
静态方法或静态成员是不受GC(垃圾回收)控制,只有在程序被关闭时,内存才会得到释放。静态的成员,必须慎重使用。对使用非常频繁的,占用空间又不大的。可以适当使用