匿名类,try-catch语句

本文介绍了Java中的匿名类概念及如何使用匿名类实现接口。同时,通过实例详细讲解了try-catch语句处理异常的方法。

初学者。

匿名类是一个子类,没有类名,用匿名类创建对象时,要直接使用父类的构造方法。

class Cry
{
	public void cry()
	{
		System.out.println("大家好");
	}
}
public class seven 
{
	public static void main(String args[])
	{
		Cry hello = new Cry()  
		{
			public void cry()
			{
				System.out.println("大家好,我是赵某某");
			}
		};
		hello.cry();
		
	}

}

输出:

大家好,我是赵某某
匿名类同样可以实现接口

interface abc
{
	int n = 100;  // 相当于final int n = 100; 若换为int n; 就不对了,接口中只有常量
	int f(int x, int y);
}
public class eight 
{
	public static void main(String args[])
	{
		abc md = new abc()
		{
			public int f(int x, int y)  //必须加public,重写不可降低权限,重写参数类型,个数以及方法名一定要与接口中方法一致
			{
				return x * y;
			}
		};
		System.out.println(md.f(5, 5));
	}
}

输出:

25

try-catch语句:

Java使用try-catch语句处理异常,将可能出现异常的操作放在try-catch语句的try中,当try中某个方法调用异常,try部分直接结束执行,转向catch部分。因此,可以把异常处理部分操作放在catch部分。

public class six    //教材上例子
{
	public static void main(String args[])
	{
		int n = 0, m = 0, t = 666;
		try
		{
			m = Integer.parseInt("8888");
			n = Integer.parseInt("ab85");  //发生异常,转向catch,t没有机会赋值了
			t = 999;
		}
		catch(NumberFormatException e)
		{
			System.out.println("发生异常:" + e.getMessage());
			n = 123;
		}
		System.out.println("m = " + m + "  n = " + n + "  t = " + t);
	}

}
输出:

发生异常:For input string: "ab85"
m = 8888  n = 123  t = 666




一、实验目的 (1)使学生掌握trycatch语句和finally语句的使用,能够使用trycatch语句和finally语句处理异常。 (2)使学生掌握throws关键字的使用,能够使用throws关键字声明异常。 (3)使学生掌握如何自定义异常,能够编写自定义异常类。 (4)让学生理解内部类的概念以及如何在实际问题中使用内部类来实现更加紧凑和封装的代码设计。 (5)使学生熟悉Java中的常用类(如String、Math等)和正则表达式的使用,以及如何应用它们解决实际问题。 二、实验仪器设备、试剂或材料 JDK、IntelliJ IDEA 三、实验原理 1、 trycatch语句 (1)为了使异常后的程序代码正常执行,程序需要捕获异常并进行处理,Java提供了trycatch语句用于捕获并处理异常。 (2)trycatch语句的语法格式如下所示。 try{ 代码块 }catch(ExceptionType e){ 代码块 } (3)编写trycatch语句的注意事项。  try代码块是必需的。  catch代码块可以有多个,但捕获父类异常的catch代码块必须位于捕获子类异常的catch代码块后面。  catch代码块必须位于try代码块之后。 2、finally语句 (1)finally代码块的作用:在程序中,有时候会希望一些语句无论程序是否发生异常都要执行,这时就可以在trycatch语句后,加一个finally代码块。 (2)使用finally代码块的注意事项:finally代码块是trycatch…finally或try…finally结构的一部分,finally代码块只能出现在trycatchtry代码块之后,不能单独出现。 (3)trycatch…finally实现异常处理的语法结构如下所示。 try{ 代码块 }catch(ExceptionType e){ 代码块 } finally{ 代码块 } 3、 throws关键字 (1)使用throws声明方法的作用:Java中允许在方法的后面使用throws关键字声明该方法有可能发生的异常,这样调用者在调用方法时,就明确地知道该方法有异常,并且必须在程序中对异常进行处理,否则编译无法如通过。 (2)使用throws关键字抛出异常的语法格式如下: 修饰符 返回值类型 方法名(参数1,参数2,…)throws 异常类1, 异常类2,…{ 方法体 } 4-自定义异常 (1)自定义异常类的示例代码如下所示。 public class DivideByMinusException extends Exception{ public DivideByMinusException (){ super(); // 调用Exception无参的构造方法 } public DivideByMinusException (String message){ super(message); // 调用Exception有参的构造方法 } } (2)使用throw关键字在方法中声明异常的实例对象,语法格式下。 throw Exception异常对象 三、实验内容与步骤 1. 按要求编写程序: (1) 定义外部类 Zoo,包含一个成员变量 zooName(动物园名称)。 (2)在 Zoo 中定义成员内部类 Dog,实现 Animal 接口(需自定义,含 void makeSound() 方法),重写方法输出“[动物园名称]的小狗:汪汪汪~”。 (3)在 Zoo 中定义一个方法 addCat(),方法内使用匿名类实现 Animal 接口,重写方法输出“[动物园名称]的小猫:喵喵喵~”,并调用 makeSound()。 (4)编写主方法,创建 Zoo 对象,实例化内部类 Dog 并调用叫声方法,再调用 addCat() 方法。 帮我分开package完成实验
最新发布
12-06
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值