第二章:深入C#数据类型

封装:

官方定义:

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

两种体现:

1.把方法和属性封装到类中

2.将私有字段封装成共有属性

封装的优点:

第一:代码重用;

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

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

第四,具有安全性!

数组:

int [] num={1,2}

num:当中保存的是内存中的地址如:0X001

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

下面是一幅引用类型的内存原理图供参考(下面图片会引发部分人不适,请在家长陪同下观看,说白了就是画的丑):

再献上一副数组赋值原理图(只是将栈上的内容赋值一份):

结构体:

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

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

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

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

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

1.如果被struct修饰,那么他就是结构体

2.结构体是一种数据类型,并且他是值类型(枚举也是值类型)

3.有两种特殊的值类型:枚举和结构体

4.当类中属性个数比较少的时候,定义成结构体

public struct Dog
{

}

给大家分析一下引用类型和值类型:

引用类型:栈和堆都开空间

1.string

2.数组

3.接口

4.用户自定义类

值类型:只在栈开空间

1.int

2.double

3.boolean

4.结构体

5.枚举

所有数据类型的父亲都是Object

所有的值类型直接的父亲是ValueType,爷爷是Object

构造函数:

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

1.方法没有返回值,连void都没有

2.方法名和类名相同

构造作用:初始化变量用的

public class Dog
    {
        public string Name { get; set; }
        public int Age { get; set; }

        public Dog(string name, int age)
        {
            this.Name = name;
            this.Age = age;
        }
    }
class Program
    {
        static void Main(string[] args)
        {
            Cat cat;
            cat.name="小白";
            cat.Say();
            Console.ReadLine();

            Dog dog = new Dog("大黄", 15);
        }
    }

装箱和拆箱:

箱子是引用类型,将值类型值装进引用类型变量里就称为装箱

装箱:将值类型(栈)转换成引用类型(栈堆)

拆箱:从引用类型(栈堆)转换成值类型(栈)

什么时候应该装箱,什么时候应该拆箱?

解析:由于装箱和拆箱过程都要损耗系统的性能,所以在开发中应该尽量避免装箱和拆箱。

面试题:

int number=3;   值类型的直接父类:ValueType,ValueType的父亲是Object
Console.WriteLine(number.ToString());

结论:没有装箱

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

值传递和引用传递的区别:有没有ref关键字,有ref是引用传递

 1 class Program
 2     {
 3         static void Main(string[] args)
 4         {
 5             //Cat cat;
 6             //cat.name="小白";
 7             //cat.Say();
 8             //Console.ReadLine();
 9
10             //Dog dog = new Dog("大黄", 15);
11
12
13             int num1 = 1;
14             int num2 = 2;
15             Console.WriteLine("num1="+num1+",num2="+num2);
16
17             //方法调用
18             Change(ref num1, ref num2);
19
20             Console.WriteLine("num1=" + num1 + ",num2=" + num2);
21             Console.ReadLine();
22
23         }
24
25         //方法定义
26         private static void Change(ref int num1, ref int num2)
27         {
28             int temp = num1;
29             num1 = num2;
30             num2 = temp;
31         }
32     }

收工!

时间: 2024-08-28 16:00:33

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

Java 第二章 变量 、数据类型和运算符 笔记

Java 第二章 变量 .数据类型和运算符 一.变量:存储数据的一个基本单元. 二.变量的声明和赋值: 1)声明并赋值:数据类型 变量名=值;      例:int  price=1000; 2)声明.赋值分两步:数据类型 变量名;   例: int  price; 变量名=值;              price=1000; 三.数据类型2种: 1)基本数据类型8种: Byte 长度:-128~127(-2的7次方到2的7次方减1) Short   -2的15次方到2的15次方减1 Int

第二章 变量和数据类型

课时6:数据和数据类型 1.数据及数据类型 数据:指有用的信息 数据类型:对数据的分类 2.C#语言中的数据类型 Char字符类型 单个文字 (汉字,字母,数字,标点符号) 成对英文单引号表示 'A' string字符串类型 不限数量文字 (汉字,字母,数字,标点符号) 成对英文单引号示 "A" int整数类型 (简称整型) 表示一个整数 直接书写 100 double小数类型 表示包含小数点的数字 直接书写 1.1 课时7:认识变量 1.认识变量:一块存储数据的内存空间,并且该内存区

第二章 深入 C# 数据类型

1.封装又称信息隐藏,是指利用抽象数据类型将数据和数据的操作结合在一起,使其构成一个不可分割的独立实体,尽可能的隐藏内部的细节,只保留一些对外接口,使之于外部发生联系. 2.第一:重用; 第二:不必关心具体的实现; (方法) 第三:面向对象三大特征之一; 第四,具有安全性! 3.如果我们定义一个数组,并且赋值了 int[] nums={1,2}; nums当中保存 的是堆中的地址:例如:0x001 nums[0]:访问的是堆中的内容 4.值类型(在栈上存储真实的值)和引用类型(堆和栈上都要分配空

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

1 变量和数据类型 1.1 变量 电脑使用内存来记忆计算时所使用的数据 内存如何存储数据:内存像旅馆一样 开房间(单人间.双人间.总统套间);告诉内存在存放何种类型的数据 入住;存入数据 使用内存做什么:存放数据 怎么找到存入的数据? 根据内在地址可以找到内存空间的位置,但内存地址不好记 通过变量名可以简单快速地找到它存储的数据 1.2 数据类型 1.2.1 Java数据 那么Java中有哪些常用的数据类型呢? 正如前面所讲到的"根据数据的类型为其在内存中分配一块空间",不同的数据在存

第二章 深入C#数据类型

数据类型按存储方式可分为两类: 值类型(源于System.ValueType) 引用类型(源于System.Object) 结构的定义: 结构中可以有字段也可以有方法 定义时,结构中的字段不能被赋初值 结构的使用: 可以不用new,直接定义结构的对象即可 (前提该属性的类型不是数值类型) 声明结构的对象后,必须给结构的成员赋初值 *结构是值类型类是引用类型 结构体中没有默认构造函数,但类中有默认构造函数 装箱和拆箱: 由于装箱和拆箱对系统性能损耗很大,所以在真实的开发中我们尽量避免装箱和拆箱的操

Java第二章总结(数据类型,运算符)

一.高级语言构成 ①数据类型 ②变量 ③运算符,表达式,语句 ④标识符(系统预定义和用户自定义) ⑤语法规则 二.命名规范 1.常量字母全部大写 2.类名首字母大写 3.项目名小写 4.变量名小写,后面有单词的第一个大写 5.见名知意 6.驼峰命名法 三.数据类型 8种基本数据类型和引用数据类型 引用数据类型比如String 常量修饰符final,比如final double PI = 3.14; 基本如下: 四.数据自动类型转换 数字默认int,小数默认double float a = 3.2

第二章 变量,数据类型和运算符心得

数据的类型Java常用数据类型 1.int 2.Double 3.Char 4.String 变量声明及使用 使用声明的变量还是使用变量对应的内存空间存储的数据,但是要记住“变量都必须声明和贬值后才能使用”.因此要想使用一个变量,变量的声明和贬值必不可少. 变量命名规则 1.变量必须以字母,下划线“”或“$”符号开头 2.变量可以包括数字,但不能以数字开头 3.除了“-”或“$”符号以外,变量名不可包含任何特殊符号 4.不能使用java语言的关键字,如int,class,public等 贬值运算

第二章:数据类型和运算符

第二章:数据类型和运算符 计算机中的进制 **标识符 总的命名规则:见名知意.如果有多个单词组成,首单词小写,其余单词的首字母大写(驼峰命名法).1.首字母只能是字母,下划线和$2.其余字母可以字母,下划线,$和数字3.不能使用预留关键字4.严格区分大小写 数据类型*** 基本数据类型 整型 byte(1个字节) short(2个字节) int(4个字节) long(8个字节) 浮点型 float(4个字节) double(8个字节) 字符型 char(2个字节)采用Unicode码 布尔型 b

第二章 Mysql数据类型简介

第二章 Mysql数据类型简介 ·     第一节:整数类型.浮点数类型和定点数类型 整型: ·TinyInt   (1字节) ·SmallInt   (2字节) ·MediumInt  (3字节) ·Int和Integer(4字节) ·BigInt    (8字节) 浮点数和定点数: ·Float   (4字节) ·Double  (8字节) ·Decimal(M,D) <定点数>(M表示总长度<包含小数点>,D表示小数位数) ·      第二节:日期与时间类型 ·Year  

第二章 变量,数据类型和运算符

第二章 &变量,数据类型和运算符 英文新识: double 双精度浮点 string  字符串 character  字母 integer  整数 Scanner  扫描仪 score  分数         name  名字     boolean  布尔   true  真          false  假 语法新知: double score =98.5; //声明双精度浮点型变量score存储分数 String name="张大侠";        //声明字符串型变