1
using System;
2
using System.Collections.Generic;
3
using System.Text;
4
5
namespace oop
6
{
7
class Person
8
{
9
public string name;
10
public int age;
11
12
/**
13
* static修饰的字段
14
*
15
* 用static修饰的字段,它们属于类,而不属于类的某一个实例,
16
* 也就是说,在调用静态字段时,只能通过类名来调用,即(Person.sex)
17
* 而不能通过类的某一个实例来调用,而不是(Person person = new Person();person.sex)
18
* 2.
19
* 如果方法被声明为静态的,也是如此
20
*/
21
22
23
public static string sex;
24
25
26
/**构造方法
27
* 特点:
28
* 1.与类名相同
29
* 2.构造方法一般被声明为public
30
* 3.构造方法一般用来初始化成员变量
31
* 4.构造方法可以重载
32
* 5.构造方法在实例化对象的时候被调用
33
* 6.如果类中没有默认构造方法,也没有带参数的构造方法,编译时,将会自动添加一个默认构造方法,
34
* 7.如果类中有带参数的构造方法,而没有默认构造方法,则编译器不会再添加默认构造方法,
35
* 8.默认构造方法也叫无参构造方法
36
*/
37
38
public Person()
39
{
40
41
}
42
43
public Person(string name,int age)
44
{
45
/**
46
* this
47
* this代表类的实例.
48
* 如果一个字段或者方法被声明为static的,则不能用this来调用,因为static声明的字段或者方法属于类,
49
* 而this代表的是类的实例(如:this.sex是错误的)
50
*/
51
this.name = name;
52
this.age = age;
53
54
}
55
/**
56
* 方法的重载
57
*
58
* 重载的特点:
59
* 1.方法名都要相同
60
* 2.方法的可以参数不同,返回值可以不同,方法的访问权限可以不同,方法参数不同的几种情况如下:
61
* 重载的几种情况:
62
*
63
* 1.参数的类型不同
64
* 2.参数的个数不同()
65
* 3.参数的顺序不同(参数的列表不同 在C# 中,这种情况没有实际使用价值)
66
* 4.返回类型不同
67
* 5.访问修饰符不同?????????????
68
*/
69
70
public void GetInfo()
71
{
72
Console.WriteLine("这个是无参的方法");
73
}
74
75
public void GetInfo(string name)
76
{
77
Console.WriteLine("姓名是:"+name );
78
}
79
80
public int GetInfo(int age)
81
{
82
Console.WriteLine("年龄:"+age);
83
return age;
84
}
85
86
internal void GetInfo(int age,string name)
87
{
88
Console.WriteLine(" 年龄: " + age + "姓名:" + name);
89
}
90
91
public void GetInfo(string name,int age)
92
{
93
Console.WriteLine("姓名:" + name +" 年龄: " + age );
94
}
95
96
97
98
/* 用static修饰的方法
99
*
100
* 1.static修饰的方法中,不能用this关键字来调用实例字段
101
* 2.static修饰的方法中,也不能直接调用实例字段,如果要调用这些字段,
102
* 要先实例化对象(如 Person p1 =new Person();p1.age=2;)
103
* 3.静态方法中,可以类名调用静态方法
104
*/
105
public static void StaticInfo()
106
{
107
108
109
110
Console.WriteLine("这个方法是一个静态方法");
111
}
112
/**
113
* 析构函数
114
*
115
* 特点:
116
* 1.析构函数前有一个"~",表明是一个析构函数
117
* 2.析构函数的函数名和类名相同
118
* 3.一个类只有一个析构函数
119
* 4.析构函数没有参数
120
* 5.析构函数没有返回值
121
* 6.析构函数没有访问修饰符
122
* 7.析构函数不能重载
123
* 8.析构函数不能实现继承
124
* 9.析构函数是用来清理垃圾的(如:用来清除不再使用的对象)
125
* 10.析构函数不用手动调用,而是由垃圾回收器自动调用
126
*
127
*/
128
~Person()
129
{
130
131
}
132
133
}
134
class Program
135
{
136
137
138
static void Main(string[] args)
139
{
140
Person p = new Person();
141
142
p.GetInfo();
143
Console.WriteLine("\n");
144
145
p.GetInfo("sofie");
146
Console.WriteLine("\n");
147
148
p.GetInfo("sofie", 21);
149
Console.WriteLine("\n");
150
151
p.GetInfo(21,"sofie");
152
Console.WriteLine("\n");
153
154
155
int a = p.GetInfo(12);
156
Console.WriteLine(a);
157
158
}
159
}
160
}
161
162
using System;2
using System.Collections.Generic;3
using System.Text;4

5
namespace oop6
{7
class Person8
{9
public string name;10
public int age;11

12
/**13
* static修饰的字段14
* 15
* 用static修饰的字段,它们属于类,而不属于类的某一个实例,16
* 也就是说,在调用静态字段时,只能通过类名来调用,即(Person.sex)17
* 而不能通过类的某一个实例来调用,而不是(Person person = new Person();person.sex)18
* 2.19
* 如果方法被声明为静态的,也是如此20
*/21
22
23
public static string sex;24

25

26
/**构造方法27
* 特点:28
* 1.与类名相同29
* 2.构造方法一般被声明为public30
* 3.构造方法一般用来初始化成员变量31
* 4.构造方法可以重载32
* 5.构造方法在实例化对象的时候被调用33
* 6.如果类中没有默认构造方法,也没有带参数的构造方法,编译时,将会自动添加一个默认构造方法,34
* 7.如果类中有带参数的构造方法,而没有默认构造方法,则编译器不会再添加默认构造方法,35
* 8.默认构造方法也叫无参构造方法36
*/37
38
public Person()39
{40

41
}42

43
public Person(string name,int age)44
{45
/**46
* this47
* this代表类的实例.48
* 如果一个字段或者方法被声明为static的,则不能用this来调用,因为static声明的字段或者方法属于类,49
* 而this代表的是类的实例(如:this.sex是错误的)50
*/ 51
this.name = name;52
this.age = age;53
54
}55
/**56
* 方法的重载57
* 58
* 重载的特点:59
* 1.方法名都要相同60
* 2.方法的可以参数不同,返回值可以不同,方法的访问权限可以不同,方法参数不同的几种情况如下:61
* 重载的几种情况:62
* 63
* 1.参数的类型不同64
* 2.参数的个数不同()65
* 3.参数的顺序不同(参数的列表不同 在C# 中,这种情况没有实际使用价值)66
* 4.返回类型不同67
* 5.访问修饰符不同?????????????68
*/69

70
public void GetInfo()71
{72
Console.WriteLine("这个是无参的方法");73
}74

75
public void GetInfo(string name)76
{77
Console.WriteLine("姓名是:"+name );78
}79

80
public int GetInfo(int age)81
{82
Console.WriteLine("年龄:"+age);83
return age;84
}85

86
internal void GetInfo(int age,string name)87
{88
Console.WriteLine(" 年龄: " + age + "姓名:" + name);89
}90

91
public void GetInfo(string name,int age)92
{93
Console.WriteLine("姓名:" + name +" 年龄: " + age );94
}95

96
97

98
/* 用static修饰的方法99
* 100
* 1.static修饰的方法中,不能用this关键字来调用实例字段101
* 2.static修饰的方法中,也不能直接调用实例字段,如果要调用这些字段,102
* 要先实例化对象(如 Person p1 =new Person();p1.age=2;)103
* 3.静态方法中,可以类名调用静态方法104
*/105
public static void StaticInfo()106
{107
108
109
110
Console.WriteLine("这个方法是一个静态方法");111
}112
/**113
* 析构函数114
* 115
* 特点:116
* 1.析构函数前有一个"~",表明是一个析构函数117
* 2.析构函数的函数名和类名相同118
* 3.一个类只有一个析构函数119
* 4.析构函数没有参数120
* 5.析构函数没有返回值121
* 6.析构函数没有访问修饰符122
* 7.析构函数不能重载123
* 8.析构函数不能实现继承124
* 9.析构函数是用来清理垃圾的(如:用来清除不再使用的对象)125
* 10.析构函数不用手动调用,而是由垃圾回收器自动调用126
* 127
*/128
~Person()129
{130

131
}132
133
}134
class Program135
{136
137
138
static void Main(string[] args)139
{140
Person p = new Person();141
142
p.GetInfo();143
Console.WriteLine("\n");144

145
p.GetInfo("sofie");146
Console.WriteLine("\n");147

148
p.GetInfo("sofie", 21);149
Console.WriteLine("\n");150

151
p.GetInfo(21,"sofie");152
Console.WriteLine("\n");153
154

155
int a = p.GetInfo(12);156
Console.WriteLine(a);157

158
}159
}160
}161

162



浙公网安备 33010602011771号