精华内容
下载资源
问答
  • Java中final关键字作用
    2022-03-03 13:30:22

    final关键字可以用来修饰引用、方法和类。

    1、用来修饰一个引用

    如果引用为基本数据类型,则该引用为常量,该值无法修改;

    如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。

    如果引用时类的成员变量,则必须当场赋值,否则编译会报错。

    例子如下所示:

    final class Person {
    	//3. 此处不赋值会报错
        String name ="zs";
        //final int age;
        final int age = 10;  
    }
    public class Demo01 {
        public static void main(String[] args) {
        	//1. 基本数组类型为常量,无法修改
            final int i = 9;
            //i = 10;               
            //2. 地址不能修改,但是对象本身的属性可以修改
            Person p = new Person();
            p.name = "lisi";
            final int[] arr = {1,2,3,45};
            arr[3] = 999;
            //arr = new int[]{1,4,56,78};
        }
    }
    

    2、用来修饰一个方法

    当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。

    使用final方法的原因主要有两个:

    (1)把方法锁定,以防止继承类对其进行更改。

    (2)效率,在早期的java版本中,会将final方法转为内嵌调用。但若方法过于庞大,可能在性能上不会有多大提升。因此在最近版本中,不需要final方法进行这些优化了。

    final方法意味着“最后的、最终的”含义,即此方法不能被重写。

    注意:若父类中final方法的访问权限为private,将导致子类中不能直接继承该方法,因此,此时可以在子类中定义相同方法名的函数,此时不会与重写final的矛盾,而是在子类中重新地定义了新方法。

    class Person {
        public final void say() {
            System.out.println("说....");
        }
        public void eat() {
            System.out.println("吃...");
        }
    }
    class Teacher extends Person {
        //1. final修饰的方法不能被重写,但此方法仍然被继承
        /*@Override
        public void say() {
            System.out.println("老师在一本正经的说...");
        }*/
        
        public void eat() {
            System.out.println("老师在大口大口的吃...");
        }
    }
    public class Demo02 {
        public static void main(String[] args) {
            Teacher t = new Teacher();
            t.say();
        }    
    }
    

    3、用来修饰一个类

    当用final修饰类时,该类成为最终类,无法被继承,该类就不能被其他类所继承。当我们需要让一个类永远不被继承,此时就可以用final修饰,但要注意:

    final类中所有的成员方法都会隐式的定义为final方法。

    代码实现:

    /***
     * final用法3:修饰类,则该类成为最终类,无法被继承
     * @author Administrator
     *
     */
    final class Person02 {    }
    //class Teacher02 extends Person02 { }
    //class MyString extends String{}
    public class Demo03 {
    
    }
    
    更多相关内容
  • final关键字正如其字面意思一样,意味着最后,比如被final修饰后类不能集成、变量不能被再赋值等,以下我们就来深入解析Java编程中final关键字作用:
  • Java中final关键字可以被用来修饰变量、方法和类等,意味着终结、不可改变,下面我们就来举例讲解Java中final关键字的用法:
  • Java中final关键字详解

    2020-12-18 13:01:45
     在Java中final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量)。下面就从这三个方面来了解一下final关键字的基本用法。  1.修饰类  当用final修饰一个类时,表明这个类不能被继承。也就是说,...
  • Java中final关键字 1、修饰类的成员变量 这是final的主要用途之一,和C/C++的const,即该成员被修饰为常量,意味着不可修改。   上面的代码对age进行初始化后就不可再次赋值,否则编译时会报类似上图的错误。 ...
  • JAVA中final关键字作用 一、final关键字的功能概述 final关键字可以用来修饰引用、方法和类。 1、用来修饰一个引用 如果引用为基本数据类型,则该引用为常量,该值无法修改; 如果引用为引用数据类型,比如...

    JAVA中final关键字的作用

    一、final关键字的功能概述

      final关键字可以用来修饰引用、方法和类。

       1、用来修饰一个引用

    1.  如果引用为基本数据类型,则该引用为常量,该值无法修改;
    2.  如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。
    3.  如果引用时类的成员变量,则必须当场赋值,否则编译会报错。

        例子如下所示:

    复制代码

    final class Person {
        String name ="zs";
        //3. 此处不赋值会报错
        //final int age;
        final int age = 10;  
    }
    public class Demo01 {
        public static void main(String[] args) {
            //1. 基本数组类型为常量,无法修改
            final int i = 9;
            //i = 10;
           
            //2. 地址不能修改,但是对象本身的属性可以修改
            Person p = new Person();
            p.name = "lisi";
            final int[] arr = {1,2,3,45};
            arr[3] = 999;
            //arr = new int[]{1,4,56,78};
        }
    }

    复制代码

      2.用来修饰一个方法

        当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。

       

    复制代码

    class Person {
        public final void say() {
            System.out.println("说....");
        }
        public void eat() {
            System.out.println("吃...");
        }
    }
    class Teacher extends Person {
        //1. final修饰的方法不能被重写,但此方法仍然被继承
        /*@Override
        public void say() {
            System.out.println("老师在一本正经的说...");
        }*/
        
        public void eat() {
            System.out.println("老师在大口大口的吃...");
        }
    }
    public class Demo02 {
        public static void main(String[] args) {
            Teacher t = new Teacher();
            t.say();
        }    
    }

    复制代码

    3.用来修饰类

     当用final修改类时,该类成为最终类,无法被继承。简称为“断子绝孙类”。

    复制代码

    /***
     * final用法3:修饰类,则该类成为最终类,无法被继承
     * @author Administrator
     *
     */
    final class Person02 {    }
    //class Teacher02 extends Person02 { }
    //class MyString extends String{}
    public class Demo03 {
    
    }

    复制代码

      比如常用的String类就是最终类。

    展开全文
  • final关键字的功能概述final关键字可以用来修饰引用、方法和类。1、用来修饰一个引用如果引用为基本数据类型,则该引用为常量,该值无法修改;如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改...

    f9025ee7c80720ad035f5e476d6a7a31.png

    final关键字的功能概述

    final关键字可以用来修饰引用、方法和类。

    1、用来修饰一个引用

    如果引用为基本数据类型,则该引用为常量,该值无法修改;

    如果引用为引用数据类型,比如对象、数组,则该对象、数组本身可以修改,但指向该对象或数组的地址的引用不能修改。

    如果引用时类的成员变量,则必须当场赋值,否则编译会报错。

    例子如下所示:

    final class Person {

    String name ="zs"; //3. 此处不赋值会报错

    //final int age;

    final int age = 10;

    }

    public class Demo01 {

    public static void main(String[] args) { //1. 基本数组类型为常量,无法修改

    final int i = 9;

    //i = 10; //2. 地址不能修改,但是对象本身的属性可以修改

    Person p = new Person();

    p.name = "lisi";

    final int[] arr = {1,2,3,45};

    arr[3] = 999;

    //arr = new int[]{1,4,56,78};

    }

    }

    2、用来修饰一个方法

    当使用final修饰方法时,这个方法将成为最终方法,无法被子类重写。但是,该方法仍然可以被继承。

    使用final方法的原因主要有两个:

    (1) 把方法锁定,以防止继承类对其进行更改。

    (2) 效率,在早期的java版本中,会将final方法转为内嵌调用。但若方法过于庞大,可能在性能上不会有多大提升。因此在最近版本中,不需要final方法进行这些优化了。

    final方法意味着“最后的、最终的”含义,即此方法不能被重写。

    注意:若父类中final方法的访问权限为private,将导致子类中不能直接继承该方法,因此,此时可以在子类中定义相同方法名的函数,此时不会与重写final的矛盾,而是在子类中重新地定义了新方法。

    class Person {

    public final void say() {

    System.out.println("说....");

    }

    public void eat() {

    System.out.println("吃...");

    }

    }

    class Teacher extends Person {

    //1. final修饰的方法不能被重写,但此方法仍然被继承

    /*@Override

    public void say() {

    System.out.println("老师在一本正经的说...");

    }*/

    public void eat() {

    System.out.println("老师在大口大口的吃...");

    }

    }

    public class Demo02 {

    public static void main(String[] args) {

    Teacher t = new Teacher();

    t.say();

    }

    }

    3、用来修饰类

    当用final修饰类时,该类成为最终类,无法被继承,该类就不能被其他类所继承;简称为“断子绝孙类”。当我们需要让一个类永远不被继承,此时就可以用final修饰,但要注意:

    final类中所有的成员方法都会隐式的定义为final方法。

    代码实现:

    /***

    * final用法3:修饰类,则该类成为最终类,无法被继承

    * @author Administrator

    *

    */

    final class Person02 { }

    //class Teacher02 extends Person02 { }

    //class MyString extends String{}

    public class Demo03 {

    }

    展开全文
  • Java中final关键字

    千次阅读 2021-10-04 12:40:47
    final关键字代表最终、不可改变的。 常见四种用法: 1. 可以用来修饰一个类 2. 可以用来修饰一个方法 3. 还可以用来修饰一个局部变量 4. 还可以用来修饰一个成员变量 二,final修饰类:太监类,没有儿子 1)当...

    一,概述

    final关键字代表最终、不可改变的。
    常见四种用法:
    1. 可以用来修饰一个类
    2. 可以用来修饰一个方法
    3. 还可以用来修饰一个局部变量
    4. 还可以用来修饰一个成员变量

    二,final修饰类:太监类,没有儿子

    1)当final关键字用来修饰一个类的时候,格式:
    public final class 类名称 { // ... }
    
    含义:当前这个类不能有任何的子类。(太监类)
    
    eg:定义一个final类pubilc final MyClass,继承报错!
    

     2)注意:一个类如果是final的,那么其中所有的成员方法都无法进行覆盖重写(因为没儿子。)

    三,final修饰方法

    1.含义:

    当final关键字用来修饰一个方法的时候,这个方法就是最终方法,也就是不能被覆盖重写。

    2.格式:

    修饰符 final 返回值类型 方法名称(参数列表) {
        // 方法体
    }

     3.注意事项:

    对于类、方法来说,abstract关键字和final关键字不能同时使用,因为矛盾。有抽象方法的abstract类被继承时,其中的方法必须被子类Override,而final不能被Override。
    
    public abstract class Fu {
    
        public final void method() {
            System.out.println("父类方法执行!");
        }
    
        public abstract /*final*/ void methodAbs() ; //有final会报红
    
    }
    public class Zi extends Fu {
        @Override
        public void methodAbs() {
        }
    
        // 错误写法!不能覆盖重写父类当中final的方法
    //    @Override
    //    public void method() {
    //        System.out.println("子类覆盖重写父类的方法!");
    //    }
    }
    

    四,final修饰局部变量 

            // 正确写法!只要保证有唯一一次赋值即可
            final int num3;
            num3 = 30;
    对于基本类型来说,不可变说的是变量当中的数据不可改变
    对于引用类型来说,不可变说的是变量当中的地址值不可改变

    eg:一个标准类:

    public class Student {
    
        private String name;
    
        public Student() {
        }
    
        public Student(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
        public void setName(String name) {
            this.name = name;
        }
    }
    

     Main函数里:

    1)若无final修饰

            Student stu1 = new Student("赵丽颖");
            System.out.println(stu1);  // 打印地址
            System.out.println(stu1.getName()); // 赵丽颖
            stu1 = new Student("霍建华");
            System.out.println(stu1);
            System.out.println(stu1.getName()); // 霍建华

    结果输出:地址不同 

     2)若用final修饰,地址值不可改变,否则报红

     但是,地址值虽然不能变,内容可以变(地址所指向的对象可以变)。

     final Student stu2 = new Student("高圆圆");
            // 错误写法!final的引用类型变量,其中的地址不可改变
    //        stu2 = new Student("赵又廷");
            System.out.println(stu2.getName()); // 高圆圆
            stu2.setName("高圆圆圆圆圆圆");
            System.out.println(stu2.getName()); // 高圆圆圆圆圆圆

    五,final修饰成员变量

    对于成员变量来说,如果使用final关键字修饰,那么这个变量也照样是不可变。

    1)由于成员变量具有默认值,所以用了final之后必须手动赋值,不会再给默认值。

     2)对于final的成员变量,要么使用直接赋值,要么通过构造方法赋值。二者选其一。

     3)必须保证类当中所有重载的构造方法,都最终会对final的成员变量进行赋值。

    如果选择在构造方法中赋值,则要把setname( )函数取消掉

    public class Person {
    
        private final String name/* = "鹿晗"*/;
    
        public Person() {
            name = "关晓彤";
        }
    
        public Person(String name) {
            this.name = name;
        }
    
        public String getName() {
            return name;
        }
    
    //    public void setName(String name) {
    //        this.name = name;
    //    }
    }

    展开全文
  • Java中,final可以别用来修饰类、修饰方法、修饰变量和修饰参数等,这里就来简单作一个Java中final关键字的用法总结:
  • Java中final关键字非常重要,它可以应用于类、方法以及变量。这篇文章带你看看什么是final关键字?将变量,方法和类声明为final代表了什么?使用final的好处是什么?最后也有一些使用final关键字的实例
  • 一、final关键字 final:最终的。 final可以用来修饰的结构:类、方法、变量。 static final 用来修饰属性:全局常量。 二、final修饰类 此类不能被其他类所继承。 比如:String类、System类、StringBuffer类。 ...
  • Java final 关键字作用是什么? final 修饰的类叫最终类,不能被继承 final 修饰的方法叫最终方法,不能被重写,但可以被继承 final 修饰的变量叫常量,必须初始化,初始化之后值不能被修改 ...
  • Java中final关键字作用与用法

    千次阅读 2018-12-11 22:01:23
    一、特点 1、final从字面上理解含义为“最后的,最终的”。...对于成员变量来说,我们必须在声明或构造方法对它赋值。 2、用来修饰方法参数,表示在变量的生存期间它的值不能被改变。 3、修饰...
  • java中final关键字作用:1、用来修饰一个引用;2、用来修饰一个方法;3、用来修饰类。当final修饰方法时,这个方法会成为最终方法,无法被子类重写。一、final关键字的功能概述final关键字可以用来修饰引用、...
  • Java中final关键字作用及相关误区

    千次阅读 2014-08-22 21:46:29
    对于方法参数的变量定义为final,网上给出的说法基本上都说是 ”当你在方法不需要改变作为参数的对象变量时,明确使 用final进行声明,会防止你无意的修改而影响到调用方法外的变量。“ 这是不对的!!
  • 主要给大家介绍了关于Java中final关键字的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • Java中final关键字的常见四种用法

    千次阅读 2021-05-08 14:23:12
    final关键字表示最终的,不可改变的。 1、修饰一个类: 当final用来修饰一个类的时候,这个类就不能有子类(俗称太监类),别的类不能extends它 2、修饰一个方法 : 当final用来修饰一个方法的时候,这个方法就是...
  • 4.Java中final关键字作用

    千次阅读 2019-05-14 10:10:01
    1.java final的作用final关键字主要用在三个地方:变量、方法、类; a.对于一个final变量,必须要赋初始值,而且是只能初始化一次。 如果是基本数据类型的变量,则其数值一旦在初始化之后便不能更改; 如果是...
  • java中final关键字的使用: /* final关键字代表最终,不可改变的。 常见四种用法: 1.可以用来修饰一个类。 2.可以用来修饰一个方法。 3.还可以用来修饰一个局部变量。 4.还可以用来修饰一个成员变量。 */ /* 1.当...
  • Java中final关键字【详解】

    千次阅读 2021-02-10 12:03:25
    一、Java中final关键字 1、final关键字 2、final关键字修饰类 3、final关键字修饰方法 4、final关键字修饰变量 5、final不能修饰 6、final关键字的好处 一、Java中final关键字 1、final关键字 final的...
  • 主要给大家介绍了关于Java中final关键字的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用Java具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
  • java中final关键字作用

    万次阅读 多人点赞 2017-10-11 11:28:06
    final关键字可以用于三个地方。用于修饰类、类属性和类方法。  被final关键字修饰的类不能被继承,被final关键字修饰的类属性和类方法不能被覆盖(重写);  对于被final关键字修饰的类属性而言,子类就不能给他...
  • 主要介绍了Java中final关键字详解及实例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
  • java关键字中,static和final是两个我们必须掌握的关键字。不同于其他关键字,他们都有多种用法,而且在一定环境下使用,可以提高程序的运行性能,优化程序的结构。下面我们来了解一下final关键字及其用法。...
  • Java中final关键字可以用来修饰类、方法和变量(包括成员变量和局部变量),下面通过本篇文章给大家介绍java中final关键字,对java fina关键字相关知识感兴趣的朋友一起看看吧
  • final关键字可用于修饰类、方法和变量,final修饰的类不能被继承;final修饰的方法不可被重写;final修饰的变量不可被改变。1. final类final修饰的类不能被继承意思是final修饰的类不可以有子类,java.lang.Math类...
  • 下面小编就为大家带来一篇浅谈Java中final关键字与C#的const, readonly关键字。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
  • final关键字代表着最后、不可改变,无论是在用final修饰类、修饰方法还是修饰变量时,都要注意内存分配的问题.这里来小议Java中final关键字使用时的注意点:
  • 主要介绍了Java中final关键字深入理解的相关资料,需要的朋友可以参考下

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 266,032
精华内容 106,412
关键字:

java中final关键字的作用

java 订阅