1 package com.bytezreo.finaltest; 2 3 /** 4 * 5 * @Description final 关键字使用 6 * @author Bytezero·zhenglei! Email:420498246@qq.com 7 * @version 8 * @date 上午10:41:09 9 * @ final:最终的 10 * 1.final可以用来修饰的结构:类,方法,变量 11 * 12 * 13 * 2.final 用来修饰一个类:此类不能被其他类所继承 14 * 比如:String类,System类,StringBuffer类 15 * 16 * 3.final 用来修饰方法:表明此方法不能被重写 17 * 比如:Object类中getClass(); 18 * 19 * 4.final 用来修饰变量:此时的“变量”就称为是一个 常量 20 * 4.1 final修饰属性:可以考虑赋值的位置有:1.显式初始化 2.代码块中初始化 21 * 3.构造器中初始化 4. 22 * 4.2 final 局部变量: 23 * 尤其是使用final修饰形参时,表明此形参是一个常量。当我们调用此方法时, 24 * 给常量形参赋一个实参,一旦赋值以后,就只能在方法体内使用形参,但不能进行 25 * 重新赋值. 26 * 27 * 28 * static final: 用来修饰属性:全局常量 29 * 30 */ 31 public class FinalTest { 32 33 final int WIDTH = 10; 34 final int LEFT; 35 final int RIGHT; 36 37 //final int DOWN; 38 39 { 40 LEFT = 1; 41 } 42 43 public FinalTest() 44 { 45 RIGHT = 2; 46 } 47 48 public FinalTest(int n) 49 { 50 RIGHT = n; 51 } 52 53 // public void setDown(int down) 54 // { 55 // this.DOWN = down; 56 // } 57 // 58 59 60 public void doWidth() 61 { 62 //width = 20; //final 用来修饰变量:此时的“变量”就称为是一个 常量 63 //不能被修饰 64 } 65 66 public void show() 67 { 68 final int NUM = 10; //常量 69 // NUM += 20; 70 } 71 72 public void show(final int num) 73 { 74 //num = 20; 75 System.out.println(num); 76 } 77 78 79 public static void main(String[] args) { 80 81 int num = 10; 82 83 num = num + 5; 84 85 FinalTest test = new FinalTest(); 86 // test.setDown(20); 87 88 test.show(10); 89 } 90 } 91 92 final class FinalA{ 93 94 } 95 96 //class B extends FinalA{ 97 // 98 // 99 //} 100 101 102 //class C extends String{ 103 // 104 //} 105 106 class AA{ 107 108 public final void show() { 109 110 } 111 } 112 113 class BB extends AA{ 114 115 //final 方法不能被重写 116 // public void show() { 117 // 118 // } 119 }