其他分享
首页 > 其他分享> > C01面向对象之类与对象

C01面向对象之类与对象

作者:互联网

笔记整理

笔记内容有:

类与对象

1在代码世界中,一定是先有类,才可以根据这个类的模板来创建对象.

 

2.  如何定义类呢?

             *     类的作用: 用来描述1群具有相同特征和功能的事物.

             *               用来类定义这类事物具有哪些特征和功能

             *     定义类的位置: 定义在命名空间下面

             *     定义类的语法:

             *     class 类名

             *     {

             *        

             *     }

类中应该写些什么东西?

             *          类中写上这类事物具有的共同的特征和行为.

             *          将这类事物的共同的特征定义为这个类的成员变量.

             *          将这类事物拥有的共同的行为定位这个类的方法.

             *          需要注意的是,我们自己定义的类中的 成员变量和方法不要加

Static

3. 类是抽象的,所以类中的变量啊方法啊是不能直接使用的.

             *    如果你非要使用. 那么你必须找到这个类中的1个具体存在.

             *    然后使用这个具体存在.

   如果我们找到了这个类中的1个对象,

             *    这个对象拥有什么特征和行为: 类中所有的特征和行为这个对象都拥

 

4. 如何找到类中的1个具体存在呢?

             *    如何根据类的模板来创建1个对象呢?

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

             *    Person p1 = new Person();

             *    当CPU执行到这句话的时候,就会根据Person模板创建1个p1对象.

             *    p1对象中拥有Person类模板中定义的成员变量和方法.

             *    p1对象中有Eat方法.Walk方法 还有3个成员变量.   

         ** 5. 如何访问对象中的东东?

             *    语法:  对象名.方法名();

             *           对象名.成员变量=数据 赋值或者取值.

            6. 凡是定义在中的东东,我们把他们称之为类的成员.

             *    成员变量: 是用来描述这类事物具有的共同的特征. 也叫做字段或者成员字段.

             *    方法:是用来描述这类事物具有的共同的行为, 也叫做成员方法.

7. 定义类的时候要注意的一些规范:

             *    a. 类的命名:

             *       类是用来描述1类事物的,那么你就用这个事物的名称来命名就可以了.

             *       所以,类的名称应该是1个名词.

 

总结1下命名规范.

1). 变量  是用来存储1个数据的.  变量的名称一般情况下是名词  首个单词的首字母小写其余单词单词的首字母大写.

2). 方法  是用来表示1个行为的.  方法的名称一般情况下是动词,  每个单词的首字母大写.

3). 类    是用来描述1类事物的,  类的名称一般情况下是1个名词. 要求每1个单词的首字母大写.

 

  b. 类定义在命名空间下.

要求1个类独占1个源文件. 

类叫什么名字与这个类所在的源文件没有任何关系,决定类的名字的是class后面的那个单词.

  只不过一般情况下 建议大家类的名称和源文件的名称保持一致. 这么做的好处在于方便管理类.

 

8.  创建类的对象, 也叫做实例化.

             *     语法:

             *     类名 对象名 =  new 类名();

             *     Person p = new Person();

9.  类本质上是我们自定义的一种数据类型.

9.  对象在内存中的分配.

Person p = new Person();

Person本质上是我们自定义的数据类型.

p是1个变量.

new Person() 实际上是1个表达式. new关键字是1个运算符.

 

new关键字做的事情

1)  在堆空间中开辟1块合适大小的空间.

2). 在这个空间中根据类的模板来创建对象.new后面是那1个类就是根据那个类的模板

类模板中定义了什么成员 那么就会将这些成员挨个的创建在这个空间之中.

3). 调用这个对象的构造函数.

4). 返回这个对象在堆空间中的引用地址

 

10. 如何调用对象的成员:

a.   类中的成员是无法直接调用的.必须要创建对象, 这个对象之中就拥有了类中定义的所有的成员.

那么使用这个类的成员就可以了.

b.   调用对象的成员:

对象名.成员;

.的意思.    代表"的"的意思  之   の

 

11. 类的成员的访问修饰符

a. 在Visual Studio中书写C#代码. 如果点不出来,就是真的没有.

就算你硬写上去,也是会出错的.

b. 访问修饰符

1) 是用来修饰类的成员的.

2) public 公共的 被public修饰的成员可以在任意的地方通过对象名点出来访问.

3) private 私有的.被private修饰的成员只能在本类中通过对象名点出来访问.

4) 无论是public还是private修饰的成员. 他们都可以直接的在本类中访问.

方法也是类的成员,所以也可以有访问修饰符.

如果我们没有为成员写任意的访问修饰符,那么这个成员的访问修饰符是private

 

*12. 关于对象的字段

a. 对象的字段相当于声明再对象之中的变量. 

所以对字段的访问 要么通过赋值符号赋值  要么直接取值.

b. 字段的默认值

1)如果在类中声明字段的时候就为字段赋了1个默认值,那么根据这个类创建的对象的这个字段就有这个默认值了.

2)如果在类中声明字段的时候没有为字段赋值,那么根据这个类创建的对象的字段有默认值.

如果字段的类型是值类型的 那么默认值是0

如果字段的类型是引用类型 那么默认值是null

 

13. 1个类是可以创建任意个对象的.

同1个类的多个对象之间是毫无关系的. 1个对象的字段的值不影响另外1个对象的字段.

唯一的关系: 他们是根据同1个类的模板创建出来的. 所以他们具有相同的成员. 但是字段的值相互之间不影响.

 

14. 创建1个类的对象,这个对象之中到底有什么呢?

类模板中定义了哪些成员,那么这个对象之中就有哪些成员,多不得少不得.

类是模板 对象是根据这个模板创建出来. 类模板中有什么 那么对象中就有什么

 

整理到:

15. 命名空间

命名空间 下可以写类. 类下面可以写方法和成员字段.  方法中又写执行代码.

命名空间是用来管理类的.

在1个命名空间中.去访问另外1个命名空间中的类. 是无法直接访问的.

解决方案  a.  使用类的全名称.

类的名字从最顶层的命名空间一直往下点.

b.  在源代码的顶部,使用using关键字 将类所在的命名引入.

引入以后,这个命名空间中的类就可以再当前C#源文件中直接访问了.

如果是同1个命名空间那么直接访问就可以了,不用那么麻烦了.

命名空间是可以嵌套的.

命名空间的作用:

防止类名冲突.

同1个命名空间下,不允许定义多个名称相同的类.

16. 在1个项目中的类,是不能直接在另外的1个项目中访问.

与命名空间无关.

在1个项目中只能访问本项目中的类.其他项目中的类是无法直接访问的.

* 17. 类是引用类型的.

18. 值类型与引用类型

   值类型:

    所有的数值类型.

     char

     bool

     枚举

     结构

     引用类型:

     字符串

     数组

     类.

             *      

   值类型与引用类型的异同:

    相同点:  当1个变量作为局部变量的时候.无论是引用类型还是值类型,这个局部变量始终是开辟在栈空间之中的.

             *              当1个变量作为成员变量的时候, 无论是引用类型还是值类型 这个成员变量随着对象一起开辟在堆空间中,.

             *              因为成员变量是属于对象的 对象在堆中 字段也应该跟着对象一起存储在堆中.

             *              

             *     不同点: 与局部或者是成员变量是没有关系

             *            值类型的变量中直接存储真实的值.

             *            引用类型的变量之中存储的是对象在堆空间中的地址.

             *              

             *  

             * 

             * 19. 当你通过对象名要点出1个成员的时候,如果你发现点不出来.

             *     a.  这个对象里面真的没有这个成员.

             *     b.  有这个成员,但是访问权限不够.

             * 

             * 20. 如果在成员方法中直接访问成员变量的值.

             *     方法属于哪1个对象,那么访问的成员变量就是那1个对象的成员变量 。

             *                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

             

标签:变量,访问,对象,成员,面向对象,之类,C01,模板,命名
来源: https://blog.51cto.com/u_15051447/2856284