【JavaSE】Java基础语法(十七)

简介: 1. finalfianl关键字的作用final代表最终的意思,可以修饰成员方法,成员变量,类final修饰类、方法、变量的效果fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)final修饰方法:该方法不能被重写final修饰变量:表明该变量是一个常量,不能再次赋值

1. final

fianl关键字的作用

final代表最终的意思,可以修饰成员方法,成员变量,类

final修饰类、方法、变量的效果

fianl修饰类:该类不能被继承(不能有子类,但是可以有父类)

final修饰方法:该方法不能被重写

final修饰变量:表明该变量是一个常量,不能再次赋值

变量是基本类型,不能改变的是值

  • 变量是引用类型,不能改变的是地址值,但地址里面的内容是可以改变的
  • 举例
public static void main(String[] args){
  final Student s = new Student(23);
  s = new Student(24); // 错误
  s.setAge(24); // 正确
}

2. 代码块

2.1 代码块概述


在Java中,使用 { } 括起来的代码被称为代码块

2.2 代码块分类

  • 局部代码块
  • 位置: 方法中定义
  • 作用: 限定变量的生命周期,及早释放,提高内存利用率
  • 示例代码
public class Test {
  /*
    局部代码块
    位置:方法中定义
    作用:限定变量的生命周期,及早释放,提高内存利用率
  */
  public static void main(String[] args) {
    {
      int a = 10;
      System.out.println(a);
    }
    // System.out.println(a);
  }
}

构造代码块

  • 位置: 类中方法外定义
  • 特点: 每次构造方法执行的时,都会执行该代码块中的代码,并且在构造方法执行前执行
  • 作用: 将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性
  • 示例代码
public class Test {
  /*
    构造代码块:
    位置:类中方法外定义
    特点:每次构造方法执行的时,都会执行该代码块中的代码,并且在构造方法执行
    前执行
    作用:将多个构造方法中相同的代码,抽取到构造代码块中,提高代码的复用性
  */
  public static void main(String[] args) {
    Student stu1 = new Student();
    Student stu2 = new Student(10);
  }
}
class Student {
  {
    System.out.println("好好学习");
  }
  public Student(){
    System.out.println("空参数构造方法");
  }
  public Student(int a){
    System.out.println("带参数构造方法...........");
  }
}

静态代码块

  • 位置: 类中方法外定义
  • 特点: 需要通过static关键字修饰,随着类的加载而加载,并且只执行一次
  • 作用: 在类加载的时候做一些数据初始化的操作
  • 示例代码
public class Test {
  /*
  静态代码块:
    位置:类中方法外定义
    特点:需要通过static关键字修饰,随着类的加载而加载,并且只执行一次
    作用:在类加载的时候做一些数据初始化的操作
  */
  public static void main(String[] args) {
    Person p1 = new Person();
    Person p2 = new Person(10);
  }
}
class Person {
  static {
    System.out.println("我是静态代码块, 我执行了");
  }
  public Person(){
    System.out.println("我是Person类的空参数构造方法");
  }
  public Person(int a){
    System.out.println("我是Person类的带...........参数构造方法");
  }
}

相关文章
|
3天前
|
Java 数据安全/隐私保护
java之基本语法
java之基本语法
15 6
|
21天前
|
存储 Java 容器
Java 基础语法
Java是一种面向对象的编程语言,其基础语法包括类和对象、方法、变量、控制流语句、继承和多态以及异常处理。代码需写在类中,`main()`方法是程序入口,变量用于存储数据,控制流语句控制程序执行流程,继承和多态增强代码灵活性,异常处理保证程序稳定性。掌握这些知识可帮助您编写简单的Java程序。
|
1月前
|
缓存 前端开发 Java
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
【8月更文挑战第10天】java基础巩固,工具类的封装
19 1
【前端学java】java基础巩固复习巩固语法练习-工具类的封装(14)
|
1月前
|
存储 前端开发 JavaScript
【前端学JAVA】有手就会!10min快速入门java的基础语法(2)
【8月更文挑战第8天】10min快速入门java的基础语法
33 2
【前端学JAVA】有手就会!10min快速入门java的基础语法(2)
|
25天前
|
安全 前端开发 Java
浅析JVM invokedynamic指令与Java Lambda语法的深度融合
在Java的演进历程中,Lambda表达式无疑是Java 8引入的一项革命性特性,它极大地简化了函数式编程在Java中的应用,使得代码更加简洁、易于阅读和维护。而这一切的背后,JVM的invokedynamic指令功不可没。本文将深入探讨invokedynamic指令的工作原理及其与Java Lambda语法的紧密联系,带您领略这一技术背后的奥秘。
18 1
|
29天前
|
小程序 Java
【aspose-words】Aspose.Words for Java模板语法详细剖析
本文通过详细分析Aspose.Words for Java模板语法,介绍了使用条件块、变量和动态合并表格单元格三个常用模板标签,并结合实际案例进行演示。通过这三个标签的实操,帮助读者更好地掌握Aspose.Words的使用技巧。此外,还提供了官方文档链接以便进一步学习。
84 0
【aspose-words】Aspose.Words for Java模板语法详细剖析
|
1月前
|
Java API
Java语法Java语法
【8月更文挑战第12天】Java语法
34 3
|
1月前
|
Java 关系型数据库 程序员
11 Java接口(语法、规范、微观&宏观接口)
11 Java接口(语法、规范、微观&宏观接口)
40 6
|
1月前
|
缓存 前端开发 Java
浅析JVM invokedynamic指令与Java Lambda语法
【8月更文挑战第27天】在Java的演进历程中,invokedynamic指令的引入和Lambda表达式的出现无疑是两大重要里程碑。它们不仅深刻改变了Java的开发模式和性能表现,还极大地推动了Java在函数式编程和动态语言支持方面的进步。本文将从技术角度浅析JVM中的invokedynamic指令及其与Java Lambda语法的紧密联系。
41 0
|
1月前
|
Java
IDEA——JAVA的快捷语法
IDEA——JAVA的快捷语法
32 0