zoukankan      html  css  js  c++  java
  • c#入门系列——类和对象的代码实现

             面向对象

             说起面向对象,大家因该都听说过,也知道是一个编程的方法,简称oop技术。它将对象的算法和数据结构看作一个整体,而一个程序就是由多个对象结合的整体。这样做可以提高代码的复用率,提高了软件的可维护性。

             属性

             一个对象具有属性和方法,属性用来表述对象或类的特征,比如人的姓名、身高、性别、生日等都属于人的属性。在这里重点介绍下在c#中属性如何定义和使用。

             定义

    //定义属性必须声明类
    public class date 
    {
             //在date类中定义一个格式为int格式的属性,属性名称为day,并为它赋值为7
             private int day=7
             //在这里,属性其实已经定义好了,不过很多属性都是private(私有的除了本类无法访问)所以我们还要给它写一个访问器
             //声明一个访问器,使外部的数据可以读取和修改day的值
             public int day
             {
                      //从属性中得到day的值
                      get
                      {
                             //将day的值返回
                             return day;
                      }
                      set
                      {
                               //将值赋给day,实现修改的功能
                               day=value;
                      }
             
             }
    }
    //如果想要定义只读属性的话,只定义get即可,set访问器不用定义。只写属性类似于只读属性。

             使用

             定义完属性后,就是如何使用的问题了,我们用下面的带码讲述下代码如何使用:

    class program
    {
             static void main(string[] args)
             {
                      //将刚定义的date类实例化
                      date mydate = new date();
                      //给mydate的day属性赋值为3
                      mydate.Day = 3;
                     //在控制台输出myday这个对象的day属性的值,如果没有get这个访问器的话,控制台就无法访问到mydate的day属性。
                     Console.WriteLine(mydate.Day);
             }
    }

             方法

             属性说完了,接下来就是方法了。方法用于实现可以有对象或类执行的计算或操作。方法的声明必须指定方法的 访问级别、返回值、方法名称和方法参数。有的方法没有返回值的则定义为void类型,例如:

             声明

    public void test()
    {
             console.writeline("这是一个测试控制台输出的方法")
    }
             其中,public是访问的级别代表公共访问,是访问级别的一种;void是返回值的类型,void代表无返回值;test是方法的名称;()中应输入方法的参数,该方法不需要传入参数,所以()中是空白。该方法可以在控制台输出一条语句:"这是一个测试控制台输出的方法"。

             重载

             重载方法是指类中有两个以上的同名方法,但是使用的参数类型、参数个数或顺序不同,调用方法时,编译器可以自动判断使用哪种方法。
             下面介绍一下代码的实现:
             
    namespace ConsoleApplication14
    {
        //重载方法的代码实现
        class Program
        {
            //这是第一个方法,定义了方法 add,包括x,y两个参数,两个参数都是int类型的
            public static int add(int x, int y)
            {
                //方法返回值,返回一个int类型的值
                return x + y;
            }
            //第二个方法,同样定义了方法 add,包括x,y两个参数,其中x是int类型,y是double类型
            public static double  add(int  x, double y)
            {
                //方法返值,返回的是double类型的值,运行时系统自动将int(整数类型)转化为double(带小数的一种类型——双精度浮点数)
                return  x + y;
            }
            //第三个方法,方法的名字还是add,不过变成了三个参数
            public static int add(int x, int y, int z)
            {
                return x + y + z;
            }
            //主函数体
            static void Main(string[] args)
            {
                //将program类实例化,只有实例化成为对象后才可以调用方法关于类和对象的介绍可以看我以前的博客
                //           类          对象
                Program Program = new Program();
                //定义参数x为int类型,并给它赋值为3
                int x = 3;
                //定义参数y1为int类型,并给它赋值为4
                int y1 = 4;
                //定义参y2为double类型,并给它赋值为5.5
                double y2 = 5.5;
                //定义参数z为int类型,并赋值为6
                int z = 6;
                
    
                //现在我们将定义好的参数传递给我们的方法,并将返回值输出到控制台
    
                //其中 + 符号代表的是连接符,将前面的字符与后面的字符链接;
                //而“+”代表的是输出字符串,没有实际意义,仅仅是为了输出。
                //如果不太理解可以忽略,不影响对整体的理解。
                //在这里,传入的两个数据都是我们定义好的int类型的所以系统自动选择第一个方法,输出的结果是:3+4=7
                Console.WriteLine (x + "+"  + y1 + "=" + Program .add(x,y1) );
                
                //这里输入的参数为x,y2其中x是int类型,而y2是double类型的
                //系统会自动选择其中的第二个方法输出结果是 3+5.5=8.5
                Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y2));
    
                //这里输入参数为 x,y1,和z 系统会自动选择有三个参数的方法。输出结果是 3+4+6=13
                Console.WriteLine(x + "+" + y1 + "=" + Program.add(x, y1,z));
    
                //让控制台暂停
                Console.ReadLine();
    
            }
        }
        
    }
             这是程序运行后的图片:
             
  • 相关阅读:
    一致性hash 参考:http://blog.csdn.net/cywosp/article/details/23397179/
    动态规划:最长公共子序列和最长公共子串
    并发包(转) http://blog.csdn.net/he90227/article/details/52788981
    海量数据
    MyBatis
    Spring MVC执行流程
    mysql优化
    红黑树
    并发包 (转) http://www.cnblogs.com/wanly3643/category/437878.html
    递增数列中找出和为s的数列
  • 原文地址:https://www.cnblogs.com/liyasong/p/6387885.html
Copyright © 2011-2022 走看看