java基础day8

Day8
一、代码块(也就是一对{}里的叫代码块)
  • 根据位置,修饰符等不同分为四大类型:
    1.局部代码块:
    (1)位置:在方法里
    (2)语法:{ 代码块的代码 }
    (3)好处:生命周期是随着代码块的执行完就销毁,节省内存空间
    2.构造代码块:
    (1)位置:放在类里
    (2)语法:{ 代码块的代码 }
    (3)好处:其一,给成员变量赋值;其二,如果类里的某一个方法要在实例new的时候执行,就可以把这个方法放入代码块中
说明:  
  • 这个代码是由jvm执行
  • 每次new一个对象的时候,都会执行这个代码块
  • 代码块优先于构造方法执行

3.静态代码块:
(1)位置:在类里面
(2)语法:static{ 代码块的代码 }
(3)好处:其一,加载驱动;其二,加载配置文件

说明:  
  • 这个代码是jvm执行的
  • 静态代码块只会加载一次
  • 优先于构造执行

4.同步代码块
(1)位置:在方法里
(2)语法:synchronized(Student.class){ System.out.println(“da jia dou zai xue xi!”) }
(3)作用:在多线程中,保证数据的安全

二、继承
  • 父类:(又称超类、基类)跟创建普通类的语法是一样
  • 子类:(派生类)子类继承父类的关键字是extends
必须满足 is-->a(我是你爸爸) 的关系,才能使用继承,两个类才有关系  
注意:继承的时候,父类是找不到子类的  
在子类与父类中有同一个成员变量或方法,如果实例化是子类的对象,首先获取子类的成员变量或方法,如果子类没有,就依次往上寻找父类的成员变量或方法,如果到最后的祖宗类都没有这个变量或方法,就会报错  
  • 方法的重写:在继承中,修饰类型一样,方法名一样,参数一样

1.子类的方法的返回值作用域不能大于父类方法返回值得作用域(只能是Object和String、Integer等比较作用域);所有类的直接父类与间接父类都是Object()

2.访问修饰符:子类的访问修饰符权限不能高于父类(父类为public,子类就不能为private)

3.@Override 这个注释表示重写了父类的方法

重写的意思就是子类调用父类的方法的同时,也可以做自己的事情  
在继承中,父子类的构造方法的使用:  

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

this的用法以及注意事项:  
  • 获取成员变量:this.成员变量;获取成员方法:this.成员方法();获取构造方法:this()
  • 只能在构造方法中使用this调用其他的构造方法,不能在成员方法中使用
  • 在构造方法中,使用this调用构造方法的语句必须位于第一行,且只能出现一次
  • 不能在一个类的两个构造方法中使用this互相调用
  • 在java继承中,不能继承父类所有的私有的属性和方法;不能继承父类的构造方法,但可以调用父类的构造方法
总结:可以通过super关键字得到父类的属性、方法和构造器;可以同this关键字得到本类的属性、方法和构造器  
  • java里只能是单继承,只存在一个父类
  • 继承的好处:可扩展性,可维护性==>好处大于坏处,开发中经常会使用继承;坏处:耦合度比较高
三、final:(最终,不能改变)
  • final可以修饰类,语法:在类的前面加上关键字final(被final修饰的类不能够被继承)
  • final修饰方法:父类里final修饰的方法不能够被继承
  • final修饰成员变量:修饰的成员变量必须给出默认值,设置后不能改变
  • final修饰局部变量:在局部变量中可以不给默认值,但一旦给出值就不能改变
在开发中,final一般与static配合使用
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值