史上最全讲解:JAVA中的block,package和import,权限修饰符,封装与继承,override与super.

史上最全讲解:JAVA中的block,package和import,权限修饰符,封装与继承,override与super.

block

块的分类

  • 块: {}是一个作用域,写在花括号之内
  • 普通语句块(局部代码块): 写在类中方法之中,方法调用时被执行!
  • 构造块:类中方法之外,创建对象时被执行!
  • 静态块: static{};类中方法之外,类加载时就会被执行!

注意事项

  • 构造块中的代码先于构造器中的代码执行,编译的时候编译器会自动把构造块中的语句编译到构造器代码之前
  • 如果有多个构造块从上到下依次执行.
  • 静态块中的内容在类第一次加载的时候执行,只执行一次.
  • 如果有多个静态块从上到下依次执行.
  • 块的执行顺序: 静态块>main>构造块>构造器

package和import

gc(garbage collection)

  • 可回收的对象垃圾:
      匿名对象;
      对象无引用;
  • 程序员无权操作垃圾回收机制的执行,可以通过System.gc()通知系统

package与import

  • package
    为java 源文件的第一条语句,指明该文件定义的类所在的包.
    不要定义与jdk相同的包名和类名!
  • import
    不需要导包的情况:
      1.同包下的内容
      2.java.lang包下的内容
    使用非当前包的方法:
      1.使用的时候写全名,包名+类名,只在当前行有效
      2.import导包
      3.*模糊匹配 不会影响运行效率,影响编译效率
      4.静态导入,只导入静态的内容(属性和方法)

权限修饰符

private 私有化 只能在当前类使用外部类无法使用

  • 成员修饰符 属性一旦私有就要配合设置器和访问器使用 setter和getter
  • 私有属性的好处:
      更加安全,不允许外部直接操作
      设置器和访问器是方法,可以进行逻辑判断,对输入值进行控制
    private修饰的内容只能在当前类被访问

default

default关键字是默认的,省略不写,写出来会报错!default修饰的内容可以在本类中以及同包下的不同类中被访问

protected

protected修饰的内容,可以在本类中,同包下的其他类中以及不同包下的子类中被访问,但是在不同包下的子类中需要注意:只可以通过继承的方式来访问

public

public 修饰的内容可以在当前类,同包下的其他类,不同包的子类,不同包下的其他类被访问.

修饰类的修饰符只能有2个 public|default(不写 默认)

封装javabean

封装

  • 定义:隐藏内部的实现细节,对外提供公共的接口
  • 封装的具体体现:
      类
      方法
      属性的私有化
  • 好处(作用):
      提高代码的复用性
      提高代码的安全性

javabean

  一系列模板类的统称

javabean四大特点

  • 类被public修饰
  • 至少提供一个空构造
  • 属性私有化被private修饰
  • 共有的访问方式

继承

  • 继承: 子承父业

  子类|派生类: 继承别的类的类
  父类|基类|超类: 被继承的类

  • 继承如何使用:
    子类 extends 父类

  • 继承的优点:
    子类一旦继承父类,就可以使用父类中所有的内容
    提高代码的复用性
    子类定义扩展的内容,子类独有的内容

  • 继承的特点:
    java是单继承机制,但是可以多实现接口
    一个类可以有多个子类,但是一个子类只能有一个父类

  单继承的优点: 使用简单
  单继承的缺点: 不便于后期维护

面向对象的设计原则之一: 开闭原则 ,对修改关闭,对扩展开放

重写

重写和重载之间区间:

重写还是重载都只针对方法!

  • 方法的重载:
    1.同一个类中的多个方法
    2.方法名相同
    3.参数列表不同
  • 方法的重写:
    1.不同的类
    2.继承|实现
    3.方法签名相同

如果子父类中构成方法的重写,子类对象调用时候会调用子类中重写的那个方法,对父类的方法进行屏蔽

检测方法重写的方式:
1.左侧会出现向上的三角形
2.@Override 注解强制检查重写方法(首字母大写)
== 方法签名完全相同
<= 返回值类型: 返回值类型为基本数据类型要求必须相同, 如果引用数据类型,子类<=父类

= 子类权限修饰符>=父类权限修饰符

注意:
被private修饰的方法不能被重写
被final关键字修饰的方法不能被重写
被static修饰的方法不能被重写
但是注意:如果子类中有与父类中的某个静态方法同名的时候,那这个方法也要为static修饰的

super关键字

super和this之间的区别:

  • this:当前对象(new的对象|调用成员方法的对象)
    1.调用本类中的其他构造器
    this(参数列表)
    2.区分局部和成员之间的问题
  • super:指代父类对象
    1.调用父类的构造器
    super()
    如果没有显示定义,调用父类的哪一个构造器,默认首行调用super()父类空构造
    因为一般子类构造器的首行会默认调用父类空构造的问题,所以建议模板类都至少存在一个空构造
    super()必须在首行调用使用才行
    2.区分子父类同名问题
      如果当子父类中存在同名成员的时候,子类中使用同名内容默认就近原则指代子类,如果先要使用父类的通过super使用super指代父类对象,如果不存在同名问题,调用父类中的成员,super.可以省略

先父类后子类
先静态后成员

final 关键字
被final修饰的变量为常量
被final修饰的方法不能被重写
被final修饰的类不能被继承 (太监类)

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值