1 using System;
2 using System.Collections.Generic;
3 using System.Linq;
4 using System.Text;
5 using System.Threading.Tasks;
6
7 namespace ClassDemo
8 {
9 /// <summary>
10 /// 学员类
11 /// </summary>
12 /// 总结:
13 /// 字段:(成员变量)
14 /// 字段主要是为类的内部做数据交互使用,一般是private;
15 /// 字段可以赋值,也可以取值;
16 /// 当字段需要外部提供数据的时候,请将字段封装为属性,而不是使用公有字段,这是面向对象所提倡的;
17 /// 属性:
18 /// 属性一般是向外提供数据,主要用来描述对象的静态特征,所以,一般属性是public;
19 /// 属性可以根据需要设置为只读、只写,提高数据安全性;
20 /// 属性内部可以添加我们需要的业务逻辑,从而避免非法数据;
21 class Student
22 {
23 /// <summary>
24 ///字段:又称为成员变量,一般在类的内部做数据交互使用,所以一般使用private修饰;
25 ///字段命名规范:字段命名一般采用camel命名法,首字母小写
26 ///字段的通俗理解:字段好比我们的个人财产,只供我们自己使用,所以一般是private修饰;
27 ///添加标准:一个类总究竟需要添加几个字段,根据程序编写过程的需要来决定的;
28 /// </summary>
29 //字段:学号
30 private int studentId;
31 //字段:姓名
32 private string studentName = string.Empty;
33 //字段:年龄
34 private int age;
35
36
37
38 /// <summary>
39 /// 属性是外界访问私有字段的入口,属性本身不存任何数据
40 /// 给属性赋值,其实是给属性指向字段的私有字段赋值;
41 /// 读取属性值,其实是获取属性指向的私有字段值或其他值;
42 /// 属性一般首字母大写;
43 /// </summary>
44 //属性:学号
45 public int StudentId
46 {
47 get { return studentId; }
48 set { studentId = value; }
49 }
50
51 //属性:学生姓名
52 public string StudentName
53 {
54 get { return studentName; }
55 set { studentName = value; }
56 }
57
58 //属性:年龄
59 public int Age
60 {
61 //给属性添加约束;
62 get { return age; }
63 set {
64 if (value < 18)
65 age = 18;
66 else
67 age = value;
68 }
69 }
70
71 //方法:获取学员信息;
72 /// <summary>
73 /// 访问修饰符,可以省略,默认private,可以根据需要修改为public
74 /// 方法名,一般是“动词”或“动宾短语”,采用Pascal命名法,首字母大写,不能以数字开头
75 /// 参数列表:根据需要添加,也可以省略,参数列表要求“类型 参数名称”的形式,使用逗号分隔不同的参数;
76 /// 有返回值:使用return返回;return 语句后面不能再有其他语句;
77 /// 没有返回值:如果不返回任何数据,使用viod表示;
78 /// </summary>
79 /// <returns></returns>
80
81 public string GetStudent()
82 {
83 string info = string.Format("姓名:{0} 学号:{1}", studentId, studentName);
84 return info;
85 }
86 //自动属性 prop+tab+tab
87 //适用范围:不能直接操作私有字段,不能设置只读只写属性,不能添加验证逻辑;
88 public int MyProperty { get; set; }
89 }
90 }