java final学习笔记

本文深入解析Java中final关键字的用法及其重要性,包括不可再赋值的基本类型变量、不可重新指向新对象的引用变量、不可重写的函数及不可被继承的类。通过具体示例,展示final如何提升代码稳定性和安全性。
代码如下:
class Circle{    
    double r;
    double pi=3.14;
    public Circle(double r)
    {
        this.r=r;
    }
    public void getArea() {
        System.out.println("圆的面积是:"+r*r*pi);
    }
}

public class final_test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Circle circle = new Circle(4.0);
        circle.getArea();        //圆的面积是:50.24
        
        //下面的方式就会出现问题
        circle.pi=0;
        circle.getArea();        //圆的面积是:0.0
        
    }
}

从上面的代码就可以看到,对象对变量访问之后,就会出现错误。所以就需要把变量固定下来,进行私有化。

其实最优化的方式就是使用final进行修饰,可以达到很好的效果。

final 关键字的用法如下:

1. final 关键字修饰一个基本类型的变量时候,该变量不能重新赋值。

2. final 关键字修饰的变量必须要有初始值。

3. final 关键字在修饰一个引用变量时,该变量不可以重新指向新的对象。---指的是在同一个内存空间内

 

 代码如下:

public class final_test {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Circle circle = new Circle(4.0);
        circle.getArea();        //圆的面积是:50.24
        
        //下面的方式就会出现问题
        //circle.pi=0;             // 用final修饰过的就不能再次修改
        //circle.getArea();        // 圆的面积是:0.0
        
        test(circle);    
    }

    // 测试函数
    public static void test(Circle circle) {
        circle=new Circle(5.0);
        circle.getArea(); 
     
    }
}

4. final关键字修饰一个函数的时候,该函数不能被重写。

class Circle{
    
    double r;
    final double pi=3.14;
    public Circle(double r)
    {
        this.r=r;
    }
    public void getArea() {                       //修改成 public final void getArea()  则不能重写 
        System.out.println("圆的面积是:"+r*r*pi); 
    }
}

public class final_test extends Circle{

    public final_test(double r) {      
        super(r);
    }

    public void getArea() {
        System.out.println("--重写面积公式--");
    }
    
    public static void main(String[] args) {
        Circle circle = new Circle(4.0);
        circle.getArea();        //圆的面积是:50.24
    }
    } 
}

  5. final关键字修饰一个类的时候,该类不能被继承。

public static final double pi = 3.14; 

// public  是为了公开访问权限
// static  可以共享,方便访问,省内存
// final   是固定不变的,不可以修改

 

 

转载于:https://my.oschina.net/hellation/blog/3040732

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值