包/final/权限修饰符/代码块

包package

1、包的作用

包用来管理不同的类。

2、包名

包名要全部小写,一般是域名反写,如com.liu。在Java中,java解释器会将package中的.解释为目录分隔符/,也就是说该文件的目录结构为:...com/liu/...

3、全类名/全限定名

包名+类名,如com.liu.Student

4、使用import关键字导包

①当前包下的其他类和java.lang包下的类可以直接使用;

②如果是不同包中的其他类要导个包或者import全类名才可以使用。

这个我在IDEA中设置了自动导包。

final

学习了继承之后知道了子类可以修改父类中的属性值或者重写父类中的行为,但是如果不想被子类改变则可以用final关键字修饰。

1、修饰变量

不可被改变,叫常量,只能被初始化一次。

被final修饰的常量名称,命名规则是所有字母都大写,单词之间使用_连接。 

final修饰的变量

(1)基本数据类型:其值不可再变化;

(2)引用数据类型:指向的地址不会再变化,但地址中存的内容是可能会被改变的。

2、修饰方法

此方法不可被子类重写。

如果这个方法表示的是一种规则,不想被别人改变,则可用final修饰。

3、修饰类

不可被继承。

像Java中提供的Math、String和Scanner这些类都是被final修饰的,只希望我们使用,不想要我们去改变它们的行为。

后面的2和3只用知道就行了,1用的较多,要掌握。

权限修饰符

控制可以被访问的范围。

范围分为四个部分,分别是本类、同一包下的其他类、不同包下的子类、不同包中的无关类。

1、private

2、默认/缺省

3、protected

想让其他包中的子类也可以访问到,提出了protected修饰符。

4、public

21a3d25f86bc446c95e83c10fe3a7993.png

实际开发中最常用的就是private和public:

(1)成员变量私有

(2)方法公开

特例:如果一个方法中的代码是其他方法中的共性抽取出来的,这个方法一般也私有,不对外提供。

代码块

用大括号括起来的代码。

1、局部代码块

写在方法里面的一对大括号,可以提前结束变量的生命周期,已被淘汰。

2、构造代码块

把构造方法中重复的代码抽取出来放到用大括号括起来,成员变量的位置。

格式:

{
    //语句体;
}

在每次创建本类对象的时候一定会先执行构造代码块,然后再执行构造方法。

这个技术也渐渐淘汰了,因为太死了,不够灵活,即在创建对象的时候构造代码块中的内容一定会执行,没有办法不执行,但是有时候我们就是不想要执行。

所以如果构造方法有共性的部分可以写成一个构造方法由其他构造方法通过this进行调用,也可以写成一个方法由构造方法去调用。

3、静态代码块

格式:

static {
    //语句体;
}

随着类的加载而出现,只执行一次。

什么时候用?在类加载的时候做一些数据初始化,并且只希望只执行一次的时候就可以用了。

 

相关推荐

  1. 权限修饰符

    2024-07-10 22:50:01       41 阅读
  2. 多态、权限修饰符、内部类,Object类,Date类

    2024-07-10 22:50:01       41 阅读
  3. C++(4) 面向对象&类、权限修饰符

    2024-07-10 22:50:01       51 阅读
  4. synchronized修饰方法和代码底层实现有什么区别

    2024-07-10 22:50:01       58 阅读
  5. final

    2024-07-10 22:50:01       51 阅读
  6. finalfinallyfinalize区别

    2024-07-10 22:50:01       46 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-07-10 22:50:01       100 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-07-10 22:50:01       107 阅读
  3. 在Django里面运行非项目文件

    2024-07-10 22:50:01       90 阅读
  4. Python语言-面向对象

    2024-07-10 22:50:01       98 阅读

热门阅读

  1. BiLSTM模型实现

    2024-07-10 22:50:01       29 阅读
  2. Vue2.0和Vue3.0的区别?

    2024-07-10 22:50:01       29 阅读
  3. 网络安全应急处理流程

    2024-07-10 22:50:01       24 阅读
  4. 算法·高精度

    2024-07-10 22:50:01       28 阅读
  5. 闲聊C++与面向对象思想

    2024-07-10 22:50:01       31 阅读
  6. 路由器中 RIB 与 FIB 的区别

    2024-07-10 22:50:01       28 阅读
  7. 生成日志系统和监控

    2024-07-10 22:50:01       30 阅读
  8. Apache Spark详解

    2024-07-10 22:50:01       20 阅读
  9. qt opencv 应用举例

    2024-07-10 22:50:01       23 阅读
  10. Pytorch中分类回归常用的损失和优化器

    2024-07-10 22:50:01       30 阅读
  11. 【Rust】Cargo介绍

    2024-07-10 22:50:01       29 阅读
  12. 搭建Spring Cloud项目思路

    2024-07-10 22:50:01       27 阅读
  13. C语言从头学32——字符串数组

    2024-07-10 22:50:01       32 阅读