c#中的classes和objects一些知识【1】
首先我们需要知道面向对象语言(Object-oriented language)的三大特点:封装(Encapulation),继承(Inheritance),多态(Polymorphism)。
引言:常见的面向对象语言有C++,JAVA,C#等等。首先先定义一个类,方便大家初步去掌握类到底是怎么写的。
public class Students
{
int sid;
int age; //如果不标注private还是public,则默认为private
…………
public void getName(){
……
}
}
类的实例化以及调用是和c++一样的。
对于类前面的访问修饰符,大致有这么几种
- pulic:对于一个放在同一个组合里的其他代码和引用了它的其他组合的代码,都是可以运用此类型并且调用其成员以及成员函数的。
- private:本类中才能访问其成员和成员函数,然而类外面的代码是不可以运用的。
- protected:此类的成员和方法只能被本类中的,或者它的派生类使用,其他不能的(从这样来看,介于public和private之间)。
- internal:此类的成员可以被同一个组合的代码使用,然而不能被其他组合的代码使用。
- protected internal:此类的成员可以被同一个组合的代码使用,或者被任何其它组合中此类的派生类使用。
在以往c++的学习中,已经知道了一些面向对象的知识,此次对C#的学习中,很多东西就可以略过了,不过对于一些常见的错误或者需要注意,不好理解的地方,在此分享给大家:
1、形参和实参的问题: 一个事例说明一下:
这是输出示例,可以看出,实参在传入函数中时候并没有被改变其真正的值,只是把实参的值赋给了形参,然后形参进行了相应的运算,对于实参的值并没有任何影响。然而如果把一个对象传入的话,可以理解为把对象的指针传入,此时,方法内部的操作会影响到对象的属性。
2、this的应用
1.避免混淆: 例如这段小代码:
public void SomeMethod(int parameter){
this.parameter = parameter;
//在此段代码中,当前对象的属性parameter通过这种方式就//可以引用出来,否则会被形参parameter掩盖。
}
2.将当前的对象可以作为一个参数 例如:
return this;
或者是 B.someMethod(this);
3.在一个构造函数执行前,调用重载的构造函数 例如下面代码:
通过示例,可以看出来this可以调用有参数的构造函数去实现无参数的构造函数。
3、静态成员(static members)
a) 静态成员是可以看做类的一部分。因为它可以被类名直接去调用。
b) 静态的方法里面是没有this指针的
c) 静态的方法不可以去使用一个非静态的成员。
4、静态的构造函数
a) 当类被实例化的时候,它是被最先调用的。
b) 静态构造函数前不允许加public,private等修饰符
c) 如果属性只能被赋值一次,这种方法不错。
5、静态类:
a) 不能实例化
b) 不能派生
c) 不能有非静态的成员和方法
d) 然后我实在搞不懂它想干什么……大家可以给我评论也教教我。
c#中的classes和objects一些知识【1】的更多相关文章
- Reloading Java Classes 101: Objects, Classes and ClassLoaders Translation
The original link: http://zeroturnaround.com/rebellabs/reloading-objects-classes-classloaders/ A Bir ...
- Classes as objects
Before understanding metaclasses, you need to master classes in Python. And Python has a very peculi ...
- 【转载】Python编程中常用的12种基础知识总结
Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时间对象操作,命令行参数解析(getopt),print 格式化输出,进 ...
- Python编程中常用的12种基础知识总结
原地址:http://blog.jobbole.com/48541/ Python编程中常用的12种基础知识总结:正则表达式替换,遍历目录方法,列表按列排序.去重,字典排序,字典.列表.字符串互转,时 ...
- SQL Server中的TempDB管理——TempDB基本知识(为什么需要版本存储区)
原文:SQL Server中的TempDB管理--TempDB基本知识(为什么需要版本存储区) 参考资料来自: http://blogs.msdn.com/b/sqlserverstorageengi ...
- react组件中的constructor和super小知识
react组件中的constructor和super小知识 1.react中用class申明的类一些小知识 如上图:类Child是通过class关键字申明,并且继承于类React. A.Child的类 ...
- SQLite3中自增主键相关知识总结,清零的方法、INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用
这篇文章主要介绍了SQLite3中自增主键相关知识总结,清零的方法.INTEGER PRIMARY KEY AUTOINCREMENT和rowid的使用等,需要的朋友可以参考下 一.SQLite清空表 ...
- eclipse中的classes文件夹同步问题
问题: 在同步项目时,由于误操作将classes文件夹加入到了同步版本中,这样会导致每次更新程序编译后,会有很多class文件显示在同步清单中. 解决方案: 将classes文件不设置为同步. 1. ...
- 【Cocos2d-x游戏开发】细数Cocos2d-x开发中那些常用的C++11知识
自从Cocos2d-x3.0开始,Cocos2dx就正式的使用了C++11标准.C++11简洁方便的特性使程序的可拓展性和可维护性大大提高,也提高了代码的书写速度. 下面我们就来一起学习一下Cocos ...
随机推荐
- 【LA2957 训练指南】运送超级计算机【二分,最大流】
题意: 宇宙中有n个星球,你的任务是用最短的时间把k个超级计算机从星球S运送到星球T.每个超级计算机需要一整艘飞船来运输.行星之间有m条双向隧道,每条隧道需要一整天的时间来通过,且不能有两艘飞船同时使 ...
- 【总结整理】AI产品经理大会2017(转载)
从企业大数据到企业 AI | 易观智慧院院长 李智 1.AI 不是目的,而是要了解 AI 是什么,真正意义上的强人工智能在前沿领域尚未取得突破,暂时只能在影视文学作品中去思考人机关系.机器人三定律在未 ...
- ansible playbook模式及语法
一.什么是playbook及其组成 什么是playbook playbook 翻译过来就是"剧本" playbook的组成 play:定义的是主机的角色 task:定义的是具体执行 ...
- Java中的并发工具类:CountDownLatch、CyclicBarrier和Semaphore
在java 1.5中,提供了一些非常有用的辅助类来帮助我们进行并发编程,比如CountDownLatch,CyclicBarrier和Semaphore,今天我们就来学习一下这三个辅助类的用法. 一. ...
- 对max_allowed_packet这个参数的误解
之前一篇文章知识对,这个参数一个泛泛的概念,但是并没有理解这个参数的真正意义,现在差不多有那么点儿感觉了,主要的意思是每一条记录是一个包,不可拆分,而且包括blob,text等大字段.
- spark reduceByKey
reduce(binary_function) reduce将RDD中元素前两个传给输入函数,产生一个新的return值,新产生的return值与RDD中下一个元素(第三个元素)组成两个元素,再被传给 ...
- [SoapUI] 在Test Step 下加Script Assertion,用 messageExchange 获取当前步骤的response content
//Get response content of the current request def response = messageExchange.getResponseContent() // ...
- IIS相关知识和经验的碎片化记录
1.IIS(Internet Information Services)网站本机可以访问,局域网其他机器无法访问 导致这个问题之一是防火墙规则,解决办法如下: [开始]打开[控制面板],选择[WIND ...
- wireshark问题
上一篇wireshark编译成功了,生成了相应的wireshark.exe,dumpcap.exe等可执行文件(这些文件都是可以运行的),编译工具用的是VS2010,但是新生成的文件和文件夹中没有找到 ...
- Exception (3) Java exception handling best practices
List Never swallow the exception in catch block Declare the specific checked exceptions that your me ...