快捷搜索:  as  2018  FtCWSyGV  С˵  test  xxx  Ψһ  w3viyKQx

澳门新葡亰app在线下载:【UML入门】8、包图Package



小序

在windows中文件夹有什么感化?

1、 对文件进行分类治理

2、避免了命名冲突

包的感化

一个法度榜样每每包孕了很多类,那么若何治理这些类就成了一个必要办理的问题(分组机制)。

这些类可能由不合的法度榜样员进行建立,当把这些类合并成一个大年夜系统时,每每会孕育发生命名冲突(类名冲突)。

包的两个感化:分组机制,命名空间。

ja澳门新葡亰app在线下载v澳门新葡亰app在线下载a:包(package)

c#:命名空间(namespace)

c#中定义命名空间:

namespace 命名空间名{......}

c#中引入命名空间:

using 命名空间名;

命名空间的嵌套

法度榜样中的命名空间就犹如文件和文件夹。文件夹包孕许多文件和其他文件夹,同样,命名空间也可以包孕其他命名空间。

namespaceN1

{namespace N2

{classClassA{…… }

classClassB{…… }}

……}

法度榜样演示:命名空间(code/space)

namespace space1//第一个命名空间

{class DownCount//倒数计数器

{int v;

public DownCount(int n){

v = n;}

public void reset(int n) //计数器置初始值{

v = n;}

public int count()//倒数计数措施{

if (v > 0) return v--;else return 0;

}}

//在此可建立其他的类}

namespace space2//第二个命名空间

{class UpCount//正数计数器

{private int v;

public int goal;public UpCount(int n)//从0至n输出

{goal= n;

v = 0;}

public void reset(int n){

goal = n;v = 0;

}public int count()

{if (v

return v++;else

return goal;}

}//在此可建立其他的类

}

using System;

using System.Collections.Generic;using System.Text;

using space1;using space2;

namespace space3//第三个命名空间{

class Program{

static void Main(string[] args){

DownCount dc = new DownCount(10);//倒数计数器工具

UpCount uc = new UpCount(10);//正数计数器工具}

}}

假如去掉落using space1;using space2;

这两行应这样写:

space1.DownCount dc = new space1.DownCount(10);

s澳门新葡亰app在线下载pace2.UpCount uc = new space2.UpCount(10);

包的符号

包的内容组织

提示:一个元素只能属于一个包

包内元素的可见性

public(+):可在其他任何包中应用

private(-):只能在该包中应用

protected(#): 可以在该包和该包的子包中应用

包的导入

当包A将包B导入时,包A中的元素可以直接造访包B中的元素,而不必在每次应用时用完备的路径名。

导入包时应留意的几个问题

namespaceN1

{classclass A

namespace N2{

classclassB{…… }classclassC{…… }

}namespace N3

{classclassB{…… }

classclassD{…… }}

}

未导入时,应应用完全限制名:

N1.N3.classDd=new N1.N3.classD();

问题1:using语句只能导入命名空间中的类型成员,不能导澳门新葡亰app在线下载入命名空间中的嵌套命名空间。

using N1

namespace N4{

//只能应用classA}

问题2:在相同的命名空间中不能存在名称相同的类或命名空间;假如类或命名空间位于不合的命名空间中,它们可以具有相同的名字。

namespaceN1

{classclass A

namespace N2{

classclassB{…… }classclassC{…… }

}namespace N3

{classclassB{…… }

classclassD{…… }}

}

问题3:一个命名空间可在多个源代码文件中多次声明,然则,只要它们的完全限制名相同,就认定是同一个命名空间。

namespaceN1

{classclass A

namespace N2{

classclassB{…… }classclassC{…… }

}}

namespaceN1

{namespace N3

{classclassB{…… }

classclassD{…… }}

}

问题4:假如应用using语句导入的多个命名空间中包孕了同名的类,则不能直接经由过程类型名来应用这些类,以是要应用类型的完全限制名

usingN1.N2;//引入N1

usingN1.N3;//引入N2namespaceN3

{class N1.N2 .ClassB……

class N1.N3 .ClassB……}

包图的Rose建模

1、新建包

2、向包中添加类

措施1:在"浏览器"中将已经存在的类拖到包中

措施2:在"浏览器"中新建类措施:右击包名->new->class

3、设置类在包中的可见性

措施:在浏览器中双击类,弹出下窗,在Export Control里澳门新葡亰app在线下载面选择:

4、将包拖到绘图区

5、 显示包中的元素

总结

包图的相关就先容到这里,包图按字面意思也好理解,更像一个容器。

您可能还会对下面的文章感兴趣: