做网站要用写接口,那个网站学做披萨比较好,藤虎网络广州网站建设,企业网站 报价内部类和异常类
内部类
ava支持在一个类中声明另一个类#xff0c;这样的类称作内部类#xff0c;而包含内部类的类成为内部类的外嵌类。
注意
#xff08;1#xff09;内部类的类体中不可以声明类变量和类方法。 #xff08;2#xff09;外嵌类的类体中可以用内部类…内部类和异常类
内部类
ava支持在一个类中声明另一个类这样的类称作内部类而包含内部类的类成为内部类的外嵌类。
注意
1内部类的类体中不可以声明类变量和类方法。 2外嵌类的类体中可以用内部类声明对象作为外嵌类的成员。
内部类的使用规则
声明内部类如同在类中声明方法或变量一样一个类把内部类看作是自己的成员。
外嵌类的类体中可以用内部类声明的对象作为外嵌类的成员。
外嵌类的成员变量在内部类中仍然有效内部类中的方法也可以调用外嵌类中的方法。
内部类的类体中不可以声明类变量和方法。
外嵌类和内部类在编译时生成两个.class文件。public class Example7_1 {public static void main(String args[]) {RedCowForm form new RedCowForm(红牛农场);form.showCowMess();form.cow.speak();//RedCowForm.RedCow redCow new RedCowForm.RedCow(180,119,6000);//redCow.speak();}
}
class RedCowForm {static String formName;RedCow cow; //内部类声明对象RedCowForm() {}RedCowForm(String s) //构造方法{cow new RedCow(150,112,5000);formName s;}public void showCowMess() {cow.speak();}class RedCow { //内部类的声明String cowName 红牛;int height,weight,price;RedCow(int h,int w,int p){height h;weight w;price p;}void speak() {System.out.println(偶是cowName,身高:heightcm 体重:weightkg,生活在formName);}} //内部类结束
} 匿名类
Java允许我们直接使用一个类的子类的类体创建一个子类对象。
1.和子类有关的匿名类 创建子类对象时除了使用父类的构造方法外还有类体此类体被认为是一个子类去掉类声明后的类体称作匿名类。 假设Bank是类那么下列代码就是用Bank的一个子类匿名类创建对象
new Bank ()
{ 匿名类的类体
};2.和接口有关的匿名类 假设Computable是一个接口那么Java允许直接用接口名和一个类体创建一个匿名对象此类体被认为是实现了Computable接口的类去掉类声明后的类体称作匿名类。 下列代码就是用实现了Computable接口的类匿名类创建对象
new Computable()
{实现接口的匿名类的类体
} ;异常类
所谓异常就是程序运行时可能出现一些错误比如试图打开一个根本不存在的文件等异常处理将会改变程序的控制流程让程序有机会对错误作出处理。程序运行出现异常时Java运行环境就用异常类Exception的相应子类创建一个异常对象并等待处理。
try…catch语句
Java使用trycatch语句来处理异常将可能出现的异常操作放在trycatch语句的try部分将发生异常后的处理放在catch部分。 try~catch语句的格式如下
try
{包含可能发生异常的语句
}
catch(ExceptionSubClass1 e)
{…
}
catch(ExceptionSubClass2 e)
{…
}例子
class DangerException extends Exception {final String message 超重;public String warnMess() {return message;}
}class CargoBoat {int realContent; //装载的重量int maxContent; //最大装载量public void setMaxContent(int c) {maxContent c;}public void loading(int m) throws DangerException {realContent m;if(realContentmaxContent) {throw new DangerException(); }}
}public class Example7_8 {public static void main(String args[]) {CargoBoat ship new CargoBoat();ship.setMaxContent(1000);int m 0;try{ m 600; ship.loading(m);m 400;ship.loading(m);m 367;ship.loading(m);m 555;ship.loading(m);}catch(DangerException e) {System.out.println(e.warnMess()); System.out.println(无法再装载重量是m吨的集装箱); try {ship.loading(-m); //卸载货物} catch(DangerException exp) { System.exit(0); //程序退出不再给机会} }finally {System.out.printf(货船将正点启航\n);System.out.println(目前装载了ship.realContent吨货物);}}
}