第二章 深入 C# 数据类型

1.封装又称信息隐藏,是指利用抽象数据类型将数据和数据的操作结合在一起,使其构成一个不可分割的独立实体,尽可能的隐藏内部的细节,只保留一些对外接口,使之于外部发生联系。

2.第一:重用; 

第二:不必关心具体的实现; (方法)

第三:面向对象三大特征之一; 

第四,具有安全性!

3.如果我们定义一个数组,并且赋值了

int[] nums={1,2};

nums当中保存 的是堆中的地址:例如:0x001

nums[0]:访问的是堆中的内容

4.值类型(在栈上存储真实的值)和引用类型(堆和栈上都要分配空间)

5.结构体

             /01.结构体不用new,就可以直接对其属性赋值

             02.结构体中可以有字段,属性和方法

             03.结构体是值类型,类是引用类型

             04.在结构体中不能给字段赋初值,但是类中可以.

             05.结构体中没有默认构造函数,但类中有默认构造函数

             /

默认如果定义了一个类,系统会自动的生成一个和该类名称相同,并且没有返回值类型,甚至连Void都没有的

方法,该方法就称为构造函数!

Student stu=new Student();

注意问题:值类型的直接父类都是ValueType,而ValueType又继承自Object

特殊的值类型:枚举和结构体

特殊的引用类型:数组和接口

6.装箱和拆箱

由于装箱和拆箱对系统性能损耗很大,所以在真实的开发中我们尽量避免装箱和拆箱的操作。

7.值类型传递和引用类型传递

方法的参数是值类型和引用类型

注意:值传递和引用传递判定依据是有没有ref

01.如果方法的参数类型本身就是引用类型,那么对参数值的修改会永久保存

例如:public void TP(SE se)

{

    se.Count++;//真正的修改se对象的Count值

}

02.如果方法的参数类型本身是值类型,又没有ref修饰,那么对参数值的修改,不会永久保存()

03.如果方法的参数类型本身是值类型,但是有ref修饰,那么对象参数值的修改,也会永久保存。

值类型传递 :不带ref的参数传递   SE se

引用类型传递:带ref的参数传递 

第二章 深入 C# 数据类型的更多相关文章

  1. Java 第二章 变量、数据类型和运算符

    第二章      变量.数据类型和运算符 什么是变量: 变量代表一块内存区域,变量类型不一样,这一块内存的大小也不一样. #在编程语言里面,你可以通过定义变量,向内存里添加数据或者修改内存已有的数据. ...

  2. 第二章 C#基本数据类型

    第一节 1-关键字和标识符关键字:会不同颜色显示标示符:由字母.中文.数字.下划线组成,不能以数字开头,不能是关键字,不能含有特殊符号,如:@,$思考:下列哪些是合法的标识符?a1.1a.a_b._1 ...

  3. Python开发【第二章】:数据类型

    基本数据类型 一.整型 如: 18.73.84 整型具备如下功能: class int(object): """ int(x=0) -> int or long i ...

  4. Python第二章-变量和数据类型

    变量和数据类型 一.什么是变量,常量 思考:程序执行指的是什么? 对数据进行存储处理和计算,最终获得结果,这是程序执行的本质. 变量的概念和在数学中的变量的概念一样的,只是在计算机程序中,变量不仅可以 ...

  5. 学JAVA第三天,JAVA第二章《JAVA数据类型》

    ---恢复内容开始--- <JAVA数据类型> 我们一般都用int类型,因为int类行一般的日常生活的数据都能满足了. 当然,想李嘉诚,马云这种有钱人,int类行就不能满足帮他记钱的了,像 ...

  6. 第二章 深入C#数据类型

    深入C#数据类型       巧记:值(无ref)+值=不变 值(无ref)+引=变     引(有ref)+值/引=变     1.值类型和引用类型 1.引用类型 源于system.object家族 ...

  7. Java基础知识笔记第二章:基本数据类型与数组

    标识符和关键字 标识符: 1:字母,数字,下划线,美元符号 2.不能以数字开头 3.标识符不能是:true   false   null(尽管true   false   null不是java的关键字 ...

  8. C#本质论读书笔记:第一章 C#概述|第二章 数据类型

    第一章 1.字符串是不可变的:所有string类型的数据,都不可变,也可以说是不可修改的,不能修改变量最初引用的数据,只能对其重新赋值,让其指向内存中的一个新位置. 第二章 2.1 预定义类型或基本类 ...

  9. Mysql技术内幕-笔记-第二章 数据类型

    第二章 数据类型 Mysql中尽量不要使用UNSIGNED,因为可能会带来一些意想不到的效果 SHOW CREATE TABLE tablename\G;查看表的创建语句 ZEROFILL会将宽度小于 ...

随机推荐

  1. Angular解决双向数据绑定

    <!DOCTYPE html> <html ng-app="myApp1"><body><div ng-controller=" ...

  2. SQL数据库

    SQL是Structured Query Language(结构化查询语言)的缩写.SQL是专为数据库而建立的操作命令集,是一种功能齐全的数据库语言.在使用它时,只需要发出“做什么”的命令,“怎么做” ...

  3. AD帐户操作C#示例代码(二)——检查密码将过期的用户

    本文接着和大家分享AD帐户操作,这次开发一个简单的检查密码将过期用户的小工具. 首先,新建一个用户实体类,属性是我们要取的用户信息. public class UserInfo { /// <s ...

  4. Qt 4.x调试器问题,缺失调试助手。

    之前项目开发需要用到4.x环境,固定多少版本避免团队开发不协调,然后拿了同事的开发包安装[注:我本子上原来就有4.x版本跟5.x版本,只是对应的4.x跟需求的不一样] creator是2.4.1的,同 ...

  5. Fragment要点复习

    做系统时间久了,应用层的很多东西都忘了,但是基础还是得巩固,下面对fragment相关的知识点简单整理一下. 一.fragment的引入 fragment是从Android3.0(API level ...

  6. eclipse 配色方案

    http://www.blogjava.net/kuuyee/archive/2013/02/26/395728.html

  7. ubuntu安装日文分词软件MeCab及其Python插件

    1.从官网上下载三个包: http://taku910.github.io/mecab/ mecab-0.996 mecab-0.996.tar.gz mecab-ipadic-2.7.0-20070 ...

  8. 选择排序-java

    排序-选择排序 基本思想:在待排序子表中找出最大(小)元素, 并将该元素放在子表的最前(后)面. 平均时间:O(n2) 最好情况:O(n2) 最坏情况:O(n2) 辅助空间:O(1) 稳定性:不稳定 ...

  9. 工作随笔——Swift中的Range和一些字符操作

    截取字符串在Swift中相比OC要复杂很多,主要原因可能还是OC的NSRange的创建方法中参数类型为int,而Swift却对类型要求很严格,int不能作为参数创建Range,这要使用String中的 ...

  10. 关于Apache日志的统计

    统计apache日志文件里访问量前十的ip并按从多到少排列 五月 31, 2012 by FandLR   Filed under Linux Leave a comment 解法1: cat acc ...