关于Java中public static final int 用法的解答

public class FinalOriginalTest {  
    private final int a;  
    private String name;  
    public FinalOriginalTest(){  
        a = 3;  
     }  
    public FinalOriginalTest(String name){  
        this.name = name;  
     }  
    public static void main(String[] args){  
         FinalOriginalTest ft = new FinalOriginalTest();  
         FinalOriginalTest ft1 = new FinalOriginalTest("hello");  
     }  
}

问题1:上面的程序能否编译通过?如果不能,请说明理由。
解答:不能编译通过,可能没有初始化变量a。因为对于final类型的成员变量的初始化,在构造方法中完成赋值,如果一个类有多个构造方法,就要保证在每个构造方法中都要完成对该final类型变量的初始化工作。所以需要在public FinalOriginalTest(String name)构造方法中给a赋值。
注意:final可以用在类、方法、变量上。
     1、final用在类上,表明当前类它不能被继承,没有子类。
     2、final用在方法上,表明当前方法不能被override,不能被重写。
     3、final用在变量上,表明当前变量是一个终态的变量,是一个常量,这个变量的值一但被赋值后就不能被改变了。
     对于final类型的成员变量的初始化方式:
     1、声明变量时直接赋值
     2、在构造方法中完成赋值,如果一个类有多个构造方法,就要保证在每个构造方法中都要完成对该final类型变量的初始化工作。

问题2:上面的程序中,修正问题1之后,将private final int a;改为private static final int a;能否编译通过?如果不能,请说明理由。
解答:不能编译通过,因为a是静态变量,在这个类还没有实例化的时候,它的值就已经有了。所以对于一个int类型的static final类型的变量a来说,我们只能在声明的时候就给它赋值private static final int a = 3;然后把构造方法里面的赋值给注释掉,这样编译就能通过了。还可以在static{}这样的静态块中初始化它。

总结:对于final类型的变量,对于不加static我们可以有两种方式给它赋值:声明变量时直接赋值;在构造方法中完成赋值,如果一个类有多个构造方法,就要保证在每个构造方法中都要完成对该final类型变量的初始化工作。对于一个变量既是final又是static的,我们必须在声明变量时直接赋值。

  • 9
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: public static final intJava的关键字,用于定义一个公共的静态常量。其public表示该常量可以被其他类访问,static表示该常量是静态的,final表示该常量是不可变的。在Java,常量一般使用大写字母表示,例如:public static final int MAX_VALUE = 100; 表示定义了一个最大值为100的常量。 ### 回答2: public static final intJava的一个关键字组合,它的含义是声明一个公共的、静态的和不可变的整型变量。其public表示该变量可以被其他类访问,static表示它属于类的,而不是属于对象的,final表示它的值在初始化后不可再修改,int表示该变量的数据类型为整型。 使用public static final int可以定义常量,常量的值在程序运行过程不会发生变化。常量的命名一般使用全大写字母,多个单词之间用下划线分隔,以便更容易阅读和理解其含义。 在Java程序使用public static final int有很多用途。它可以用来定义一些固定的数值,例如某个数学常数,或者是程序使用到的具体数值等。它也可以用于定义枚举类型,枚举类型表示一组具有固定值的常量集合。此外,public static final int还可以用来指定数组的长度,例如定义一个固定大小的整型数组。 使用public static final int的好处是可以提高程序的可读性和维护性。通过使用常量,我们可以在代码直接使用具体的数值,而无需记住该数值的具体取值。同时,常量的值在初始化后就无法修改,可以确保程序使用的数值始终保持一致,避免了出现潜在的错误。 总之,public static final intJava一个重要的关键字组合,用于声明一个公共的、静态的和不可变的整型变量。它的使用可以提高程序的可读性和维护性,并且可以用于定义常量、枚举类型和数组长度等。 ### 回答3: public static final intJava编程语言的一个常见关键字组合,表示将一个变量声明为公共静态和不可修改的整数类型。 publicJava的一个访问修饰符,用于指定该变量可以被其他类访问。当一个变量被声明为public时,其他类可以直接使用该变量。 staticJava的另一个关键字,用于指定该变量是类级别的,并且可以在没有实例化对象的情况下访问。在这种情况下,变量是与类相关联的,而不是与对象相关联的。 finalJava的另一个关键字,用于指定该变量是不可修改的。一旦变量被声明为final,它的值将不能被改变。 intJava的一种基本数据类型,用于表示整数。 因此,public static final int 将一个变量声明为公共静态和不可修改的整数类型。这意味着该变量是公共可访问的,可以在没有实例化对象的情况下直接访问,并且其值不能被改变。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值