大家好,欢迎大家一起来和我学习C#语言,本人是初学者,说的不好各位莫怪,嘿嘿!

              要学好C#,理解面向对象的编程思想是很重要的,尤其要注重的基础。好了闲话就不多说了,下面就把

                  我在学习C#的过程中遇到的小困难在这里说说,算是自我总结吧,在希望得到高手指点的同时也希望能给

                  其他的初学者一点点帮助....

                                  以下的把两者进行了对比,对初学者来说设计到的知识面可能稍微多了点(因为我也是初学者,所以

                  这么认为啦),在说明两者的区别之前,让我们先看一下以前的两个例子!

                                                                                                                             PS:如果初学者在这里比较觉得困难了,可以复制代码在VS里面运行一下!

                       示例一:

                      

 1 class Employee
 2   {
 3       private int _salary;
 4
 5       public void ComputeSalary()
 6       {
 7           _salary = 1000;
 8       }

 9
10       public void ComputeSalary(int basic)
11       {
12            int hra;
13            Console.Write("\n输入住房津贴:");
14            hra = Int32.Parse(Console.ReadLine());
15            _salary = basic + hra;
16
17       }

18
19       public void ComputeSalary(int basic, bool manager)
20       {
21           int bonusAmt = 0;
22
23           if (manager)
24           {
25              Console.Write("\n输入奖金额:");
26              bonusAmt = Int32.Parse(Console.ReadLine());
27           }

28
29             _salary = basic + bonusAmt;
30
31       }

32
33       static void Main(string[] args)
34       {
35            int basic;
36            Employee objEmp1, objEmp2, objEmp3;
37
38            objEmp1 = new Employee();
39            objEmp1.ComputeSalary();
40            Console.WriteLine("第一位职员的基本工资 : " + objEmp1._salary);
41            objEmp2 = new Employee();
42            Console.Write("\n输入第二位职员的基本工资 :");
43            basic = Int32.Parse(Console.ReadLine());
44            objEmp2.ComputeSalary(basic);
45
46            objEmp3 = new Employee();
47            Console.Write("\n输入第三位职员的基本工资:");
48            basic = Int32.Parse(Console.ReadLine());
49            objEmp3.ComputeSalary(basic, true);
50
51            Console.WriteLine("\n第一位职员的纯工资收入 :" + objEmp1._salary);
52            Console.WriteLine("第二位职员的纯工资收入 :" + objEmp2._salary);
53            Console.WriteLine("第三位职员的纯工资收入 :" + objEmp3._salary);
54        }

55    }

56
57

 

                              示例二:   (这个程序就是用构造函数代替了示例一中的一般方法,并重载了构造函数)    

                            

 1class Employee
 2   {
 3      private int _salary;
 4      public Employee()
 5      {
 6         _salary = 1000;
 7      }

 8
 9      public Employee(int basic)
10      {
11         int hra;
12         Console.Write("\n输入住房津贴:");
13         hra = Int32.Parse(Console.ReadLine());
14         _salary = basic + hra;
15
16      }

17
18      public Employee(int basic, bool manager)
19      {
20          int bonusAmt = 0;
21
22          if (manager)
23          {
24              Console.Write("\n输入奖金额:");
25              bonusAmt = Int32.Parse(Console.ReadLine());
26          }

27
28              _salary = basic + bonusAmt;
29
30          }

31
32          static void Main(string[] args)
33          {
34              int basic;
35              Employee objEmp1, objEmp2, objEmp3;
36
37              objEmp1 = new Employee();
38              Console.WriteLine("第一位职员的基本工资 : " + objEmp1._salary);
39
40              Console.Write("\n输入第二位职员的基本工资 :");
41              basic = Int32.Parse(Console.ReadLine());
42              objEmp2=new Employee(basic);
43
44              Console.Write("\n输入第三位职员的基本工资:");
45              basic = Int32.Parse(Console.ReadLine());
46              objEmp3 = new Employee(basic, true);
47
48              Console.WriteLine("\n第一位职员的纯工资收入 :" + objEmp1._salary);
49              Console.WriteLine("第二位职员的纯工资收入 :" + objEmp2._salary);
50              Console.WriteLine("第三位职员的纯工资收入 :" + objEmp3._salary);
51          }

52    }

53

                                    看完以上的两个例子,可以知道以下两点:

                                                一:声明方式不同

                                                        a. 一般函数声明:[访问修饰符]  返回类型 方法名(参数列表)

                                                                                          { 函数主体 }

                                                         b.构造函数声明:[访问修饰符]  类名(参数列表)

                                                                                           { 构造函数主体 }

                                                 二:运行方式不一样

                                                          a.一般函数在类进行实例化时,还必须手动调用

                                                          b.构造函数在类进行实例化时就已经调用

                                        拓展:构造函数是一种特殊的方法,通常是用来完成类成员变量的初始化操作,但也可以根据需要进行

                                                     其他操作。构造函数名和类名相同没有返回值。类的构造函数还支持重载,不同重载版本提供不

                                                     同的初始化方法。默认情况下,每个类都包含一个不带函数的默认构造函数,在里面讲所有的字

                                                     段清零。如果没有为该类明确定义 构造函数,则使用默认构造函数。

 

posted on 2009-03-12 18:49  Me丶紫龙  阅读(1299)  评论(1编辑  收藏  举报