面向对象及行程一种面向对象的编程思维!

  进阶段学习的主要是类的特性及构成,类是一种数据类型!


类的构成:


1.为了简便,以后对“自定义新的数据类型” -> "定义类"

2.详细研究如何定义一个类。

  2.1 一个类由三部分组成。这三个部分并不是全部必须的。
      在编写类之前,要先设计类:数据(用成员变量来表示),和对这些数据的操作(就会用成员方法来表示)。

    class 类名{
        //1.成员变量


        //3.构造器(构造方法) -> 其中一个主要作用,是对成员变量进行初始化


        //2.成员方法->用来操作本类中的成员变量/或者象一个普通的方法(函数)一样
        
    }

  2.2 成员变量。
      也叫“字段”。它的定义和一般变量是一样的。
      成员变量也叫“实例变量”,如果不明确赋值的话,会自带一个默认值。
      成员变量:遵循标识符命名规则;驼峰命名法,首字母小写;望文生义

  2.3 成员方法。
      语法格式:
    void|数据类型 方法名称(参数列表){
       //方法体
    }
      2.3.1 方法命名:遵循标识符的命名规则;驼峰命名法,首字母小写;望文生义。方法的命名:动词+名词
      2.3.2 方法名称后面,必须紧跟一对小括号。小括号内,可以有参数(有1个或多个。如果有多个的话,称为参数列表,用逗号分隔),也可以没有参数。
      2.3.3 方法名称前,要指定该方法返回数据类型(即可以是原始数据类型,也可以是自定义的数据类型,也可以数组)。
        如果该方法的代码调用后,不要求有返回值,那么,必须使用void关键字指明。
        如果该方法的代码调用后,有返回值,那么,在方法体内(花括号内),必须要有"return 返回数据"语句,并且返回数据的类型,要和方法名前指定的数据类型保持一致。
      2.3.4 对方法的调用:通过方法名称(后跟小括号)的方式调用。
      2.3.4 方法声明中的参数,为局部变量。局部变量和成员变量的区别:
            局部变量的生命周期(变量的作用域),仅限于从它声明开始,到所在方法结束。
      2.3.5 参数传递中的“值传递”和“引用传递”
      2.3.6 当一个类中,有多个同名的方法、但方法签名不同时,称为“方法重载”。
        --什么是“方法签名”?  方法签名=方法名称+参数数量和类型/顺序
        --这种情况,又叫“动态方法调用”
      2.3.7 可变参数:参数的数量是可变的。
        1)可变参数,必须是位于参数列表中最后一个。
        2)可变数量:0、1或多个。
        3)可变参数,是作为数组进行处理的。

  2.4 变量的作用域
      2.4.1 在一个类中,有三个地方可以定义变量(三种变量):类的字段部分(成员变量)、方法的参数变量(局部变量)、方法内声明的变量(局部变量)
      2.4.2 如果局部变量和成员变量同名的情况下,局部变量屏蔽成员变量
      2.4.3 局部变量,它的作用域范围,是从声明它的地方开始,到方法的结束
      2.4.4 成员变量定义的位置不关紧,它的作用域范围总是在整个类内部
      2.4.5 所以,好的做法是,尽可能的不要让局部变量与成员变量同名。
            
  2.5 this关键字
      但是,有的时候,局部变量又最好是和成员变量同名。
      在局部变量屏蔽成员变量的情况下,如果想要绕开这种屏蔽,能访问到成员变量,需要使用this关键字。

  2.6 属性
      实际上,属性不是字段。只有提供了get方法的字段,才称为属性。

  2.7 构造器
      2.7.1 构造器,也叫构造方法。其名称必须和类名相同,后跟方法的小括号,再后跟方法体花括号
      2.7.2 构造方法也可以重载
      2.7.3 构造器的主要作用:对成员变量进行初始化、加载资源、......
      2.7.4 构造器的使用:在创建类的实例对象时,使用new运行符,调用构造器,来创建实例,申请空间
            通过构造实例对象时,传递的构造器参数,来对成员变量进行初始化
      2.7.5 通过this关键字调用同一对象中的其它构造器
      2.7.6 如果在定义类时,不明确指定一个构造器,那么编译器在编译时,会自动地添加一个空的默认的构造器。
        但是,一旦你指定了一个构造器,那么,编译器就不会再插入默认构造器了。


你可能感兴趣的:(类,面向对象)