java static笔记

一、java的static import

允许在代码中直接引用别的类的static变量和方法(在权限许可范围内),是import的延续。

引入static import最主要考虑到两个需要,第一个就是对一些工具性的,常用的静态方法进行直接引用。比如,java.lang.Math里的一大堆数学方法abs,exp等。

第二个就是对常数变量进行直接引用,其中也包扩对enum的直接引用。

static import的限制和import也基本一样,就是不能出现二义性。另外,static import不支持先import类,然后import static 类.*(不加package)的形式。

例:

import static java.lang.Math.PI;
public class MathUtils{
    // 计算圆面积
    public static double calCircleArea(double r){
        return PI * r * r;
    }
    // 计算球面积
    public static double calBallArea(double r){
        return 4 * PI * r * r;
    }
}

静态导入的作用是把Math 类中的PI 常量引入到本类中,这会使程序更简单,更容易阅读,只要看到PI 就知道这是圆周率,不用每次都要把类名写全了。但是,滥用静态导入会使程序更难阅读,更难维护。静态导入后,代码中就不用再写类名了,但是我们知道类是“一类事物的描述”,缺少了类名的修饰,静态属性和静态方法的表象意义可以被无限放大,这会让阅读者很难弄清楚其属性或方法代表何意,甚至是哪一个类的属性(方法)都要思考一番(当然,IDE 友好提示功能是另说),特别是在一个类中有多个静态导入语句时,若还使用了*(星号)通配符,把一个类的所有静态元素都导入进来了,那简直就是恶梦。

对于静态导入,一定要遵循两个规则:

  • 不使用*(星号)通配符,除非是导入静态常量类(只包含常量的类或接口)。
  • 方法名是具有明确、清晰表象意义的工具类。
二、static方法中new的对象是否为static类型的:

个人认为istatic方法中new的对象就是一个局部变量,不是static类型。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值