Java学习之路:代码块与final关键字

本文介绍了Java中的代码块,包括静态代码块和非静态代码块,详细阐述了它们的作用、执行时机以及使用限制。同时,讲解了final关键字的用法,包括final修饰类、方法和变量的含义及限制,强调了final变量作为常量的特点。
摘要由CSDN通过智能技术生成

一、代码块

  1. 作用:用来初始化类、对象

     2. 分类:静态代码块 和 非静态代码块

1. 静态代码块 : 用static修饰的代码块

  • 内部可以有输出语句

  • 随着类的加载而执行,且只执行一次

  • 作用:初始化类的信息

  • 如果一个类中定义了多个静态代码块,则按照声明的先后顺序执行

  • 静态代码块的执行要优先于非静态代码块的执行

  • 静态代码块内只能调用静态的属性、静态的方法、不能调用非静态的结构

例:

class Person{    public static int total;    static {      total = 100;      System.out.println("in static block!");    }}public class PersonTest{  public static void main(String[] args){    System.out.println("total = " + Person.total);    System.out.println("total = " + Person.total);  }}

2.非静态代码块:没有static修饰的代码块

  • 内部可以有输出语句

  • 随着对象的创建而执行

  • 每创建一个对象,就执行一次非静态代码块

  • 作用:可以在创建对象时,对对象的属性等进行初始化

  • 非静态代码块内可以调用静态的属性、静态的方法和非静态的结构

二、final关键字

  1. final可以用来修饰的结构:类、方法、变量

  2. 作用:final标记的类不能被继承;final标记的方法不能被子类重写;final标记的变量(成员变量或局部变量)即称为常量。且只能被赋值一次

1.final修饰类:

final class A {}class B extends A {} //错误,不能被继承

2.final修饰方法:

class A {public final void print(){    System.out.println("a");  }}class B extends A {public void print() { // 错误,不能被重写。System.out.println("b");  }}

3.final修饰变量->常量

class A {  private final String INFO = "A";//声明常量  //常量名要大写,内容不可以修改}

​​​​​​​

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值