码迷,mamicode.com
首页 > 其他好文 > 详细

C#基础知识篇(四)-----------C#笔记

时间:2014-08-01 22:48:52      阅读:188      评论:0      收藏:0      [点我收藏+]

标签:style   color   使用   strong   文件   数据   art   ar   

一.类

1. 什么叫做类?

    类是具有相同特征的一类事物统称。所以类是一种抽象,即不是一个实体(我们把类看做模板)。

2. 什么叫做对象?

    对象是根据类的模板创造出来的一个实体,它具有类里所有的特征,一个也多不得,一个也少不得。少了就不叫这个类的成员了,多了也不是!假如张三有变身这个功能,那么张三就不属于人。

    记住对象是根据模板创建的,模板有什么它就有什么,不会多也不会少!

3. 什么叫做字段(或者是成员变量)?

    我们把定义在方法的外面,类的里面(即:类中)的变量称之为字段或者说是成员变量。

4. 类的定义:(通过class关键字创建)

               Class 类名

              {

                 类的成员;
                   }

   注意:类是抽象的不能直接使用,我们只能创建类的对象以后才能使用。(理解:好比类就是我们建房子的图纸,你总不能对你老婆说我买房了,老婆问你房呢?然后你就给她一张纸,后果你想….)

5. 创建类的对象

    语法:类名 对象名=new 类名();

    注意:其中new关键字在上面这句话中做了四件事:

                                                              1> 首先new关键字在堆空间里开辟一块合适大小的空间。

                                                              2> 按照类的模板创建类的对象。

                                                              3> 调用构造函数

                                                              4> 返回对象在堆空间的内存地址。

6. 访问类的成员:

    语法:对象名.成员。通过上述语法来访问类的属性成员和方法。

7. 类的数据类型和this关键字

    a. 根据创建对象的语法和原理(即在内存中的结构)我们可以知道:类是一种引用类型。

    b. this关键字是代表当前实例的(或者当前对象的)。

二.命名空间

1. 命名空间的作用?

    命名空间主要是用于解决类的重名。

2. 快速引进命名空间的方法:类名(保证正确)右键->解析。

3. 如果多个类在同一命名空间我们则不需要using引进命名空间,直接创建对象实例来调用类成员。

4. 我们可以修该默认的namespace名,不要认为在相同文件夹下就不用using,主要看命名空间是否相同,相同就不需要,不相同就要引进命名空间。

5. 在代码中使用其他类的时候,需要using引进类命名空间然后再使用。

三.访问修饰符

一. 类的成员访问修饰符

       1> public 公有的,public是最高权限可以在任何地方访问。

       2> private 私有的,只能在本类中访问。

       3> internal 只能在当前程序集中访问。不能跨程序集访问。

       4> protected 受保护的,只能在本类和子类中访问,除了自己所在的类和子类就不能访问的到。

       5> 注意:类的成员默认访问级别是private

二. 类的访问修饰符

       1> public修饰的类可以在任意地方访问,但还是要遵行:引进命名空间->创建类的对象->访问类的成员。

       2> internal 修饰的类只能在当前程序集中访问。

       3> 注意:如果类没有写访问修饰符,那么默认的则是:internal;记住类没有private和protected修饰符(理解:被private修饰的成员只能被当前类的内部使用,若修饰类则在类的内部访问?

            可有意义?若你写的类不想被访问只想自己用?哪你写类的意义何在?类就是把相同特征的事物封装起来供重复使用),若代码在整个程序中只执行一次完全可写在Main方法中)。

四.属性

一. 语法:

              [访问修饰符] 属性数据类型 属性名

              {

                       get

                       {

                           return 值;

                       }

                       set

                       {

                           字段名 = value;

                       }

              }

              简写:[访问修饰符] 属性数据类型 属性名{get;set;}

二. 属性的赋值和取值

        1> 在set方法中可以通过关键字value得到用户赋的值。

        2> 取值是通过get方法中return返回。

        3> 属性的本质是两个方法。

        4> 属性不能存值,值是存在字段中的。若用简写我们的vs编译器会自动帮我们生成两个私有字段,实质上操作的还是字段。

五.对象的初始化器

一. 语法:

         如:Person p=new Person(){name=”tom”,age=18}

              1> 在大括号中为创建的对象各个属性赋值,每个属性用逗号分隔;

              2> 在使用对象初始化器为对象赋值时,若调用的是无参构造函数时,那么后面的“()”可以省略。

                       例:person p=new person{name=”tom”,age=18}

              3> 后面“()”能省略的前提:

                                                   a.必须是使用对象初始化器为属性赋值。

                                                   b.必须是调用的无参构造函数,有参构造函数就不行会报错。

              4> 对象初始化器可以给对象全部赋值也可以只给部分赋值,还有什么都不做。

                      例:person p=new person{};(是合法的)

六.构造函数

一. 语法:

            [访问修饰符] 类名(参数)

           {

                 函数体;
                }

      1> 访问修饰符一般是public.

      2> 构造函数没有返回值,连void都不用。

      3> 构造函数可以重载(即可带参数),在new对象的时候传递参数即可。

      4> 如果没定义构造函数,则系统会有一个默认的构造函数(无参),如果定义了构造函数(不管有参没参)系统则不会再给我们定义默认的构造函数。

      5> 构造函数在创建对象的时候被new关键字调用执行,构造函数不能被程序员手动调用。构造函数中可以调用普通方法,普通方法不能调用构造函数(只能在创建对象时被new调用)。

      6> 构造函数特点:创建对象的同时构造函数中的代码自动执行。

      7> 构造函数的作用:一般情况下用来给对象的字段或属性赋值。哪怕字段带了初始值这个赋值过程也是在构造函数中来完成的!若没带初始值则在执行构造函数时,给字段赋默认值,

          值类型=0,引用类型=null。即构造函数是用来初始化对象的。

      8> 构造函数之间是可以相互调用的

                                        语法: A构造函数():this(参数)  //B构造函数

                                                {

                                                    方法体;
                                                     }

           根据“:this(参数)“来调用,编译器会根据this后面括号里面的参数来匹配所调用的构造函数。

           执行过程:

                      1> 先调用A构造函数

                      2> 再调用B构造函数

                      3> 先执行B构造函数

                      4> 再执行A构造函数

           注意:在给B(被调用的构造函数)构造函数传参数时,要么给常量值要么给A(本构造函数)构造函数的参数,不能给字段!一个构造函数只能调用一个构造函数(不能掉2个或以上)。

七.部分类

一. 在同一个命名空间下,不能定义多个类名相同的类,因为这样会起冲突。但是在同一命名空间下如果定义了多个类名相同的类但他们都被partial修饰了,这样是可以的。因为他们本质上是同一个类(部分类或者伙伴类)。

       因为C#编译器会把他们编译为一个类,所以你才可以在一个部分类中使用另一个部分类的成员。

二.满足部分类的条件:

      1>在同一命名空间。

      2>类名相同。

      3>类都被partial修饰

三.部分类的作用:方便管理,如:定义一个人类,这个类可能有1万个字段,我们可以把他们放在一个子类中,便于管理和维护。

C#基础知识篇(四)-----------C#笔记,布布扣,bubuko.com

C#基础知识篇(四)-----------C#笔记

标签:style   color   使用   strong   文件   数据   art   ar   

原文地址:http://www.cnblogs.com/goto-Virgil/p/3885815.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!