【JAVA学习笔记】39

编程入门 行业动态 更新时间:2024-10-24 16:21:38

【JAVA<a href=https://www.elefans.com/category/jswz/34/1770117.html style=学习笔记】39"/>

【JAVA学习笔记】39

项目代码

一、final关键字基本介绍

final可以修饰类、属性、方法和局部变量,
在某些情况下,程序员可能有以下需求,就会使用到final
1)当不希望类被继承时,可以用final修饰


2)当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰


3)当不希望类的的某个属性的值被修改,可以用final修饰.


4)当不希望某个局部变量被修改,可以使用final修饰 

public class Final01 {public static void main(String[] args) {E e = new E();// e.TAX_RATE = 0.09;}
}
final class A{}
// class B extends A{} 1)当不希望类被继承时,可以用final修饰.
class C{// public final void hi(){ //2)当不希望父类的某个方法被子类覆盖/重写(override)时,可以用final关键字修饰//     System.out.println("C类的hi方法");// }
}
class D extends C{public void hi(){System.out.println("重写了子类的hi方法");}
}
class E{public final double TAX_RATE = 0.08;
}
class F{public void cry(){final double NUM = 0.01;// NUM = 0.9;System.out.println(NUM);}
}

 二、final关键字使用注意事项和细节讨论


1.final修饰的居性又叫常量,一般用XX_XX_XX_X来命名

2.final修饰的属性在定义时必须赋初值并且以后不能再修改,赋值可以在如下位置之一

        ①定义时:如public final double TAX RATE=0.08;

        ②在构造器中

        ③代码块中。

class AA{public final double TAX_RATE1 = 0.08;public final double TAX_RATE2;public final double TAX_RATE3;//①定义时:如public final double TAX RATE=0.08;// //②在构造器中// //③代码块中。public AA(){TAX_RATE2 = 1.1;}{TAX_RATE3 = 10.0;}
}


3.如果final修饰的属性是静态的,则初始化的位置只能是

①定义时        ②在静态代码块        不能在构造器中赋值。

4.final类不能继承,但是可以实例化对象。

5.如果类不是final类,但是含有final方法,则该方法虽然不能重写,但是可以被继承。

public class FinalDetail01 {public static void main(String[] args) {new AA();new EE().cal();}
}
class DD{public final void cal(){System.out.println("cal()方法");}
}
class EE extends DD{}

5.一般来说,如果类已经是final类了,就不需要再将方法修饰成final

6.final不能修饰构造器方法(构造器)

7.final和static往往搭配使用,效率更高,不会导致类加载底层编译器做了优化处理。

public class FinalDetail02 {public static void main(String[] args) {System.out.println(BBB.num);}
}
class BBB{public final static int num = 10000;//去掉final会执行BBB代码块初始化//final和static往往搭配使用,效率更高,不会导致类加载底层编译器做了优化处理。static {System.out.println("BBB代码块被执行");}
}

8.包装类(Integer, Double,Float, Boolean等都是fina),String也是final类.

三、final关键字的练习

1.

请编写一个程序,能够计算圆形的面积。要求圆周率为3.14.赋值的位置3个方式都写一下.

public class FinalExercise01 {public static void main(String[] args) {Cirle cirle = new Cirle(6);System.out.println(cirle.cal());}
}
class Cirle{private double radius;private final double PI = 3.14;public Cirle(double radius) {this.radius = radius;}public double cal(){return radius * radius * PI;}
}

其实正常来说应该做成静态方法,不创建对象也能计算,但考虑到可能要保存实例的属性,用上面的也对

下面给个static的

public class FinalExercise01 {public static void main(String[] args) {System.out.println(Cirle.cal(6));}
}
class Cirle{private final static double PI = 3.14;public static double cal(double radius){return radius * radius * PI;}
}

2.

下面的那个对 return x + 1 是+符号 没有在改变x

更多推荐

【JAVA学习笔记】39

本文发布于:2023-12-03 20:22:09,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1657250.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:学习笔记   JAVA

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!