c#自学之路第九天
一、笔记
1.静态和非静态的区别
1)在非静态类中,即可以有实例成员,也可以有静态成员。
2)在调用实例成员的时候,需要使用对象名.实例成员;
在调用静态成员的时候,需要使用类名.静态成员名;
总结:静态成员 必须使用类名去调用,而实例成员使用对象名调用;
静态函数中,只能静态字段或函数
实例函数中,既可以使用静态成员,也可以实例成员
静态类中只允许有静态成员,不允许出现实例成员。
使用:如果你想要你的类当作一个“工具类”去使用,这个时候可以考虑将类写成静态。
静态类在整个项目中资源共享。 只有在整个程序运行完成后,才释放资源 释放资源 GC 垃圾回收器
2。构造函数
作用:帮助我们初始化对象(给对象的每个值依次赋值) 构造函数是一个特殊的方法;
1)构造函数没有返回值,连void也不能写
2)构造函数的名称必须和类名一样, 创建对象的时候会调用构造函数 构造函数可以有重载。
3.new关键字
new帮我们做三件事:
1)在内存中开辟一块空间
2)在开辟的空间创建对象
3)调用对象的构造函数进行初始化对象
4.this关键字
1)、代表当前类的对象
2)、在类当中显示显示的调用本类的构造函数 :this
二、代码
namespace 方法静态和非静态
{
class Program
{
static void Main(string[] args)
{
//调用实例成员
Person p = new Person();
p.M1();//实例方法
Person.M2();//静态方法
Student.M1();
Console.ReadKey();
}
}
}
namespace 方法静态和非静态
{
public static class Student
{
private static string _name;
public static string Name
{
get { return Student._name; }
set { Student._name = value; }
}
public static void M1()
{
Console.WriteLine("Hello world");
}
}
}
namespace 方法静态和非静态
{
public class Person
{
private static string _name;
public static string Name
{
get { return Person._name; }
set { Person._name = value; }
}
private char _gender;
public char Gender
{
get { return _gender; }
set { _gender = value; }
}
public void M1()
{
Console.WriteLine("我是非静态方法");
}
public static void M2()
{
Console.WriteLine("我是一个静态方法");
}
}
}