20200924+袁鑫

学习日志:

知识总结:

面向对象(oop)

面向过程:当需要解决问题时,钢珠的是解决过程,每个步骤都亲历亲为。

面向对象:当需要解决问题时,关注的是对象

面向对象三大特征:

  1. 封装
  2. 继承
  3. 多态

具有相同的状态的行为的一组对象的集合。

要创建对象必须先定类,通过类来实例化对象。类简单的理解就是代表多个对象的统称,而不是具体的个体。

属性和方法都叫做类的成员

类是对象的模板,对象是类的具体(实例)。

类和对象的关系就是抽象和具体。

方法

方法是完成特定功能的相对独立的程序段。方法一旦定义,可以在不同的程序中多次调用。

方法的设计要遵循功能单一原则,即一个方法干一件事。

[修饰符] 返回值类型 方法名 ([参数列表]){ 方法体 }修饰符:public/private/protected/final/static

返回值:若不用返回值就用void来声明,有返回值的话在方法体中一定要return 返回值,返回值一定要用同样类型来接收。

方法的返回值

一个方法只有一个返回值,类型为声明时的类型。没有返回值用void声明

方法的参数

在传参的过程中,基本数据类型传递的是(值传递)引用数据类型传递的是地址/引用(值传递,不过传递的是地址)java只有值传递

可变参

(参数类型 ... 参数名)

可以有任意个可变参,有多个参数时,只能有一个可变参且只能放参数列表的最后

传入的参数可以理解为一个数组,数组的方法都可以用,所以不能同时有一个同数据类型的同名称的可变参和数组

方法的重载

一个类中允许出现方法名相同,参数列表(参数个数、类型、顺序不同)的方法存在,这叫做方法的重载。方法的重载与返回值无关。与修饰符无关。

(non-static)实例变量

是声明在方法之外,类里面的变量

实例变量的作用域

就近原则,实例变量的作用域是整个类,

成员变量和局部变量的区别
  1. 作用域不同
  2. 初始值不同
  3. 在同一个方法中不允许有同名的局部变量,在不同的方法中可以有同名的变量
  4. 一个类中可以有同名的局部变量和实例变量,方法优先使用局部变量。
构造方法
  • 没有返回值,也不是void

  • 是一个特殊的方法

  • 构造方法的方法名要和类名相同,包括大小写

    构造方法名为有参构造和无参构造(默认构造)他们之间是重载关系。

一般有参构造是为实例变量初始化的。

​ 如果不定义构造方法,那么java会自动给类写一个public无参构造,如果显式的声明了构造方法,java都不会给这个类生成无参构造。

构造方法的使用

构造方法是对象初始化时调用的,也就是new对象时调用的

Static方法

使用static修饰的方法叫做static(静态)方法

它属于类,所以也叫做类方法。

调用:

类名.方法名

对象.方法名

虽然对于static方法而言,两种调用法师都可以,但我们最好使用 类名.方法名

生命周期

static方法在类被加载的时候就夹在(并不意味着要执行),而且只加载一次。实例方法在对象初始化时加载。

实例方法和static方法的区别

相同点:

​ 都是属于成员方法。

不同点:

  1. 由于static方法比实例方法声明周期长,所以在一个类中实例方法可以直接调用static方法,而static方法不能直接调用实例方法。

  2. static方法中不能直接调用实例变量,而实例方法可以。

  3. static方法不能使用this。

    this

    谁调用this,this就指向谁。

    this不能调用局部变量。

    不推荐使用this来调用类变量或类方法。在本类中可以直接调用类变量和类方法,在其它类中使用类名.类变量/类方法的调用。

    初始化

    类中会存在一个或多个初始化,用于初始化变量

    { //这里可写多行代码,也可调用方法}

    有多个实例化初始块儿时,先声明先执行。

    static初始化

    初始化static变量。只在类加载第一次的时候加载。

    类的成员不包括以下:

    1. 构造方法
    2. 实例初始化
    3. static初始化

    他们在实例化对象时的执行顺序:

  4. static初始化

  5. 实例初始化

  6. 构造方法

心得:

今天对于面向对象的学习感觉有些仓促,知识点有点杂,可能上课的时候跟着老师的思路学习起来还是能接受的,但是自己下来敲的时候就有点小不熟悉。

标签

评论

© 2021 成都云创动力科技有限公司 蜀ICP备20006351号-1