static补充,抽象类,接口,异常

static补充,抽象类,接口,异常

static补充

  • 加载静态代码块

    public class Person {
        
        //匿名代码块 用于初始化一些值
        {
            System.out.println("加载匿名代码块");
        }
        
        //静态代码块 只执行一次
        static {
            System.out.println("加载静态代码块");
        }
    
        //构造器
        public Person() {
            System.out.println("加载构造器");
        }
    
        public static void main(String[] args) {
            Person person1 = new Person();
            System.out.println("========================");
            Person person2 = new Person();
        }
    }
    
    

    运行结果如下:

在这里插入图片描述

  • 静态导入包

    import static java.lang.Math.random; //静态导入包
    
    public class Demo01 {
        public static void main(String[] args) {
            System.out.println(random());
        }
    }
    
    

抽象类

  • abstract 修饰符可以用来修饰方法也可以修饰类,如果修饰方法,那么该方法就是抽象方法,如果修饰类,那么该类就是抽象类

  • 抽象类中可以没有抽象方法,但是有抽象方法的类一定要声明为抽象类

  • 抽象类,不能使用new关键字来创建对象,它是用来让子类继承的

  • 抽象方法,只有方法的声明,没有方法的实现,它是用来让子类来实现的

  • 子类继承抽象类,那么就必须要实现抽象类没有实现的抽象方法,否则该子类也要声明为抽象类

  • 抽象类作用:提高开发效率,增加程序可扩展性

  • 和接口很像,但没有接口更能强大,因为抽象类只能单继承,而接口能够多继承

接口

  • 普通类:只有具体实现
  • 抽象类:具体实现和规范(抽象方法)都有!
  • 只有规范!无法写方法,用作约束和实现分离
  • 接口就是规范,定义的一组规则,体现了现实世界中“如果你是…,则必须能…思想
  • 接口的本质是契约,就像现实世界的法律,每个人都必须遵守
  • OO的精髓,是对对象的抽象,最能体现这一点的就是接口。为什么我们讨论设计模式都只针对具备了抽象能力的语言(比如c++,java,c#等),就是因为设计模式所研究的,实际上就是如何合理的去抽象。
  • 用interface关键字来定义接口,用implement关键字来实现接口中的方法
  • 在接口中,属性默认为public static final,方法默认为 public abstract
  • 接口不能被实例化,也没有构造函数
  • 接口可以实现多个(多继承思想)
  • 实现接口,必须重写接口中定义的所有方法

异常编写的一些实际经验

  • 处理运行时异常时,采用逻辑去合理规避同时辅助try-catch处理
  • 在多重catch块后面,可以加一个catch(Exception)来处理可能会被遗漏的异常
  • 对于不确定的代码,也可以加上try-catch,处理潜在的异常
  • 尽量去处理异常,切忌只是简单地调用printStrackTrace()去打印输出
  • 具体如何处理异常,要根据不同的业务需求和异常类型去决定
  • 尽量添加finally语句块去释放占用的资源 (IO,Scanner… and so on)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值