JAVA面向对象—–final关键字

1:定义静态方法求圆的面积
2:定义静态方法求圆的周长
3:发现方法中有重复的代码,就是PI,圆周率。1:如果需要提高计算精度,就需要修改每个方法中圆周率。
4:描述一个变量1:方法都是静态的,静态只能访问静态,所以变量也定义为静态的。public static double PI=3.14;1:如果定义为public后,新的问题,类名.PI=300; 改变了PI的值。2:修改为private,修改为private后进行了封装,需要getset公共访问方法。3:现有的知识不能解决这样的问题了。可以使用final
class Demo12 {public static final double PI = 3.14; // 静态常量public static double getArea(double r) {return PI * r * r;}public static double getLength(double r) {return PI * r * 2;}public static void main(String[] args) {// Demo12.PI=300; 无法为最终变量 PI 指定值System.out.println(Demo12.PI);}}
5:使用final1:final关键字主要用于修饰类、类成员、方法、以及方法的形参。2:final修饰成员属性:1:说明该成员属性是常量,不能被修改。public static final double PI=3.14;1:public :访问权限最大2:static :内存中只有一份3:final  :是一个常量4:常量名大写5:必须初赋值。2:使用类名.成员。修改该成员的值,报错。--常量不能被修改1:基本数据类型,final使值不变2:对象引用,final使其引用恒定不变,无法让其指向一个新的对象,但是对象自身却可以被修改。3:该关键字一般和static关键字结合使用1:常量可以优先加载,不必等到创建对象的时候再初始化。4:final和static可以互换位置5:常量一般被修饰为final3:fianl修饰类:1:该类是最终类,不能被继承。1:将父类加final修饰,子类继承,就会报错。2:查看api文档发现String类是final的。Integer类也是final的1:为了防止代码功能被重写2:该类没有必要进行扩展4:final修饰方法:1:该方法是最终方法,不能被重写2:当一个类被继承,那么所有的非私有函数都将被继承,如果函数不想被子类继承并重写可以将该函数final修饰   3:当一个类中的函数都被修饰为final时,可以将类定义为final的。
class Father2{final void eat(){System.out.println("eating....");}
}class Son2 extends Father2{//该方法是最终方法,不能被重写void eat(){System.out.println("eating....");}
}
class Demo12 {public static void main(String[] args) {// Demo12.PI=300; 无法为最终变量 PI 指定值System.out.println(Demo12.PI);Son2 s=new Son2();s.eat();}
    5:final关键字修饰形参1:当形参被修饰为final,那么该形参所属的方法中不能被篡改。2: 项目中主要用于一些只用来遍历未知数据的函数。将未知变量声明为final的。增强数据的安全性。
class Demo14 {public static void main(String[] args) {System.out.println();String[] arr = { "think in java", "java就业教程", "java核心技术" };print(arr);}// 该方法,打印书名。public static void print(final String[] arr) {//arr = null; ,无法重新赋值for (int x = 0; x < arr.length; x++) {System.out.println(arr[x]);}}}

10:思考

为什么子类一定要访问父类的构造函数呢

1:子类继承了父类的属性,如果要使用父类的属性必须初始化,创建子类对象,必须先初始化父类属性

必须调用父类的构造方法。

2:为什么调用父类无参的构造函数

设计java语言之时,只知道编译器会默认添加无参的构造函数,有参的无法确定。
但是可以通过super关键字显式调用父类指定构造函数。

3:为什么super()this()语句要放在构造函数的第一行

子类可能会用到父类的属性,所以必须先初始化父类。


【正在看本人博客的这位童鞋,我看你气度不凡,谈吐间隐隐有王者之气,日后必有一番作为!下面有个“顶”字,你就顺手把它点了吧(要先登录CSDN账号哦 )】


—–乐于分享,共同进步!
—–更多文章请看:http://blog.csdn.net/duruiqi_fx


转载于:https://www.cnblogs.com/hainange/p/6153859.html

JAVA面向对象-----final关键字相关推荐

  1. java中final关键字的使用

    final 中文翻译为 最终的,在java中也是较为常用的关键字之一. 在java 中 final 关键字可以修饰  类.方法.变量 final 修饰在类上,则表示该类不能被继承,如果里面的成员变量没 ...

  2. 【零基础学Java】—final关键字与四种用法(二十九)

    [零基础学Java]-final关键字与四种用法(二十九) 一.final关键字 final关键字代表最终.不可改变的 常见的四种用法: 可以用来修饰一个类 可以用来修饰一个方法 可以用来修饰一个局部 ...

  3. ACAC java中final关键字

    java中final关键字/*1.final关键字:java 中的一个关键字,最终的,不可变的可以修饰变量以及方法,还有类等.1.修饰的方法,修饰的类无法被覆盖,无法被重写,无法被继承写的方法不希望被 ...

  4. Java中final关键字的简介说明

    下文笔者讲述java中final关键字的功能简介说明,如下所示 final关键字功能 final关键字修饰的类.方法.变量都会产生特殊的意义 如:final关键字修饰过后的类不能被子类继承final关 ...

  5. 关于Java中final关键字的详细介绍

    Java中的final关键字非常重要,它可以应用于类.方法以及变量.这篇文章中我将带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使 ...

  6. Java中final关键字的几种用法

    在java的关键字中,static和final是两个我们必须掌握的关键字.不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构.下面大家跟随动力节点java ...

  7. java中final关键字、权限修饰符、内部类(成员内部类、局部内部类、匿名内部类)

    final关键字: final表示最终的不可变的,在java中可以用来修饰类或方法.局部变量.成员变量. // 1.final关键字修饰类需要放在class关键字前面,表示不可变的类,需要注意,这里表 ...

  8. java static final关键字_Java的static与final关键字

    版权声明:转载原创文章请以超链接形式请注明原文章出处,尊重作者,尊重原创! 恰饭广告 static:(静态修饰符)面向对象中static修饰的内容是隶属于类,而不是直接隶属于对象的,所以static修 ...

  9. Java基础-final关键字

    目录 1.final修饰的类无法继承 2.final修饰的方法无法覆盖 3.final修饰局部变量 4.final修饰引用 5.final修饰实例变量 6.常量 7.总结: 1.final修饰的类无法 ...

最新文章

  1. 中国电子学会青少年编程能力等级测试图形化四级编程题:太空大战
  2. Cache系列:spring-cache简单三步快速应用ehcache3.x-jcache缓存(spring4.x)
  3. you think you know javascript
  4. Python list 操作
  5. 打造微量元素产业-丰收节交易会·李喜贵:签约南国健康产业
  6. 语言怎么绘画人物肖像_国画里的新年,看看古人是怎么过年的!
  7. git: command not found
  8. 聚合项目访问后台接口失败_【2020】Scry 8月项目进度月报
  9. Python中表示自然底数与浮点数精度(等效于MATLAB中eps)
  10. Optimizing regular expressions in Java
  11. 小程序设置发送验证码倒计时
  12. IS-IS快速收敛调优(三)——LSP快速洪范、SPF算法改进和按优先级收敛
  13. \t\tP2P终结者原理
  14. 裸辞自学java和报培训班_程序员:裸辞十多天,不敢告诉家里人,假装每天上班,安静地成长...
  15. 联邦学习拜占庭鲁棒差分隐私博弈论
  16. OpenCV计算图像像素最大值、最小值
  17. java计算机毕业设计校园订餐系统源代码+数据库+系统+lw文档
  18. 使用YQL解决跨域请求json转jsonp问题
  19. Pytorch 梯度计算,叶子节点,requires_grad,detach
  20. Easyrecovery 专业的手机数据恢复软件

热门文章

  1. 巧用CSS的Light滤镜
  2. 《异步处理在分布式系统中的优化作用》学习笔记
  3. matlab最小分类错误全局二值化算法
  4. 【Windows】清除win10开始菜单中失效打程序标签
  5. 告诫那些有创业梦的大学生,切记千万不要盲目创业!
  6. win7如何设置wifi热点_xp系统怎么设置无线网络热点(电脑设置wifi热点步骤)
  7. Lambda表达式(简单解析)
  8. Java项目:学生选课系统(java+javaweb+jdbc)
  9. python 乒乓球_python乒乓球
  10. markdown自动生成侧边栏TOC /目录