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

news/2024/10/30 13:33:21/

文章目录

  • 1. final
  • 2. 代码块
    • 2.1 代码块概述
    • 2.2 代码块分类


在这里插入图片描述

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类的带...........参数构造方法");}
    }
    


在这里插入图片描述


http://www.ppmy.cn/news/92274.html

相关文章

ThreadLocal 实战之踩坑笔记

工作内容,不对外开放 文章标题 简要聊聊 ThreadLocalThreadLocal 实操举个栗子验证是否没有 remove 掉原信息思考简要聊聊 ThreadLocal ThreadLocal 提供线程内部的局部变量,我们可以将项目中的一些变量直接存放在当前线程中,在本线程内随时随地可取,隔离其他线程,获取保存…

《Oracle高级数据库》期末复习一文总结

文章目录 第一章:数据库基础1.数据库系统数据库数据库管理系统数据库系统 2.数据模型层次模型网状模型关系模型 3.关系型数据库(1)数据定义语言(DDL)(2)数据操纵语言(DML&#xff09…

ffprobe学习

如何使用ffprobe 使用ffprobe非常简单。你所要做的就是在命令行上调用它,并将它指向你的视频,如下所示: $ ffprobe 1.mp4 ffprobe version 5.0-full_build-www.gyan.dev Copyright (c) 2007-2022 the FFmpeg developersbuilt with gcc 11.2…

【算法】算法学习三:递归算法 栈

文章目录 一、递归的含义二、基线条件和递归条件三、栈3.1 什么是栈3.2 调用栈3.3 递归调用栈 一、递归的含义 递归算法是一种解决问题的方法,其中函数在执行过程中调用自身。它通过将一个大问题拆分成一个或多个相似的子问题,并逐步解决这些子问题来解…

开发工具---Eclipse 教程Ⅰ

Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。 Eclipse 是 Java 的集成开发环境(IDE),当然 Eclipse 也可以作为其他开发语言的集成开发环境,如C,C,PHP,和 Ruby 等。 Eclipse 附带…

《Spring Guides系列学习》guide11 - guide15

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

我为什么放弃WinUI3

基于WinUI3开发HiNote已经有一个多月的时间了,算是做出来一个简单能用的C端软件。 基于个人的经历,说说其中的开发体验。 UI设计语言 无论是否抄袭苹果,WinUI3给人的感觉都是眼前一亮的。简洁美观,现代化,毛玻璃的美…

Python之并发编程一背景知识

一、开篇介绍 顾名思义,进程即正在执行的一个过程。进程是对正在运行程序的一个抽象。 进程的概念起源于操作系统,是操作系统最核心的概念,也是操作系统提供的最古老也是最重要的抽象概念之一。操作系统的其他所有内容都是围绕进程的概念展…