`
incyanggan
  • 浏览: 34069 次
  • 性别: Icon_minigender_1
  • 来自: 广州
文章分类
社区版块
存档分类
最新评论

Java菜鸟学习笔记--面向对象篇(十七):Final修饰符

 
阅读更多

Final

1. final关键字

在Java中, 可以使用final关键字修饰类、方法以及成员变量。

(1).final标记的类不能被继承;

(2).final标记的方法不能被子类复写;

(3).final标记的变量即成为常量,只能被赋值一次,对于基本类型,不可变指的是值对于引用类型,不可变指的是引用地址

注意: 如果使用final来声明常量,请遵守以下常规: final标记的变量名,所有单词字母都需大写.



Final Class

Afinalclasscannot be subclassed.

package me.testfinal;
final class Sub{		
}

class SuSu extends Sub{}//由于Sub是Final定义,所以不能继承
//cannot inherit from final Sub


Finalmethods


Afinalmethodcannot beoverriddenor hidden by subclasses.


package me.testfinal;
class Test{
		
	final int I=8;
	
	final void say(){
		
		System.out.println("Final定义 允许修改");
	}
	
	
}
class Sub extends Test{
	
	void say(){}
	
	
}
public class TestFinal{
	
	public static void main(String[] args){
		
		Sub your=new Sub();
		your.say();//编译错误
		/*输出:ay() in Sub cannot override say() in Test
		*///Final定义的不能更改了
			
		
	}

}


Finalvariables


Afinalvariablecan only be initialized once, either via an initializer or an assignment statement.


1.Final 常量 的定义

//Final 1.Final的变量值不能改变 2.Final 的方法不能重写 3.Final的方法不能被继承

package me.testfinal;
class Test{
		
	final int I=8;	
	
}

public class TestFinal{
	
	public static void main(String[] args){
		
		Test my=new Test();
		//my.I=100;
		/*输出:
		cannot assign a value to final variable i
		*///Final定义,不能改变这个值~
		
	}

}


2.Final & Static Final 常量的定义


//final与static final

package me.testfinal;
class Test{
		
	//要用大写书写常量
	private final String NAME="Gino";
	private final int A=100;
	public final int B=80;
	
	public static final int  C=60;
	//空白final
	public final int D;//必须在构造器时候初始化
	Test(){
		
			D=99;//要不在定义时候初始化,要不在构造器初始化
	
		
	}
	//	public static final int E;//编译错误
	/*
	 variable E might not have been initialized
	*///静态的必须在定义时候就初始化
	
	
	public void set(){
		
		D=66;
		/*cannot assign a value to final variable D
		D=66;*///只能在构造器或者定义的时候初始化他
	}
	
}
public class TestFinal{
	
	public static void main(String[] args){
	
		Test coco=new Test();
		
	}
}



3.Final 修饰 形参

//Final修饰参数

package me.testfinal;
class Test{
		
	public void say(final int i){
		
		i=9;//编译错误
		/*输出:
		TestFinal.java:8: error: final parameter i may not be assigned
		i=9;
		^
		1 error
		*///一旦形参接受了传过来的值,就不能在修改这个值了。这个值只读;
		System.out.println(i);
	}
	
	
	
}
public class TestFinal{
	
	public static void main(String[] args){
	
		Test coco=new Test();
		coco.say(5);//传5过去,但是在say方法里面i的值就只能是5了
		coco.say(9);//可以传9过去,同理现在say方法里面,i固定是9了
		
	}
}





作者:YangGan
出处:http://blog.csdn.net/incyanggan
本文基于署名 2.5 中国大陆许可协议发布,欢迎转载,演绎或用于商业目的,但是必须保留本文的署名Yanggan(包含链接).


分享到:
评论

相关推荐

    菜鸟Java葵花宝典2017-2018

    《菜鸟Java葵花宝典2017-2018》是一本专注于Java学习与面试的资源集合,旨在帮助初学者系统地掌握Java编程语言并为面试做好充分准备。这本书可能涵盖了Java的基础知识、进阶特性、设计模式以及常见面试问题等内容。...

    菜鸟的SAP自学学习笔记

    ### SAP自学学习笔记知识点概述 #### 一、配置总体框架 **1.1 系统环境** - **定义**: 指的是SAP系统的基本硬件和软件环境。 - **重要性**: 正确配置系统环境是确保SAP系统正常运行的基础。 - **涉及内容**: - ...

    C++学习笔记- 面向对象 .md

    内容是C++面对对象的,目录大致来源于菜鸟文档的C++面向对象,笔记是参考各种文章以及菜鸟文档改编的,内容包含C++类和对象(类定义和对象定义,类成员函数,类访问修饰符,友元函数,内联函数,this指针,静态成员...

    JAVA菜鸟面试题库

    综上所述,面对JAVA面试,面试者应当注重技术基础的学习与积累,并在此基础上提升自己的综合能力,包括但不限于沟通技巧、团队协作能力等。同时,了解当前市场的薪资水平和公司招聘偏好有助于更好地定位自己,为未来...

    Java基础知识笔记详细版-菜鸟翻阅必备

    ### Java基础知识笔记详细版-菜鸟翻阅必备 #### 一、Java概述 1. **Java语言发展史**: - Java由Sun Microsystems公司于1995年推出。 - 最初由James Gosling领导的设计团队开发,目标是用于家用电器的编程。 - ...

    java学习类网站,让你有菜鸟变高手

    ### Java学习资源汇总:从入门到精通 #### 引言 随着互联网技术的快速发展与迭代,Java作为一门经典的编程语言,依然占据着重要的地位。对于初学者或是希望提升技能的人来说,选择合适的在线学习资源至关重要。...

    Android studio1.3.1从菜鸟到高手--第一季-视频-百度盘

    根据提供的文件信息,我们可以推断出这是一套关于Android Studio 1.3.1的教学视频资料,主要面向初学者到进阶用户。接下来,我们将基于这些信息深入探讨相关的知识点。 ### Android Studio 1.3.1简介 Android ...

    20210808-银河证券-交通运输行业:菜鸟网络业绩表现持续向好,京东航空获批筹建.rar

    标题中的“20210808-银河证券-交通运输行业:菜鸟网络业绩表现持续向好,京东航空获批筹建”表明这是一份由银河证券发布的关于2021年8月8日交通运输行业的研究报告,重点提及了菜鸟网络的业务发展情况以及京东航空的...

    Java学生管理系统——菜鸟

    - **面向对象编程**:Java是一种面向对象的语言,系统的核心会涉及类的设计,包括学生类、班级类、教师类等,每个类都会有自己的属性和方法。 - **控制结构**:如if-else语句、switch-case、for、while循环用于...

    大数据开发资源.docx

    - **学习途径**:建议使用在线教程(如菜鸟教程)进行入门学习。 **1.2 SQL基础** - **学习目标**:熟悉SQL语法,能够熟练地进行数据查询和简单的数据分析。 - **学习途径**:同样可以通过在线教程或书籍进行学习...

    基于Java语言教程&案例&相关项目资源

    - **封装**:了解封装的作用,掌握private、public、protected等访问修饰符的使用。 - **多态**:理解多态性的概念,学会使用抽象类和接口实现多态。 5. **异常处理**: - **基本语法**:学习try-catch-finally...

    runoob菜鸟教程网站镜像

    - **适用对象**:主要面向编程初学者和技术爱好者。 - **应用场景**: - **自学**:利用runoob提供的资源进行自我提升。 - **备课**:教师可以借助这些资源准备课程材料。 - **项目参考**:开发者在项目开发过程...

    C#制作麻将游戏源码,

    此外,“对刚学OO思想想俺一样的菜鸟或许有那么点帮助”暗示源码可能包含了一些面向对象编程(Object-Oriented Programming, OOP)的基础应用,如继承、封装和多态性。 【标签】:“winForm程序”说明这个游戏是...

    JAVA初学者笔记 使用JAVA理解逻辑基础-菜鸟入门(简单易懂)

    【JAVA初学者笔记:理解逻辑基础】 在编程领域,Java是一种广泛应用的高级编程语言,尤其适合初学者。本文将从基础出发,帮助你理解和掌握Java编程的基本概念。 首先,了解什么是程序。程序是一系列有序指令的集合...

    新版Android开发教程+笔记十一--可视化UI设计DroidDraw

    ### 新版Android开发教程+笔记十一--可视化UI设计DroidDraw #### 1. DroidDraw简介 DroidDraw是一款强大的Android GUI可视化设计器,能够帮助开发者轻松创建复杂的Android Layout XML文件。这款工具基于Java Swing...

    java学习1-3课笔记

    这份"java学习1-3课笔记"涵盖了初学者入门Java的基础知识,由张孝祥老师的课程内容整理而成,适合对编程感兴趣的菜鸟们作为学习参考资料。 1. **Java简介**: Java是由Sun Microsystems(现为Oracle Corporation的...

    DAMA学习笔记-第01-17章细化第5章数据建模较多内容

    DAMA学习笔记-第01-17章细化第5章数据建模较多内容

Global site tag (gtag.js) - Google Analytics