C#面向对象---对象成员、方法加载、引用类库
一、方法重载:
1.两个函数同名,就互相构成方法的重载关系
2.重载的函数,必须跟其他函数之间具有不同的参数类型或参数个数
二、字段与属性
类的字段:
类里面是可以直接定义变量的,这些变量就叫类的字段,也叫成员变量。
类的属性(扳手):
本身不存储数据,用来给字段赋值和取值的一个存取过程。可以保护字段。
包含读访问器和写访问器两个函数;
读访问器
get { return Name; }
写访问器
set {
if(value.Length<=3)
Name = value;
}
给字段(成员变量)设置属性:
步骤:右击字段——重构——封装字段
四、静态成员:
不能通过类的对象进行操作,只能通过类名点出使用
类作为模板创建对象后,对象无法直接调用静态成员,但可以通过实例方法访问静态成员(注意:不同的对象的实例方法访问的静态成员是同一个静态成员)。
五、类与对象的区别:
类是一个用户自定义数据类型,是一个模板
对象就是一个根据模板造出来的变量
类与对象的关系是一对多的关系,类就一个,根据这个类可以造N个对象
六、类的构造函数
在vs2012中,名字后面跟一个小括号(),就是一个函数。
创建对象时的语法:Class1 aaa=new Class1();
这里其实new调用了一个函数;
Class1()这是一个函数,每个类里面都默认存在一个,称作构造函数;
构造函数是创建对象的时候类的入口。
构造函数特点:跟类名同名,默认无返回值、无参数、无函数体,可以写重载,具备普通函数的所有功能。
作用:创建对象时,赋予成员变量初始值;
可以进行类与类之间的交互。
七、修饰符:
public 公共的,作用范围是整个命名空间(类库),以及引用了此命名空间的其他地方
private 私有的,只能作用于当前类
protected 受保护的,作用于当前类,以及子类
八、命名空间和类库
(一)命名空间:就像是一个文件夹,是为了区分类存储的地方,一个项目对应一个命名空间。
可以右击解决方案管理器中的解决方案->打开文件夹,查看解决方案中的文件
.sln解决方案,双击打开解决方案
.csproj项目
改动类的命名空间之后,类所在的文件夹发生变化,原先的地方类将不可用,除非加上using+新的命名空间名。
怎样引用新类?
写好类名(不能有错误,区分大小写),鼠标放在类名上,会出现小三角,点击可以添加类所在的命名空间,类就可用了。
引用成功
实质上,命名空间并不是文件夹,改变一个类的命名空间并没有新建文件夹,而是一个程序集,存放了各种各样的类,我们称作类库。
引用命名空间,会将类库编译到项目的Debug文件夹(.DLL )中。
怎样新建一个类库(项目),并在另外一个项目中引用它?
1.新建类库:新建项目->类库;
写好类;
然后右击该项目->生成,
;
该类库的文件夹Debug中出现(.dll)文件,
;
2.在另一个项目中引用类库:右击项目中的引用->添加引用,
在弹出的窗口中,找到类库的Debug文件夹,选择.dll文件;
右击项目->生成,在项目的Debug文件中多生了两个文件,
添加命名空间:using +类库名
就可以调用类了:类库名.类名
调用其它类库的类,其实就是往项目的Debug文件夹中添加上其他类库的dll等文件。
C#面向对象---对象成员、方法加载、引用类库的更多相关文章
- 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间
[源码下载] 速战速决 (5) - PHP: 动态地创建属性和方法, 对象的复制, 对象的比较, 加载指定的文件, 自动加载类文件, 命名空间 作者:webabcd 介绍速战速决 之 PHP 动态地创 ...
- 使用AddLayer方法加载shp文件中使用的Map、Dataset等对象详解
内容源自:ArcGIS Engine+C#入门经典 方法二:使用axMapControl1对象的AddLayer方法加载ShapeFile文件 添加ShapeFile文件需要用到Map.Dataset ...
- 使用ajax()方法加载服务器数据
使用ajax()方法加载服务器数据 使用ajax()方法是最底层.功能最强大的请求服务器数据的方法,它不仅可以获取服务器返回的数据,还能向服务器发送请求并传递数值,它的调用格式如下: jQuery.a ...
- 使用Application.GetResourceStream方法加载资源时得到的总是null
我们可以预先把程序中用到的资源,如图片,音乐等放入项目中,打包进XAP文档,需要的时候从中调用.下面就说说具体实现方法. 第一步,把数据存进项目. 1.右键点击项目名称-添加-新建文件夹(英文版请自行 ...
- MFC使用LoadBitmap方法加载位图文件失败解决方案(转)
用如下方法在原项目中使用LoadBitmap方法加载已有的位图资源作为背景没有问题,但放在别的项目中总是加载不出来,该函数返回NULL HBITMAP hBitmap=LoadBitmap((HINS ...
- phpcms 加载微信类库,生成签名
在phpcms 中 pc_base:load_config(文件名) 用于加载配置文件,配置文件存放于phpcms目录下的caches/configs中 在控制器新增加载微信类库的方法: /** * ...
- SDWebImage使用——一个可管理远程图片加载的类库
SDWebImage使用——一个可管理远程图片加载的类库 SDWebImage使用——一个可管理远程图片加载的类库 SDWebImage托管在github上.https://github.co ...
- 动态加载(异步加载)jquery/MUI类库 页面加载完成后加载js类库
动态加载Mui类库: // ==UserScript== // @name // @version 1.4.0 // @author zzdhidden@gmail.com // @namespace ...
- Java类中的各种成员的加载顺序
//执行顺序:(优先级从高到低.)静态代码块>mian方法>构造代码块>构造方法. 其中静态代码块只执行一次.构造代码块在每次创建对象是都会执行. 1 普通代码块 1 //普通代码块 ...
随机推荐
- redis主从复制原理与优化-高可用
一 什么是主从复制 机器故障:容量瓶颈:QPS瓶颈 一主一从,一主多从 做读写分离 做数据副本 扩展数据性能 一个maskter可以有多个slave 一个slave只能有一个master 数据流向是单 ...
- Maven:Eclipse导入从SVN上检出的Maven多模块工程
大致步骤: 1.从SVN中检出多模块项目,名称随意(Eclipse中可以在[Window ==>>Show View==>>Other==>>SVN==>&g ...
- P3241 [HNOI2015]开店
题解:动态点分治 建立点分树 每个点维护点分树子树内节点到这个节点和父亲节点距离的前缀和 二分查找锁定合法区间 对每个祖先分治中心查询路径和然后减去不合法子树内的路径和 注意:求大量LCA时用树剖 不 ...
- Python时间问题
获取当前的时间,time只能精确到秒,而datetime可以精确到毫秒,所以使用格式化的时候要注意. nowTime=time.localtime((time.time())) t=time.strf ...
- ES6 之 数组的扩展
ES5 检测数组 let arr = [1,2,3,4] Array.isArray(arr) arr instanceof Array 转换方法 arr.toLocaleString() arr.t ...
- 《打造扛得住的MySQL数据库架构》第3章 MySQL基准测试
3-1 什么是基准测试 测量系统性能,优化是否有效?MySQL基准测试. 定义:基准测试是一种测量和评估软件性能指标的活动,用于建立某个时刻的性能基准,以便当系统发生软硬件 变化时重新进行基准测试以评 ...
- 为什么声明了int型的变量并且直接初始化后,int型变量的地址一直在变化?
/************************************************************************* > File Name: ptr_varia ...
- Tensorflow基础笔记
1.Keras是一个由Python编写的开源人工神经网络库. 2.深度学习主要应用在三个大的方向,计算机视觉,自然语言处理,强化学习 3.计算机视觉主要有:图片识别,目标检测,语义分割,视频理解(行为 ...
- cppcheck下载及使用
一.参考文档 1.Ubuntu下安装Cppcheck源码操作步骤 2.cppcheck std.cfg not found error when std.cfg file is available 3 ...
- Java开学测试感想
开学第一堂课就是测试,测试暑假的自学成果,老师说试卷适当提高了难度,所以允许查书和使用网络查询,经过近三个钟头的努力奋斗和痛苦挣扎,我只完成了一小部分的代码,只有简单的set()get()函数,以及简 ...