标签:java;常量;接口
一、接口中定义常量:
由于java interface中声明的字段在编译时会自动加上static final的修饰符,即声明为常量。
public interface Constants{ String name = "111"; } public class read{ public static void main(String[] args){ System.out.println("Class Constants‘s name = " + Constants.name); } }
由于引用了一个static final 的字段,编译器已经将interface Constants中name的内容编译进了class read中,而不是对其引用。因此只有重新编译class read,interface Constants中name发生的变化才能在class read中反映。
二、类中定义
public class Constants{ private static final String name = "111"; public static String getName(){ return name; } } public class read{ public static void main(String[] args){ System.out.println("Class Constants‘s name = " + Constants.getName()); } }
class read中是对Constants class的getName()方法的引用,当常量name的值改变时我们只需对class Constants中的常量做修改并重新编译,无需编译class read。
我们可以使用jdk提供的反编译工具javap反编译read.class看个究竟,输入:javap -c read即可查看两种方式的不同。
本文出自 “java我的最爱” 博客,请务必保留此出处http://lindianli.blog.51cto.com/7129432/1703799
标签:java;常量;接口
原文地址:http://lindianli.blog.51cto.com/7129432/1703799