`
hahalzb
  • 浏览: 166181 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

final学习笔记(一)

    博客分类:
  • java
阅读更多
首先看下面的代码:
public class Test2 {

	private  final  int a;
	private String name;
	
	public Test2() {
		a=3;
	}
	
	public Test2(String name) {
		this.name=name;
	}
	
	public static void main(String[] args) {
		Test2 test = new Test2();
		Test2 test2 = new Test2("hello");
	}
}


编译是不会通过的,在第11行出错。因为成员变量a被声明为final类型,也就是说a是被该类的多个对象所共享,当创建一个该类的对象事必须为变量a赋值,一旦赋值了就不能改变了。但是当一个类有多个构造方法时,对成员变量a需要在每个构造方法中初始化,也就是说在this.name=name前加一行a=5,编译就会通过。

总结:
引用

对于final类型成员变量的初始化方法有两种:
  1、声明变量时直接赋值;
  2、在构造方法中完成赋值,如果一个类有多个构造方法,就要保证在每个构造方法都要完成对该final类型的成员变量赋值。


将这个代码稍微改一下,在final前加一个static:
public class Test2 {

	private  static final  int a;
	private String name;
	
	public Test2() {
		a=3;
	}
	
	public Test2(String name) {
		a=7;
		this.name=name;
	}
	
	public static void main(String[] args) {
		Test2 test = new Test2();
		Test2 test2 = new Test2("hello");
	}
}

编译同样不会通过。
总结:
引用

  对于final+static声明的成员变量,必须在声明时赋值,不能在构造方法中赋值。
因为static类型的变量是在加载类的时候创建的,也就是说是在创建对象之前即执行构造方法之前执行的。
分享到:
评论

相关推荐

    思科ccna学习笔记

    思科CCNA学习笔记 思科CCNA学习笔记是网络工程师的必备知识,涵盖了计算机网络的基本概念、OSI与TCP/IP协议框架、IP报文传输过程、传输层功能、TCP与UDP对比等内容。以下是该笔记的详细知识点: 一、OSI与TCP/IP...

    j2se学习笔记——课堂笔记

    **J2SE学习笔记——接口与相关程序** Java 2 Platform, Standard Edition(J2SE)是Java平台的核心部分,提供了开发和运行桌面应用程序、Web应用程序和服务的基础。本笔记主要聚焦于J2SE中的接口(Interface)概念...

    java学习笔记(一个初学者的java学习笔记)

    ### Java学习笔记——基础知识详解 #### 一、Java基本数据类型及内存占用 Java作为一种广泛使用的编程语言,其基础数据类型对于理解程序的行为至关重要。Java提供了八种基本数据类型,分为数值型、字符型和布尔型...

    hibernate框架学习笔记整理

    ### hibernate框架学习笔记整理 #### 一、Hibernate框架简介 **Hibernate框架**是一种用于Java应用的**对象关系映射**(Object-Relational Mapping, ORM)解决方案,它允许开发者使用面向对象的方式操作数据库中的表...

    JAVA学习笔记

    通过讲解this关键字、继承、static关键字和代码块、final关键字、多态、方法重写、抽象类与接口、封装与隐藏、垃圾回收、类组合、包装类、对象处理、类成员、final修饰符详解等知识点,本文档为Java学习者提供了一套...

    Java JDK 5.0学习笔记

    本学习笔记旨在帮助新手全面理解并掌握Java 5.0的关键知识点。 一、泛型(Generics) Java 5.0引入了泛型,它允许在定义类、接口和方法时指定类型参数,从而实现类型安全的集合。泛型消除了强制类型转换的需要,...

    JAVA学习笔记.pdf

    JAVA学习笔记.pdf JAVA学习笔记.pdf 中讲解了JAVA语言的基础知识,包括类的基本知识、成员变量、成员方法、类的实例、内部类、匿名类、接口、包等。 类的基本知识 在JAVA中,类是对象的蓝图,类的声明语法为:...

    java学习笔记 java学习笔记

    Java学习笔记涵盖了许多核心概念,包括面向对象编程的各个方面。以下是对这些知识点的详细解析: 1. **继承中方法的重写**: 当子类重写父类的方法时,子类方法的访问权限必须至少等于或大于父类中对应方法的访问...

    java学习笔记.pdf

    ### Java学习笔记知识点总结 #### 第一章:Java语言入门 - **1.1 Java的诞生** ...以上是关于Java学习笔记的主要知识点总结,涵盖了从基础概念到高级特性的各个方面,对于初学者来说是一份非常全面的学习资料。

    良葛格Java学习笔记

    【良葛格Java学习笔记】 本笔记主要涵盖了Java编程语言的核心概念和技术,旨在帮助初学者以及有一定基础的开发者深入理解并掌握Java。Java作为一种广泛应用于企业级应用开发、移动开发(尤其是Android)以及大数据...

    Java学习笔记(必看经典)

    Java是一种广泛使用的面向...总的来说,Java学习笔记应该涵盖从基础知识到高级特性的全面内容,适合初学者和有一定基础的开发者作为参考。通过不断实践和学习,可以逐步掌握Java编程的精髓,成为一名熟练的Java开发者。

    Java学习笔记---15.面向对象编程10-Java中final关键字,抽象类与接口

    - 如果一个方法被声明为`final`,如`public final void myMethod()`,则不允许子类重写这个方法。 - `final`修饰变量时,如果是类级别的常量,通常遵循全大写命名约定,如`public static final String MY_CONSTANT...

    Java JDK 7学习笔记(国内第一本Java 7,前期版本累计销量5万册)

     《Java JDK 7学习笔记》将IDE操作纳为教学内容之一,使读者能与实践结合,提供的视频教学能更清楚地帮助读者掌握操作步骤。 内容简介 书籍 计算机书籍  《java jdk 7学习笔记》是作者多年来教学实践经验的总结...

    良葛格Java JDK 5.0学习笔记ch05

    在这个"良葛格Java JDK 5.0学习笔记ch05"中,我们将深入探讨其中的关键知识点。 一、泛型 Java 5.0引入了泛型,这是一项强大的类型安全机制,允许在编译时检查类型。泛型可以应用于类、接口和方法,通过指定参数...

    java技术从入门到精通(孙鑫)学习笔记

    孙鑫老师的《java技术从入门到精通》学习笔记是许多初学者和进阶者的重要参考资料。下面,我们将深入探讨这份珍贵资料中可能涵盖的核心概念。 首先,入门阶段,你需要了解Java的基础语法。包括数据类型(如基本类型...

    良葛格Java JDK 5.0学习笔记[可打印]

    良葛格的Java JDK 5.0学习笔记是一份宝贵的资源,适合初学者和有经验的开发者回顾这个版本的关键概念。下面我们将详细探讨Java JDK 5.0中的核心知识点。 1. **泛型(Generics)** 泛型是JDK 5.0引入的一项重要特性...

    java学习笔记 初学者必读

    2. 一•基础知识 2-4 2.1. 配置环境 2-4 2.2. Java中基本概念 2-5 3. 二•定义,关键字和类型 3-5 3.1. 注释的三种形式 3-5 3.2. Java代码中的“;”、“{}”、“ ” 3-5 3.3. 标识符 3-5 3.4. 数据类型 3-6 3.5. ...

    Log4j学习笔记和一套完整定义实例

    **Log4j学习笔记** Log4j是一款广泛应用于Java编程中的日志记录框架,由Apache软件基金会开发。它提供了一套灵活的日志记录系统,帮助开发者在开发过程中追踪应用程序的行为,便于调试、性能分析和问题排查。Log4j...

    JPA学习笔记

    【JPA学习笔记】 JPA(Java Persistence API)是Java平台上的一个ORM(Object-Relational Mapping)规范,它提供了一种将Java对象与数据库表进行映射的机制,简化了数据库操作。JPA允许开发者使用面向对象的方式...

Global site tag (gtag.js) - Google Analytics