zoukankan      html  css  js  c++  java
  • c#面向对象基础 静态成员、构造函数、命名空间与类库

    静态成员

      属性、方法和字段等成员是对象实例所特有的,即改变一个对象实例的这些成员不影响其他的实例中的这些成员。除此之外,还有一种静态成员(也称为共享成员),例如静态方法、静态属性或静态字段。静态成员可以在类的实例之间共享,所以它们可以看作是类的全局对象。静态属性和静态字段可以访问独立于任何对象实例的数据,静态方法可以执行与对象类型相关、但不是特定实例的命令,在使用静态成员时,甚至不需要实例化类型的对象。例如,前画使用的Console.WriteLine()方法就是静态的。

     实例成员与静态成员的访问规则:

    ·位于同一类的实例方法可直接相互调用。

    ·实例字段和静态字段可以被同一类的所有实例方法直接访问。

    ·静态方法只能直接访问静态字段。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace leiyuduixiang
    {
        class Program
        {
            static void Main(string[] args)
            {
                Class1.b = 3;
                Class1 cc = new Class1();
                int c = cc.jiafa();
                cc.a = 5;
                Console.WriteLine(c);
    
                Class1.b = 5;
                int d = new Class1().jiafa();
                Console.WriteLine(d);
                Console.ReadLine();
            }
        }
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace leiyuduixiang
    {
        class Class1
        {
            public int a; //普通变量
            public static int b;//静态变量
    
            public int jiafa()
            {
                return a + b;
            }
            public static int jianfa()//静态方法只能直接访问静态字段
            {
                return new Class1().a - b;//要想访问实例数据,要在静态方法中创建对象
            }
        }
    }
    

     

    构造函数

       所有的对象都有一个默认的构造函数,该函数没有参数,与类本身有相同的名称。一个类定义可以包含几个构造函数,它们有不同的签名,代码可以使用这些签名实例化对象。带有参数的构造函数通常用于给存储在对象中的数据提供初始值。

      在C#中,构造函数用new关键字来调用。例如,可以用下面的方式实例化一个CupOfCoffee对象:

          CupOfCoffee myCup = new CupOfCoffee();

      对象还可以用非默认的构造函数来创建。与默认的构造函数一样,非默认的构造函数与类同名,但它们还带有参数,例如:

          CupOfCoffee myCup = new CupOfCoffee(“Blue Mountain”);

      构造函数与字段、属性和方法一样,可以是公共或私有的。在类外部的代码不能使用私有构造函数实例化对象,而必须使用公共构造函数。—些类没有公共的构造函数,外部的代码就不可能实例化它们。

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace gouzaohanshu
    {
        class Program
        {
            static void Main(string[] args)
            {   //每个类都至少有一个构造函数,名字与类名同名
                //凡是造对象,都是通过调用构造函数造出来的
                //一般用于给成员赋初始值
                //用于跨类之间数据传输
                Class1 c = new Class1("lisi");//通过构造函数来构造初始化对象
                Console.WriteLine(c.name);
    
                Class1 d = new Class1();
                d.name = "wangwu";
                Console.WriteLine(d.name);
                Console.ReadLine();
            }
        }
    }
    
    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    
    namespace gouzaohanshu
    {
        class Class1
        {
            public Class1(string values) //方法重载,参数类型不同
            {
                name = values;
            }
            public Class1()
            {
    
            }
    
            public string name;
        }
    }
    

    命名空间与类库

      命名空间可以看成是类的“容器”,它可以包含多个类,一般引用方法就是在源代码开头使用using语句。命名空间可以嵌套,

    声明方法:最外围命名空间  内层命名空间.类名 自定义名 = new 最外围命名空间  内层命名空间.类名();

      类库相当于一个程序集——为了提高软件开发的效率,人们在整个软件开发过程中大量应用了软件工程的模块化原则,重用已有模块,再开发部分新模块,最后将新旧模块组装起来。

    类库的建立方法:

    (1)在解决方案上单击右键,按图示点击"新建项目……"

    (2)选择类库,给类库一个名字,选择好保存位置,点击确定

    (3)建立成功后在类库中写上所需要的方法,然后进行引用——1、在引用中添加类库   2、在代码中写上using语句。

      区分类库项目、程序集、命名空间这三者的方法:

    (1)每个类库项目编译之后,将会生成一个程序集

    (2)类库项目中可以拥有多个类,这些类可属于不同的命名空间

    (3)不同的类库项目可以定义相同的命名空间

      

      总的来说,“命名空间”是一个逻辑上的概念,它的物理载体是“程序集”,具体体现为“DLL”(或EXE)文件。

      在visual studio中,可以通过创建“类库”类型的项目生成程序集。

      一个程序集可以有多个命名空间,而一个命名空间也可以分布于多个程序集。

  • 相关阅读:
    使用 EasyBCD 安装Ubuntu 14.04 Error 15: file not found错误的解决方法
    浅谈程序猿的职业规划,看你如何决定自己的未来吧。
    [转载]DOS循环:bat/批处理for命令详解 (史上虽详尽的总结和说明~~)
    bat 批处理 字符串 截取
    window上使用GIT的个人经验(入门级)
    Android 访问 wcf
    解决 MyEclipse 10 中 JSp页面 “return false” 报错问题
    微信公共平台(码农在努力)
    Spring Cloud 中使用 Zipkin 追踪服务
    Spring Cloud Config 分布式配置中心
  • 原文地址:https://www.cnblogs.com/jiangshuai52511/p/5067154.html
Copyright © 2011-2022 走看看