面向对象(基础oop)之类与对象

       大家好,我叫李京阳,,很高兴认识大家,之所以我想开一个自己的博客,就是来把自己所了解的知识点通过自己的话写一下,希望被博客园的朋友们点评和一起讨论一下,也希望从博客园中多认识一些软件开发人员!现在我开始讲一下面向对象的一点知识,请你们多多点评和讨论!!


       类与对象

       类与对象是刚刚进入面向对象所必须知道的,因为面向对象中讲的属性与构造函数,现象与对象,继承多态,接口,抽象类都会用到类和对象,而且利用面向对象的思维去做一些小项目都会用到的,所以不可小视哦,嘻嘻!!!

       好了,我现在开始通过自己的话分析类和对象。

       科普一下下:

       1)向对象是基于面向过程的,并不是用来淘汰的面向过程的。

       2)如何使用面向对象的风格来编程?

            a.要实现一个功能,切记不要自己去实现。
            b.看看有没有现成的人可以做这个事情。
           FCL(框架内库): 库里m面有什么可以执行事情的变量,每个变量负责完成不同类型的功能,这些都是微软事先造好的。
            c.如果没有就造一个拥有执行这个功能的变量,该好处: 以后要实现这个功能的时候,就可以直接调用来使用。

       1. 类:是对1群具有相同特征和功能的事物的1个统称,就是用来描述一群事物的. 所以说类不能直接使用.

          

       2.定义类:
         a. 语法:
                    class 类名
                    {
                      
                    }
         b. 位置:
                    定义在命名空间的下面.

        3.类的里面应该定义什么:
         a. 将这类事物拥有的共同特征定义为类的成员变量.
         b. 将这类事物拥有的共同的功能定义为方法.(我们在自己写的类中 不要加static关键字)

        4.如何找到类中的1个对象 并使用这个对象呢?
                 创建对象的过程:
                 ①创建类的1个对象的语法:
                 类名 对象名 = new 类名();
                 Person p1 = new Person();

                 a. Person是自定义的数据类型 p1是1个变量.那么既然p1是个变量 就应该在内存中开辟空间.
                 b. new Person()是1个表达式

                
                 ②当执行到这句代码的时候. 就根据Person类的模板创建了1个p1对象.这个p1对象中有person模板中定义的所有的成员和方法。所以这个p1就可以使用,因为它是1个对象。

    

         

         5.访问对象中的功能
                 对象名.成员

 

         6.定义在类中的变量,我们统称为类的成员.
                 成员变量: 将这类事物具有的相同的特征 定义为成员变量. 也叫做 字段、成员字段.
                 方法: 将这类事物具有的相同的功能定义方法  也叫 成员方法。

          7.new关键字做的事情:
                    1).   在堆内存中开辟1块合适大小的空间.
                    2).   在这个空间中根据类的模板来创建对象.
                          new的是哪1个类,就根据这个类的模板来创建对象.
                          类模板中有什么,都会依次的创建在这个对象中.
                    3).   调用这个对象的构造函数.
                    4).   返回这个对象在堆空间中的引用地址.

          8.类的成员的访问修饰防
                  public 公共的.  被public修饰的成员可以在任意的地方通过对象名点出来访问.
                  private 私有的. 被private修饰的成员只能在本类的内部通过对象名点出来访问。
                  无论是public还是private修饰的成员  都可以直接在类的内部访问. 因为作用域.
                  如果我们不为类的成员写任意的访问修饰. 那么默认是private.

          9.为对象的字段赋值.
                  一定要搞清楚,是在为对象的字段赋值. 字段其实就是1个变量. 所以为对象的字段赋值的数据的类型 要和这个对象的字段的类型保持一致. 也可以取出对象的字段的值.
                  字段在声明的时候,如果没有为其赋值.那么字段是有默认值的.
                  如果字段的类型是引用类型的 那么默认值是null
                  如果字段的类型是值类型的 那么默认值是 0

           10. 命名空间
                  namespace 用于定义1个命名空间.
                  在命名空间中 我们可以定义类.  类是属于命名空间的.要访问类的地方所在的命名空间如果和类所在的命名空间是相同的.那么直接就可以使用类名来访问这个类.如果不一样: 那么就不能直接访问了.这个时候可以通过如下两种方式来访问:
                      a.  使用类的全名称:  使用顶级命名空间一直往下点到这个类.
                      b.  使用using关键字  将类所在的命名空间引入. 然后在这个页面中就可以直接访问这个命名空间中的类了.
                  命名空间的作用:
                     在同1个命名空间中 不允许定义多个类的名称是相同的.
                     命名空间的作用在于防止类名冲突.

            11. 类是引用类型的.

                 
                  值类型与引用类型.
                  值类型:所有的数值类型、bool、char、枚举、结构.
                  引用类型:string、数组、类.
                  相同点:
                  局部变量无论是引用类型还是值类型,这个局部变量都是开辟在栈空间中的.   
                  成员变量无论是引用类型还是值类型,这个变量是跟随着对象一起开辟在堆空间中的.     
                 不同点:
                  值类型的变量真实的值 直接存储在该变量中
                  引用类型的变量无论是局部变量还是成员变量 真实的对象存储在堆空间中. 变量中存储的是对象在堆空间中的地址.
                 
                  局部变量:定义在方法中的变量.
                  成员变量/字段/成员字段: 是直接定义在类下面
                 
                  值类型变量之间相互赋值: 因为值类型的变量中存储的是真实的值.所以拷贝传递的也是真实的值.
                                          赋值完成以后 对1个变量进行修改不会影响另外的1个变量的值.
                                         
                  引用类型变量之间相互赋值: 因为引用类型的变量中存储的是对象的地址 所以拷贝传递的也是地址
                                          赋值完成以后 对1个变量指向的对象进行修改 会影响另瓦的1个变量指向的对象
                                          因为这两个变量指向同1个对象.
                              
                  凡是看到了new关键字.就说明在内存中重新的创建了1个对象了.

         注意:①在代码世界中,一定是先有类,然后可以通过这个类来创建对象,就是把类当做一块模板,然后程序员写的代码可以在创建对象的时候就可以根据这个类的模板进行创建.

                  ② 如果通过对象名想去点出对象中的成员,但是发现点不出来.
                  原因有二:
                  a. 对象中根本没有这个成员
                  b. 有,但是访问权限不够.

                  ③ 在写类的时候需要注意的2个规范.
                  a.  类的命名:  一定要有意义. 这个类描述的是哪1群事物 那么就用这个事物的名称来命名就可以了.
                       每个单词的首字母大写. 名词.
                       变量的命名规范: 名词。首个单词的首字母小写 其他的单词的首字母大写.
                       方法的命名规范: 动词. 每个单词的首字母大写.
                             
                  b.  1个类独占1个源文件.
                      我们在添加1个类的时候. 指定的名称是 新增的源文件的名称.
                      建议类的名称和这个源文件的名称保持一致. 这么做的好处方便管理.

                  ④类的对象可以创建任意个.
                  同1个类的多个对象之间毫无关系.他们唯一的关系就是根据同1个模板创建出来的.
                  他们都具有相同的成员. 并且各自都拥有1份.特别是对象的字段的值. 对象之间互不影响  都是自己独有的.

                  ⑤ 在using的时候 只要点到命名空间就可以 不要再点出类了.

                  ⑥ 在方法中直接访问了字段的值.
                      方法的是谁的字段?方法属于那个对象, 那么访问的就是那个对象的字段 。

原文地址:https://www.cnblogs.com/lijingyang/p/3723857.html