C# 基础(4)
Ref 按地址传递,引用传递;即可以往外返值,也可以对内传值。
Out是用于传出值,
Ref是双向的,即可以传入,也可以传出。
在传参过程中,如果参数有out,那么改变方法中参数的值,调用者方法中变量的值也会相应的改变。
面向对象的概念
万物皆对象,想方法用程序代码来描述
对象是实实在在的一个物体
属性
对象具有各种特征
每个对象的每个属性都有特定的值
方法
行为、动作、执行的操作
类
类是模子,确定对象将会拥有的特征(属性)和行为(方法)。
类是对象的类型。
类和对象的区别
类是抽象的概念,仅仅是模板。
对象是一个你能够看得到,摸得着的具体实体。
对象可以叫做类得实例。
类不占内存,对象才占内存。
类的定义
[访问修饰符]class 类名
{
成员-》类的属性和方法
}
.cs是类的文件
一般情况下,类名与.cs类文件名相同。
在我们自己写的类中,我们在写方法时,先不加static
类的实例化
用关键字new
在Main()方法中,
类名 实例名= new 类名();实例名或称对象名
访问类的属性
累的属性也就是一个变量。
实例名.属性
访问类的方法
实例名.方法名()
注意:
只要是没有加static的方法或者是属性,都必须先实例化,再通过实例名.方法名()或是实例名.属性类访问。
加static的方法或者是属性,可以直接通过类名.方法名()或类名.属性类访问。
//仅仅是定义了一个类而已,我们定义了一个叫person的类,这个类是人这个对象的模板
//在这个模板中规定了人类对象都应该有姓名 性别 年龄和SayHello方法
class Person
{
public string name;
public char sex;
public int age;
public void SayHello()
{
Console.WriteLine("我是{},我是{}生,我今年{}岁了",name ,sex ,age);
}
}
属性
public int Age //定义一个变量,在这个变量中含有get/set两个方法,我们就叫做属性
{
get
{
return age;
}
set
{
//这里有个关键字value,value中就是存储用户赋的那个值
if(value >=0)
{
age = value;
}
}
}
允许外部访问的变量一定要声明为属性。
属性有三种:
1) 读写属性
具有get/set方法的属性
2) 只读属性
只有get方法,只能读取
3) 只写属性
只有set方法,只能写入
注意:当我们实例化时,系统会自动对这个类的属性进行初始化。
数字类型初始化为0/0.0
String 类型初始化为null
Char 类型初始化为\0
构造方法
使用构造方法有什么好处呢?
1) 对多个属性进行赋值时,不需要重复实例名。
2) 可以保证用户在new一个对象时,必须对某个属性进行赋值。
3) 在创建对象时,对只读属性进行初始化。
当我们定义一个类之后,如果我们没有写构造方法,那么系统会自动给我们加上一个默认的没有参数的构造函数,在这个构造方法中,什么也不做,我们什么也看不到。
我们可以定义一个构造方法:
构造方法是一个特殊的方法,它的名称与类名相同,并且没有返回值,连Void都可以省略不写。但是当我们手写一个构造函数后,系统默认添加的那个无参数的构造函数就不会再给我们添加了。
如果要实例化类,必须得调用构造函数。
构造方法的重载:
与方法的重载类似。
认识类图(通用类图)
|
类名 student |
|
-age:int -私有private -name:string +Name:string +Public |
|
+SayHi(): void 方法 |
在c#中, 可以直接生成类图
析构函数(C#不用,C#中有专门的垃圾回收器)
~Student();
在C++中的作用是对内存进行清理
于2012-03-06整理
C# 基础(4)的更多相关文章
- java基础集合经典训练题
第一题:要求产生10个随机的字符串,每一个字符串互相不重复,每一个字符串中组成的字符(a-zA-Z0-9)也不相同,每个字符串长度为10; 分析:*1.看到这个题目,或许你脑海中会想到很多方法,比如判 ...
- node-webkit 环境搭建与基础demo
首先去github上面下载(地址),具体更具自己的系统,我的是windows,这里只给出windows的做法 下载windows x64版本 下载之后解压,得到以下东西 为了方便,我们直接在这个目录中 ...
- js学习笔记:webpack基础入门(一)
之前听说过webpack,今天想正式的接触一下,先跟着webpack的官方用户指南走: 在这里有: 如何安装webpack 如何使用webpack 如何使用loader 如何使用webpack的开发者 ...
- Golang, 以17个简短代码片段,切底弄懂 channel 基础
(原创出处为本博客:http://www.cnblogs.com/linguanh/) 前序: 因为打算自己搞个基于Golang的IM服务器,所以复习了下之前一直没怎么使用的协程.管道等高并发编程知识 ...
- [C#] C# 基础回顾 - 匿名方法
C# 基础回顾 - 匿名方法 目录 简介 匿名方法的参数使用范围 委托示例 简介 在 C# 2.0 之前的版本中,我们创建委托的唯一形式 -- 命名方法. 而 C# 2.0 -- 引进了匿名方法,在 ...
- HTTPS 互联网世界的安全基础
近一年公司在努力推进全站的 HTTPS 化,作为负责应用系统的我们,在配合这个趋势的过程中,顺便也就想去搞清楚 HTTP 后面的这个 S 到底是个什么含义?有什么作用?带来了哪些影响?毕竟以前也就只是 ...
- Swift与C#的基础语法比较
背景: 这两天不小心看了一下Swift的基础语法,感觉既然看了,还是写一下笔记,留个痕迹~ 总体而言,感觉Swift是一种前后端多种语言混合的产物~~~ 做为一名.NET阵营人士,少少多多总喜欢通过对 ...
- .NetCore MVC中的路由(1)路由配置基础
.NetCore MVC中的路由(1)路由配置基础 0x00 路由在MVC中起到的作用 前段时间一直忙于别的事情,终于搞定了继续学习.NetCore.这次学习的主题是MVC中的路由.路由是所有MVC框 ...
- .NET基础拾遗(5)多线程开发基础
Index : (1)类型语法.内存管理和垃圾回收基础 (2)面向对象的实现和异常的处理基础 (3)字符串.集合与流 (4)委托.事件.反射与特性 (5)多线程开发基础 (6)ADO.NET与数据库开 ...
- .NET 基础 一步步 一幕幕[面向对象之方法、方法的重载、方法的重写、方法的递归]
方法.方法的重载.方法的重写.方法的递归 方法: 将一堆代码进行重用的一种机制. 语法: [访问修饰符] 返回类型 <方法名>(参数列表){ 方法主体: } 返回值类型:如果不需要写返回值 ...
随机推荐
- Python基础篇【第2篇】: Python内置函数(一)
Python内置函数 lambda lambda表达式相当于函数体为单个return语句的普通函数的匿名函数.请注意,lambda语法并没有使用return关键字.开发者可以在任何可以使用函数引用的位 ...
- 使用AJAX完成用户名是否存在异步校验
一.JSP代码: 1.事件触发:onblur 2.编写AJAX代码:向Action中提交,传递username参数 <script> function checkUsername(){ / ...
- shell基础
1.显示当前登录linux系统的用户 2.当用户登录到linux系统后,一旦出现提示符时,便可以输入操作命令了.命令可以分为如下两类: (1).bash内置的命令: (2).应用程序. 怎么知道哪些指 ...
- 编程工具系列之二------使用GDB的源代码查看功能
在调试程序的过程中,可以自由地查看相关的源代码(如果有源代码的话)是一项最基本的特性. 一些IDE在这方面做得相当好,GDB当然也提供了这项特性,虽然不如IDE直观,但在一定程度上要比IDE ...
- python类及其方法
python类及其方法 一.介绍 在 Python 中,面向对象编程主要有两个主题,就是类和类实例类与实例:类与实例相互关联着:类是对象的定义,而实例是"真正的实物",它存放了类中 ...
- Excel—“撤销工作表保护密码”的破解并获取原始密码
您是否遇到过这样的情况:您用Excel编制的报表.表格.程序等,在单元格中设置了公式.函数等,为了防止其他人修改您的设置或者防止您自己无意中修改,您可能会使用Excel的工作表保护功能,但时间久了保护 ...
- python3内置函数详解
内置函数 注:查看详细猛击这里 abs() 对传入参数取绝对值 bool() 对传入参数取布尔值, None, 0, "",[],{},() 这些参数传入bool后,返回False ...
- 关于thinkphp 中的字段自动检查机制
在thinkphp中有很好用的自动检查机制$_validate() 但是必须与create接收配合使用 可以很方便的帮助我们去判断 namespace Home\Model;use Think\Mod ...
- angular学习笔记,很乱哈哈。
1.鼠标悬浮出现的信息v-bind:title="message" 2.对该便签进行结果判断显示隐藏v-if=''控制台设置 app3.seen = false(消失).控制台设置 ...
- Yarn&Mapreduce参数的具体含义和配置参考
Yarn & Mapreduce 参数的具体含义和配置 http://zh.hortonworks.com/blog/how-to-plan-and-configure-yarn-in-hdp ...