《C#入门详解》刘老师 初识类与名称空间&类,对象,类成员简介

初识类与名称空间

一、如果我们写一个类,没有把这个类的名称空间是哪个标出来的时候,就从引用的名称空间里检索,看到哪个名称空间里有这个类;

             1.Using把名称空间引用进来;

           2.一个solution里可以有多个项目(Project);

           3.名称空间就是以树形结构组织类;

           4.我们编写了一个类“program”放在“namespace helloworld”这个名称空间里,意思是我自己写了一个类,当别人调用我们这个类的时候,可以从我们的名称空间里找到这个类。

namespace helloworld
{
 
   class program
   {
     static void main(string[] args)
      {
        System.console.writeline("hello , world!");
      }
    }
}
using system;
namespace helloworld
{
 
   class program
   {
     static void main(string[] args)
      {
      /*  System.console.writeline("hello , world!");  */
         
        console.writeline("hello , world!");

      }
    }
}

 

 

 

 

 

二、类库的引用

  • 类与名称空间放在类库里,类库引用是使用名称空间的物理基础(类库也叫程序集Assembly)

 

 

  • 对类库的引用有两种方式:1、DLL引用(黑盒引用,无源代码)NuGet简介     2、项目引用(白盒引用,有源代码)

                1.黑盒引用可以在对象浏览器里看到有里面有哪些类,一般配合文档使用相应的类

 

类,对象,类成员简介

一、类与对象的关系

  • 对象也叫实例,是类经过“实例化”后得到的内存中的实体

     1.对象和实例是一回事

     2.有些类是不能实例化的,比如“数学”,我们不能说一个“数学”

  • 依照类,我们可以创建对象,这就是“实例化”

    1.现实世界中常称“对象”,程序世界中常称“实例”

     2.例子:(集合的关系)

     人是一个类  有身高  年龄   属性
     公交车是一个类    有乘客  座椅   属性
 
                人就相当于公交车中的  乘客
               人就是一个属性
               车里装的人   又有年龄属性

 

 

  • 使用new操作符创建类的实例

      1.实例化过程就是创建一个对象,关键词“new”。类是不占内存的,但是创建一个对象后,会开辟一个内存。

  • 引用变量与实例的关系

     1.孩子与气球

       2.气球不一定有孩子牵着

       3.多个孩子可以使用各自的绳子牵着同一个气球,也可以都通过一根绳子牵着气球

 

 Form 
/*一个类*/


 new Form();
/*一个Form类的实例就创建了;圆括号表示的意思当这个实例诞生后,用什么样的方法去对它进行初始化,叫做构造器*/


 (new Form()).showDialog();
/*创建完了一个实例,然后调用它的方法*/


(new Form()).showDialog();
(new Form()).Text = "My Form";
/*这边是创建了两个实例,第一个实例是展示,第二个实例是有一个title*/


Form myForm;
myForm = new Form();
myForm.Text = ''My Form'';
myForm.showDialog();
/*引用变量连续的操作同一个实例,这里能显示title也能展示*/


Form myForm1;
Form myForm2;
myForm1 = new Form();
myForm2 = myForm1;
myForm1.Text = "My Form";
myForm2.ShowDialog();
/*多个孩子可以使用各自的绳子牵着同一个气球,这边的两个引用变量引用的是同一个实例*/



 

二、类的三大成员

  • 属性

   1.存储数据,组合起来表示类或对象当前的状态

  • 方法

   1.由C语言函数进化来,表示类或对象“能做什么”

  • 事件

   1.类或对象通知其他类或对象的机制,为C#所特有(Java通过其他办法实现这个机制)

   2.善用事件机制非常重要

  • 某些特殊类或对象在成员方面侧重点不同

   1.模型类或对象重在属性,如Entity Framework

   2.工具类或对象重在方法,如 Math , Console

   3.通知类或对象重在事件,如各种Timer

  •  Notice--一个例子

         A类中直接实例化B类,然后调用B类的方法不行吗?

 
public class SuperMarket
{
//初始化仓库
CangKu ck = new CangKu();//为什么在下边用ck .不出方法来,但是在SuperMarket的构造函数里就可以???????

public SuperMarket()
{
ck.DaoRuGoods("Acer", 1000);
ck.DaoRuGoods("IPhone", 1000);
ck.DaoRuGoods("Cannoon", 1000);
ck.DaoRuGoods("CocaCola", 10000);
}
}
QUESTION:
如代码所示,我直接在实例化后边用ck .不出方法来,是怎么回事?

ANSWER:

要调用B实例的方法要在A的方法里,不能直接在类里调用。

你要调用,也要在函数内部使用实例去调用,你的写法是在类里面,类里面可以new一个变量,但是不能直接使用这个实例
 
 
 

 

 

三、静态成员与实例成员

  • 静态成员在语义上表示它是“类的成员”

  • 实例(非静态)成员在语义表示它是“对象的成员”

  • 绑定指的是编译器如果把一个成员与类或对象关联起来

          1.不可小觑的“  .  ” 操作符------成员访问

 

 

 

 

           

 

posted @ 2020-09-18 23:03  遥想公瑾  阅读(353)  评论(0编辑  收藏  举报