2021-05-11

Java基础(0511)

构造函数

1.方法名与类名相同,且没有返回值

2.执行时机:创建对象时执行

3.默认创建无参构造函数,如果重载了,必须手动添加无参构造函数

 

构造代码块

1.位置:在类之中,方法之外

2.作用:用于抽取构造方法的共性代码块

3.执行时机:每次调用构造方法时会执行一次构造代码块

4.注意事项:构造代码块会先于构造函数加载

 

局部代码块

1.位置:在方法之中

2.作用:通常用于控制变量的作用范围,出了花括号就失效

3.执行时机:所处方法被调用

4.注意对象:作用范围越小越好,成员变量会存在线程问题

 

this代表本类对象的一个引用对象

Super代表的是父类的一个引用对象

 

this与super的区别

1.This代表本类对象的引用
class Father3{ this.XXX } //this – Father3 this = new Father3();
2.super代表父类对象的引用
class Father3{ super.XXX } //this – Father3 super = new Father3();
就相当于创建了一个父类对象
3.this可以在两个变量名相同时,用于区分成员变量和局部变量
4.this 可以在本类的构造方法之间调用,位置必须是第一条语句,注意,不能相互调用,会死循环
5.super是发生了继承关系以后,子类如果想用父类的功能,可以通过super调用
6.如果发生了重写,还想用父类的功能,需要使用super来调用
7.Super在调用父类构造方法时,必须出现在子类构造方法的第一条语句,而且如果父类中没有提供无参构造,子类可以通过super来调用父类其他的含参构造

 

重载Overload 与重写Override的区别

1.重载: 是指在一个类中的现象,是指一个类中有很多同名的方法,但是方法的参数列表不同
2.重写: 是指发生了继承关系以后(两个类),子类去修改父类原有的功能,子类中有一个方法签名(返回值类型 方法名(参数列表) )和父类的一模一样
3.重载的意义: 是为了方便外界对方法进行调用,什么样的参数程序都可以找到对应的方法来执行,体现的是程序的灵活性
4.重写的意义:是在不修改源码的前提下,进行功能的修改和拓展
(OCP原则:面向修改关闭,面向拓展开放)
5.重写要求方法的修饰符: 子类权限 >= 父类的权限
 

Static

  1. 只加载一次,就会一直存在,不再开辟新空间, 直到类消失才一起消失
  2. 随着类的加载而加载,优先于对象加载
  3. static不能和this或者super共用,因为有static时可能还没有对象
  4. 静态只能调用静态,非静态可以随意调用

 

静态代码块

静态资源随着类的加载而加载,并且只被加载一次,一般用于项目的初始化

特点: 被static修饰,位置在类里方法外

 

三种代码块的比较(静态代码块 局部代码块 构造代码块)

  1. 静态代码块:在类加载时就加载,并且只被加载一次,一般用于项目的初始化
  2. 构造代码块:在创建对象时会自动调用,每次创建对象都会被调用,提取构造共性
  3. 局部代码块:方法里的代码块,限制局部变量的范围

 

final

  1. 被final修饰的类,不能被继承
  2. 被final修饰的方法,不能被重写
  3. 被final修饰的变量是个常量,值不能被改变
  4. 常量的定义形式:final 数据类型 常量名 = 值

 

多态

  1. 多态的前提1:是继承
  2. 多态的前提2:要有方法的重写
  3. 父类引用指向子类对象,如:Animal a = new Cat();
  4. 多态中,编译看左边,运行看右边

 

多态的好处

  1. 多态可以让我们不用关心某个对象到底具体是什么类型,就可以使用该对象的某些方法
  2. 提高了程序的可扩展性和可维护性
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值