0808总结

0808总结

代码块

放在一对 {} 里面的叫代码块
根据位置与修饰符等的不同可分为四大类:

局部代码块

在方法里

{
    代码块的代码
}

优点:生命周期是随着代码块的执行,执行完便销毁,节省内存空间

构造代码块

在类里

{
    代码块的代码
}

优点:1、可以给成员变量赋值
2、如果类里面的某一个方法要在实例化的时候执行,就可以把这个代码块放入方法里
说明
这个代码是由jvm执行;每次new对象时,都会执行这个代码块;代码块优先于构造方法执行

静态代码块

在类里

static{
    代码块的代码
}

优点:用于驱动加载
说明
这个代码是由jvm执行的;只会加载一次;优先于构造执行

同步代码块

在方法里

synchronized (Student.class){
    System.out.println();
}

作用:确保多线程的安全

继承

父类:超类、基类
子类:派生类
必须满足 is -a关系才能使用继承

父类

与创建普通类的语法一样

子类继承父类的关键字是 extends
继承的时候,父类拿不到子类的东西,子类能够拿到父类的东西(包括属性和方法)

子类与父类中有同一个成员变量,实例化子类的对象,首先获取子类的成员变量,如果子类没有,便一次找其父类的成员变量,都没有则报错

获取变量的方法

1、直接获取(一般是获取局部变量)
2、通过this(获取成员)
3、获取super(父类的变量)

获取父类的方法

1、本类调用本类的方法通过 this.方法名

this.play();

2、在父子关系中,如果实例化是子类的对象,子类在调用其方法的时候;若子类有就调用自己的方法、没有就依次往上找,调用父类的方法,都没有就报错

方法的重载:同一个类里,方法名相同,参数的个数或者类型不同,与返回值没关系
方法的重写:在继承中,方法名相同,参数是一样的

重写的注意点
1、子类的方法作用域不能大于父类方法的返回值的作用域(所有类的直接或者间接父类都是 Object() )
2、子类的访问修饰符权限不能严于父类(父类给的是 public ,子类不能给 private )
3、重写的标记:@Override
4、重写的含义:子类调用父类的方法时,也可以做自己想做的事情

在子类中有两种情况:
在子类中,调用自己本身的方法通过this调用(可以省略)
调用父类的方法是使用super关键字 super.方法名()

子父类中构造的使用

1、如果没有调用父类的其它构造,系统会默认调用父类的无参构造
2、子类可以调用父类重载的构造语法: super(参数的值)
3、调用父类的构造必须放在第一句,一个构造只能放一个 super(),否则报错

this三种获取方式

1、this. 成员变量名
2、this. 方法名()
3、this();构造方法

继承中不能继承的
1、父类所有私有的子类都拿不到(private)
2、不能继承父类的构造,但是可以用父类的构造

总结
得到父类的属性、方法、构造都可以通过 super 关键字来拿
属性:super.属性名
方法:super.方法名()
构造:super();

java里的单继承

只能存在一父类,所有类有一个直接父类或者间接父类是 Object
继承的好处:可扩展性,可维护性
坏处:耦合性比较高

final

修饰类

在类前面加关键字 final(被final修饰的类不能被继承

修饰方法

父类里被 final 修饰的方法不能被继承

修饰成员变量

final 修饰成员变量时必须给其默认的值,设置后就不能改变了

修饰局部变量

在局部变量中 final 可以不给默认值,若设置了默认值就不能变改变
在开发中 final 一般与 static 配合的使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值