java基础笔记02关于构造器和面向对象等问题基础知识

构造方法

1、方法名必需跟类名保持一致

2、无返回类型

3、通过new来调用

4、无参构造器的问题

a)如果我们没有手动定义构造器,系统会自动为我们添加一个无参构造器

b)如果我们定义了构造器,系统就不会为我们添加无参构造器

3、构造方法的第一句总是super,即直接调用父类的方法

a)有继承关系的构造方法调用的顺序

方法的重载(overload)

两同(同一个类,同一个方法名)三不同(参数列表不同,类型个数顺序返回值不同,构成重载吗?no)

this:普通方法中,调用本方法的对象

         构造方法中,正要初始化的对象

         还可以用来,调用其它的构造方法

super

static:用它修饰的变量和方法就变成了静态变量和静态方法,从属于类,通过类名即可调用,实际存储于方法区中

package:必须位于非注释性第一句

import:引入外部的类   import static导入类的静态属性

final:修饰变量:常量(命名规范:全部大写,多个单词之间用下划线隔开) 修饰类:不能被重写 修饰类:不能被继承

面向对象的三大特征

封装:通过private、default、protected、public关键字实现属性或方法的封装(搞内聚,低耦合)

继承:通过extends,两个好处:

1、代码重用

2、通过继承实现对现实事件更加准确的建模

3、多态:三个必要条件:继承,方法的重写,父类引用指向子类对象

4、动态绑定,静态绑定:

抽象类

1、包含抽象方法的类一定是抽象类

2、抽象类不能被new

3、抽象类可以包含:普通方法,成员变量,构造方法

接口

1、interface

2、类实现接口:implement 可以实现多个接口

3、接口可以多继承

4、接口定义的一种规范(如果你是....则必须....)

内存机制

1、栈

a)存放局部变量

b)不可以被多个线程共享

c)空间连续,速度快

2、堆

a)存放对象

b)可以被多个线程共享

c)空间不连续,速度慢,很灵活

3、方法区

a)存放类的信息:代码,静态变量,字符常量等

b)可以被多个线程共享

c)空间不连续,速度慢,很灵活

垃圾回收器

1、程序员不能调用垃圾回收器,但可以通过system.gc()提建议回收

2、finallize:一般也不用调

你可能感兴趣的:(java基础笔记02关于构造器和面向对象等问题基础知识)