package com.june.study.final_test;
/**
* final的--成员--变量的限制:
* 1. 必须被显式初始化,默认值也不管用
* 2. 只要在用之前初始化完毕就行,(1)定义时就初始化,(2)在块中初始化,(3)在构造器中初始化
* 3. 初始化有且只有一次,上面的(1)(2)(3)不能重复初始化
*
* final的--局部--变量限制:
* 1. 如果不被用到,可以不初始化,不报错;否则同上
*
* @author lijg fantaxy025025@126.com
* @date Feb 25, 2010 12:45:54 PM
* @version V3.0
*/
public class FinalTest {
/**
* 这个块放在变量定义前也不报错
*/
{
i = 1;
s = "I am s";
//i3 = 33;//compile exception
i5 = 55;
}
final int i;
final int i2;
final int i3 =3;
//final int i4;//compile exception, must be initialized, the default value does not work here!
final String s;
final String s2;
final String s3 = "I am s3";
//final String s4;//compile exception must be initialized
int i5;
String s5;
/**
* 这个块证明可以对普通成员变量重复赋值
*/
{
i5 = 555;
s5 = "I am s5";
}
public FinalTest(){
i2 = 2;
s2 = "I am s2";
//s3 = "I am s33";//compile exception
}
public int sum(final int x, int y){
//x++;//compile exception
//x = x + y;//compile exception
y++;
y = y + x;
final int z;//no compile exception!如果这个变量不被用到,那么不报错!
final int m;
m = 1;
//m = 2;//compile exception duplicate init here
y = m + 1;
return x + y;
}
public static void main(String[] args) {
FinalTest o = new FinalTest();
}
}
分享到:
相关推荐
成员变量的覆盖(有时会被误认为是“重写”)是理解Java继承机制的关键之一。本文将详细解释成员变量覆盖的基本概念,并通过示例代码来展示这一现象。 #### 成员变量覆盖的基本概念 成员变量覆盖是指在子类中声明...
"Java实用程序设计100例(第一章)"着重介绍了基础且实用的Java编程技巧和概念,为初学者提供了丰富的学习资源。本章节可能涵盖了面向对象编程基础、数据结构、控制流、异常处理、类与对象的创建等核心主题。 1. **...
在"Java实用编程100例2"这个资源中,我们聚焦于Java编程语言的初级应用,通过一系列的实例帮助初学者快速上手并掌握Java编程基础。这些实例覆盖了从基本语法到常见问题解决的各种场景,是学习和提升Java编程技能的...
"Java实效编程百例"很可能是一个包含了一系列实用的Java编程示例的资源集合,旨在帮助初学者和有经验的开发者提升编程技能,解决实际问题。 在Java编程中,有若干关键知识点值得深入探讨: 1. **基础语法**:包括...
final变量的值不能被改变,适合用于定义常量。 自动类型转换 Java支持自动类型转换。在例2-5中,展示了自动类型转换的实例,包括char到int、byte到float、int到long等。自动类型转换可以简化代码,但需要注意可能...
"Java源码1000例"是一个丰富的资源集合,包含了大量的Java编程示例,旨在帮助开发者深入理解和掌握Java语言的各种特性和应用场景。 在Java编程中,核心知识点包括: 1. **基础语法**:如变量定义、数据类型(基本...
- 如果在定义时设置了初始值并且该值可以在编译时确定,则这种final变量类似于宏替换,编译器会直接替换所有的引用为该值。 - **内部类与final**: - 在任何内部类中访问的局部变量都必须使用`final`修饰。 综上...
接下来,我们将详细解析与“Java经典编程100例”中提到的接口相关的知识点,包括接口的基本概念、如何定义和实现接口、接口在实际编程中的应用场景以及接口与抽象类的区别等内容。 ### 接口的基本概念 在Java中,...
Java 变量关键字是 Java 编译器中具有特殊含义的词语,它们用于表示一种数据类型或者表示程序的结构等。关键字不能用作变量名、方法名、类名、包名。 一、关键字概述 ---------------- Java 关键字是一组特殊的...
本示例“例 2-1”旨在演示如何在Java程序中定义和输出常量与变量。常量是不可变的值,一旦被定义就不能改变;而变量则可以储存可变的数据。 首先,我们来详细了解常量。在Java中,常量通常通过关键字`final`来定义...
在Java中,我们可以使用关键字`final`来声明一个常量。例如: ```java public class Main { public static final int PI = 3.14; // 声明一个名为PI的浮点型常量 } ``` 在这个例子中,`PI`是一个常量,它的值是...
Java中的`static`关键字在编程中扮演着至关重要的角色,它是Java类定义的一部分,用于修饰类的成员变量、成员方法以及代码块。下面我们将详细探讨`static`变量、`static`方法以及`static`代码块的作用和用法。 1. *...
Java编程百例是一份丰富的资源,旨在帮助初学者和进阶者深入理解并熟练掌握Java编程语言。这个压缩包包含了100个精心设计的Java编程示例,每个实例都涵盖了不同的主题,从基础语法到高级特性,为学习者提供了一个...
如果final变量在编译时其值就能确定(例如,直接初始化或静态常量的计算),编译器可能会在编译期间进行字面量替换,提高代码执行效率。如下例所示: ```java final String str2 = "helloWorld"; String str4 = str...
6.2.1 在类中给每个变量一个初始值 147 6.2.2 定义自己的引用 147 6.2.3 使用点操作符的技巧 148 6.2.4 类的数组 149 6.3 小结:Java其实是个类和对象的世界 152 6.4 习题 153 第7章 Java中的方法——给汽车...
下例定义了一个 Point 类 ,并且声明了它的两个变量 x、y 坐标 ,同时实现 init()方法 对 x、y 赋初值 。 class Ponit { int x,y; void init(int ix, int iy){ x=ix; y=iy; } } 类中所定义的变量和方法都是类的...
在Java中,一旦一个变量被声明为`final`,它的值就不能再改变。这使得`final`变量成为一种类似于C/C++中的`const`常量的概念。例如: ```java public class Constants { public static final int PI = 3.14159; //...
这份《100例常见错误及解决方案.pdf》文件中的内容是针对Java编程中常见的问题进行的一个总结,接下来我将详细阐述其中提到的一些Java编程错误及解决方案: 1. 抽象方法的定义问题 - 在Java中,抽象方法不能包含...
Java 2应用编程150例是一份宝贵的资源,涵盖了广泛的Java编程实践,旨在帮助开发者提升技能,无论是初学者还是有经验的程序员都能从中获益。这个压缩包包含了一系列精心设计的实例,覆盖了Java开发的多个核心领域。...