java basic

局部变量和成员变量

局部变量使用前必须要声明并赋初值;成员变量使用前必须要声明,但可以不赋初值。
成员变量与局部变量的联系和区别:
a) 无论是成员变量还是局部变量,使用前都需要声明(定义)。
b) 对于局部变量来说,使用前必须要初始化;对于成员变量来说,使用前可以不初始化。如果没有初始化成员变量就开始使用,那么每个类型的成员变量都有一个默认的初始值
i. byte、short、int、long类型的初始值为0
ii. float、double类型的初始值为0.0
iii.char类型的初始值’\u0000’
iv. boolean类型的初始值为false

封装

  1. 如果一个类包含了属性与方法,那么该类的每一个对象都具有自己的属性,但无论一个类有多少个对象,这些对象共享同一个方法。
  2. 关于方法参数传递的总结:对于java中的方法参数传递,无论传递的是原生数据类型还是引用类型,统一是传值(pass by value)。
  3. 什么类型的引用就能指向什么类型的对象,比如People类型的引用就能指向People类型的对象,但不能指向Student类型的对象。
  4. new关键字在生成对象时完成了三件事情
    a) 为对象开辟内存空间
    b) 调用类的构造方法
    c) 将生成的对象的地址返回。

  5. 在java中进行方法的参数传递时,无论传递的是原生数据类型还是引用类型,参数传递方式统一是传值(pass by value)。java中没有传引用(pass by reference)的概念。

  6. 方法重载(Overload)。表示两个或多个方法名字相同,但方法参数不同。方法参数不同有两层含义:
    1)参数个数不同。
    2)参数类型不同。
    注意:方法的返回值对重载没有任何影响

继承

  1. 当生成子类对象时,java默认首先调用父类的不带参数的构造方法,然后执行该构造方法,生成父类的对象。接下来,再去调用子类的构造方法,生成子类的对象。【要想生成子类的对象,首先需要生成父类的对象,没有父类对象就没有子类对象。比如说:没有父亲,就没有孩子】
  2. super关键字:super表示对父类对象的引用。
  3. 如果子类使用super()显示调用父类的某个构造方法,那么在执行的时候就会寻找与super()所对应的构造方法而不会再去寻找父类的不带参数的构造方法。
  4. 关于继承的注意事项:
    a) 构造方法不能被继承
    b) 方法和属性可以被继承
    c) 子类的构造方法隐式调用父类的不带参数的构造方法
    d) 当父类没有不带参数的构造方法时,子类需要使用super来显式的调用父类的构造方法,super是指对父类的引用
    e) super关键字必须是构造方法的第一行语句

多态

Polymorphism : 我们说子类就是父类(玫瑰是花),因此多态的意思就是:父类型的引用可以指向子类对的对象。