成员变量和局部变量
1,在内存中的位置不同
成员变量:在类中定义
局部变量:在方法中定义或者方法的参数
2,在内存中的位置不同
成员变量:在堆内存(成员变量属于对象,对象进堆内存)
局部变量:在栈内存(局部变量属于方法,方法进栈内存)
3,生命周期不同
成员变量:随着对象的创建而存在,随着对象的销毁而消失
局部变量:随着方法的调用而存在,随着方法的调用完毕而消失
4,初始化值是不同
成员变量:有默认初始化值引用类型默认为空
局部变量:没有默认初始值必须定义赋值然后才能使用
注意:局部变量名称可以和成员变量名称一样在方法中使用的时候采用的是就近原则
1 构造方法名称与类名相同没有返回值声明
2 构造方法用于初始化数据
3 每一个类中都有一个默认的无参构造方法
4 如果类中有显式的构造方法那么默认构造方法将无效
5 如果有显式的构造方法还想保留默认的构造方法需要显式的写出来
6 构造方法可以有多个但参数不一样称为构造方法的重载
7 在构造方法中调用另一个构造方法使用this(......)该句代码必须在第一句
8 构造方法之间的调用必须要有出口
9 给对象初始化数据可以使用构造方法或者setterr方法通常情况下两者都会保留
10 一个好的编程习惯是要保留默认的构造方法为了方便一些框架代码使用反射来创建对象
1、继承是发生在多个类之间
2、继承使用关键字extends
3 、Java只能单继承,允许多层继承
4、是被继承的类叫父类,继承父类的类叫子类
5、在父类中的非私有属性和方法可以被指类继承
6、构造方法不能被继承
7、创建对象会调用构造方法,调用构造方法不一定就是创建该类对象
8、实例化子类对象会先调用父类的构造方法,如果父类中没有默认的构造方法,那么子类必须显式地通过super来调用父类的带参构造方法,super也只能在纸类构造方法中的第一句
-
定义一个接口使用interface关键句
-
在一个接口中只能定义常量抽象方法jdk 1.8之后可以定义默认的实现方法
-
接口可以继承多个接口
-
一个具体类实现接口使用implements关键字
-
一个类可以实现多个接口
-
抽象类实现接口可以不实现接口的方法
-
在接口中定义的方法设有声明访问修饰符默认为public
-
接口不能有构造方法
-
接口不能被实例化
-
抽象类可以没有抽象方法有抽象方法的类必须是抽象类
-
非抽象类继承抽象类必须实现所有抽象方法
-
抽象类可以继承抽象类可以不实现父类的抽象方法
-
抽象类可以有方法实现和属性
-
抽象类不能被实例化
-
抽象类不能声明为Final
-
抽象类可以有构造方法
单例设计模式
简单工厂模式
抽象类应用---模板方法模式
接口应用---策略模式
静态代理模式
适配器模式
装饰者模式
生产者与消费者应用案例