抽象类,接口,异常,log4j记录日志

抽象类:实现一个更严谨的多态

abstract:抽象的
(方法)想法:暂时无法实现,抽象的

abstract 自定义类型{//图纸,模型
      属性
方法----->抽象
  }

public abstract class Phone{//手机设计师已经想要在手机中添加拍照功能
public void call(){}
public void sendMsg(){}
public abstract void takePhoto();//功能没有实现,代表存在缺陷。
}

采用抽象类实现多态的步骤:
1. 将父类的多态方法改为抽象方法(abstract:抽象方法不能有大括号方法体)
2. 将父类改为抽象类(abstract)

**
抽象类不能实例化

接口:

interface:一组功能的规范

**
1.接口中所有的方法都是抽象方法,默认使用public abstract修饰
2.所有的属性都是常量,默认使用public static final修饰
3.接口不能实例化,接口中没有构造方法

比较
抽象类: 可以有构造方法,可以存着非抽象方法,只能被单继承,is a的关系
接口:没有构造方法,不能有非抽象方法,一个类可以实现多个接口,has a的关系

单例模式

单一实例
为了保证只有一个对象(调用构造方法调用出来),也就是不能轻易让别人直接访问我的构造方法,
那么就可以使用private关键字修饰构造方法,就会导致一个对象都出来,提供一个public类型get方法访问构造方法创建出对象(此时通过get创建出多个对象出来),
问题来了?通过调用get可以获得类的对象,但是此时前提是对象.get,name对象从哪里来?
我们可以吧这个get方法变成static,能通过类名.get
现在,我们需要处理的是调用get,怎么保证只创建一个对象呢?
//方式一:饿汉式
private static Student stu = new Student();
private Student(){
}
private static Student getStu(){
return stu;
}
//方式二:懒汉式
private static Student stu = null;
private Student(){
}
private static Student getStu(){
if(stu==null){
stu = new Student();
}
return stu;
}

异常

java的异常处理室通过5个关键字来实现的:try,catch,finally,throw,throws
捕获异常
try{执行可能产生异常的代码
}catch{捕获异常
}finally{无论代码是否发生异常,代码总能执行
}
声明异常:
throws:声明方法可能要抛出的各种异常
抛出异常:
throw:手动抛出异常

处理异常的两种方式:

  • 1.try_catch_finally处理

  • 2.异常的抛出,一般是声明方法时提出 throws 异常类型1,异常类型2

  • Exception:异常类的父类

  • 可以使用的组合:try—catch/try_finally/try_catch_catch

     public static void main(String[] args) {
     try{//对可能发生异常的代码块进行监控
     	int[]arr = new int[5];
     	System.out.println(arr[5]);			
     }catch(Exception e){//e就是发生异常时所产生的异常对象
     	//对发生的异常进行捕获
     	e.printStackTrace();//默认打印异常的堆栈信息
     }finally{//程序try语句中代码无论是否发生异常,都会执行
     	//一般用于资源的关闭
     	System.out.println("这里是finally语句块");
     }
     //程序后续的核心操作
     System.out.println("核心操作...");
     System.out.println("程序结束");
     }
    
  • 排列catch语句的顺序:先子类后父类

  • 发生异常时按顺序逐个匹配

  • 只会执行第一个与异常类型匹配的catch语句

手动抛出异常:
throw new Exception();//括号里写发生了什么异常

log4j记录日志:

  • log4j是一个非常优秀的开源日志记录工具
  • 控制日志的输出级别
  • 控制日志信息输送的目的地是控制台,文件等
  • 控制每一条日志的输出格式
    使用log4j进行异常信息的记录

使用步骤:

  • 1.将log4j.xxx.jar先复制到工程某个目录下,然后通过budi path将此jar文件引入到工程的路径下
  • 2.将写好的log4j.propertices配置文件放到工程的src目录下
  • 3.在java类中创建log对象,调用方法进行日志信息的打印
public static Logger log = Logger.getLogger("TestException");
public static void main(String[] args) {
	try{
		log.info("这是一个普通的日志信息");
		int[]arr = new int[5];
		System.out.println(arr[5]);
	}catch (Exception e){
		log.error("此处出现异常");
		e.printStackTrace();
	}

	 
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值