云南购物网站建设,flash网站什么意思,做柜子设计的网站设计,贵阳网站开发推荐不希望任何人可以随意修改自己的东西的时候可以用final关键字进行修饰 * 1.final是一个关键字#xff0c;表示最终的#xff0c;不可变的 * * 2.final修饰的类无法被继承 * * 3.final修饰的方法无法被覆盖 * * 4.final修饰的变量一旦被赋值后#xff0c;不可重新赋…
不希望任何人可以随意修改自己的东西的时候可以用final关键字进行修饰 * 1.final是一个关键字表示最终的不可变的 * * 2.final修饰的类无法被继承 * * 3.final修饰的方法无法被覆盖 * * 4.final修饰的变量一旦被赋值后不可重新赋值【不可二次赋值】 * * 5.final修饰的实例变量必须手动赋值不能采用系统默认值 * * 6.final修饰的引用一旦指向某个对象之后不能再指向其它对象那么被指向的对象无法被垃圾回收器回收 只要new一次就会产生一个对象如果将这个对象的引用用final修饰则不能再次new这个对象的引用 final Person personnew Person(10); personnew Person(10);//报错 * * 7.final修饰的引用虽然指向某个对象之后不能指向其它对象但是所指向的对象内部的内存是可以被修改的 * * 8.final修饰的实例变量一般和static联合使用存储在方法区被称为常量
常量实际上常量和静态变量一样区别在于
常量的值不能变
常量和静态变量都是存储在方法区并且都是在类加载时候初始化
常量一般都是公共的public 万变不离其宗final修饰的只能赋值一次 --------------------------------------------------------------------------------------------------------------------------------------------------------------- 新建一个User类
package com.lbj.javase12;public class User {public int id;public User() {super();
}public User(int id) {super();this.id id;
}}新建一个测试类
package com.lbj.javase12;
/*** 1.final是一个关键字表示最终的不可变的* * 2.final修饰的类无法被继承* * 3.final修饰的方法无法被覆盖* * 4.final修饰的变量一旦被赋值后不可重新赋值【不可二次赋值】* * 5.final修饰的实例变量必须手动赋值不能采用系统默认值* * 6.final修饰的引用一旦指向某个对象之后不能再指向其它对象那么被指向的对象无法被垃圾回收器回收* * 7.final修饰的引用虽然指向某个对象之后不能指向其它对象但是所指向的对象内部的内存是可以被修改的* * 8.final修饰的实例变量一般和static联合使用被称为常量*/
public class Test01 {
/** 成员变量之实例变量* * 实例变量有默认值final修饰的变量一旦赋值不能重新赋值* * 综合考虑java语言最终规定实例变量使用final修饰后必须手动赋值不能采用系统默认值* * *///final int age;编译报错//第一种解决方案final int age10;//第二种解决方案final int num;public Test01(){//这里面差一点犯了错误因为这里我用了自定义的方法其实是要用类名才行this.num10;//以上两种解决方案其实本质上就是一种方式都是在构造方法执行过程中给实例变量赋值}public static void main(String[] args) {int i10;System.out.println(i);//10i20;System.out.println(i);//20// 4.final修饰的变量一旦被赋值后不可重新赋值【不可二次赋值】final int k10;//k20;final int m;m10;//m20;//------------------------//创建用户对象User unew User(100);//User uox1234//又创建了一个新的User对象//程序执行到此处表示以上对象已经变成垃圾堆数据等待垃圾回收器的回收unew User(200);//unv12231//创建用户对象final User usernew User(30);//usernew User(50);//final修饰的引用一旦指向某个对象后不能再指向其它对象那么被指向的对象无法被垃圾回收器回收//相当于绑定了user这个引用只能和一个对象连接//final修饰的引用虽然指向某个对象之后不能指向其它对象但是所指向的对象内部是可以被修改的user.id50;//-----------------//访问国籍System.out.println(Chinese.GUO_JI);//已经固定不能修改}}
//中国人
class Chinese{/** 国籍* * 需求每一个中国人的国籍都是中国而且国籍是不会发生改变的为了防止国籍被修改建议加final修饰* * final修饰的实例变量是不可变的这种变量一般和static联合使用被称为常量* * 常量的定义语法格式* public static final 类型.常量名值;* * java规范中要求所有常量的名字全部大写每个单词之间使用下划线连接*/public static final String GUO_JI中国;
} package com.lbj.javase16;
/*** 深入final* * final修饰的引用类型该引用不可再重新指向其它的java对象* * 但是final修饰的引用该引用指向的对象的属性是可以修改的**/
public class Test02 {public static void main(String[] args) {// TODO Auto-generated method stubfinal Customer cnew Customer(123,12);//c是final的无法重新赋值//cnew Customer(LKKK,20);c.name321;c.age25;System.out.println(c.name);System.out.println(c.age);}}
class Customer{String name;int age;Customer(String name,int age){this.namename;this.ageage; }
}