您的位置:首页 > 职场人生

黑马程序员Java培训、Android培训-Java 学习过程记录_面向对象下2

2011-03-23 00:32 1081 查看
9面向对象的多态性和接口技术的代码演练体会: interface PCI { void start(); void stop();}class NetWorkCard implements PCI{ public void start() { System.out.println("Send..."); } public void stop() { System.out.println("stop..."); }}class SoundCard implements PCI //不能无implements PCI,不然无法反映两个类的关系;{ public void start() { System.out.println("du..du"); } public void stop() { System.out.println("sound stop"); }}class MainBoard{ public void usePCICard(PCI p) { p.start(); p.stop(); }}class Assembler{ public static void main(String [] args) //将各个网卡组织到一块;各个网卡的功能独立; { MainBoard mb = new MainBoard(); NetWorkCard nc = new NetWorkCard(); SoundCard sc = new SoundCard(); mb.usePCICard(nc); //前面的程序调用后面的程序,即插上的卡立刻就能用; mb.usePCICard(sc);}} 10匿名内部类 关键代码 mb.usePCICard(new PCI() //产生匿名的类之类,临时的只用一次的类; { public void start() { System.out.println("test start"); } public void stop() { System.out.println("test stop"); } }); 11异常 11.1异常定义了程序中遇到的非致命的错误, 而不是编译时的语法错误,如程序要打开一个不存的文件、网络连接中断、操作数越界、装载一个不存在的类等。 11.2throws关键字,用于说明程序可能会有异常错误,必须在子类或者更高一级的父类中有处理; 11.2对多个异常作出处理时,先在throw后面增加上新异常处理函数名,对应在try,catch语句中增加相应的调用方法,可接多个catch语句做分别处理;11.3注意自定义异常也必须作为exception类的子类,throw,try…catch语句也可来实现程序的跳转 11.4一个方法被覆盖时,覆盖它的方法必须扔出相同的异常或异常的子类。 11.5如果父类扔出多个异常,那么重写(覆盖)方法必须扔出那些异常的一个子集,也就是说不能扔出新的异常。 12包12.1package语句及应用:例如:package org.it315;声明是org/it315目录下的相关类,可用“javac -d . Lessen44.java命令创建,先查目录再找类12.2package语句作为Java源文件的第一条语句。如果没有package语句,则为缺省无名包。 12.3import语句及应用:用于简化对包名的说明,例如import org.it315.*;就是说明本文件下的类都是目录org/it315下的。 12.4jdk中常用的包– java.lang----包含一些Java语言的核心类,如String、Math、Integer、System和Thread,提供常用功能。– java.awt----包含了构成抽象窗口工具集(abstract window toolkits)的多个类,这些类被用来构建和管理应用程序的图形用户界面(GUI)。– java.applet----包含applet运行所需的一些类。– java.net----包含执行与网络相关的操作的类。– java.io----包含能提供多种输入/输出功能的类。– java.util----包含一些实用工具类,如定义系统特性、使用与日期日历相关的函数。演示的代码备份4://Lessen43.java,接口和面向对象的多态性interface PCI { void start(); void stop();}class NetWorkCard implements PCI{ public void start() { System.out.println("Send..."); } public void stop() { System.out.println("stop..."); }}class SoundCard implements PCI //不能无implements PCI,不然无法反映两个类的关系;{ public void start() { System.out.println("du..du"); } public void stop() { System.out.println("sound stop"); }}class MainBoard{ public void usePCICard(PCI p) { p.start(); p.stop(); }}class Assembler{ public static void main(String [] args) //将各个网卡组织到一块; { MainBoard mb = new MainBoard(); NetWorkCard nc = new NetWorkCard(); SoundCard sc = new SoundCard(); mb.usePCICard(nc); mb.usePCICard(sc); }}演示的代码备份5//Lessen44.java,异常情况处理和包概念的演示package org.it315; //声明是org/it315目录下的相关类,可用“javac -d . Lessen44.java命令创建,先查目录再找类//包名不是有文件夹指定的,而是由程序中package命令指定的;//import java.awt.*;//import java.awt.event.*;//import java.sql.*;//import java.util.*;//java.util.Data//import java.lang.*;class TestException{ public static void main(String [] args) throws Exception //自己不想处理时候处理异常的时候,向上报告,肯定不会有异常的时候可以用; { //new Test().devide(3,0); try //对可能发生的异常测试,生产异常的对象传递给catch中的对象,调用出异常中的信息 { new Test().devide(3,-1); //同包内通常不用加包名的 //return ; } catch(ArithmeticException ex) { System.out.println("program is running into ArithMetic"); ex.printStackTrace(); } catch(DevideByMinusException ex) //数据小于0时候进入 { System.out.println("program is running into DevideByMinusException"); ex.printStackTrace(); } catch(Exception ex) { System.out.println(ex.getMessage());//省略此处代码会给以后排除错误造成潜在麻烦,查不出错误在哪里; } finally //除非在try catch语句中使用了 System.exit(0),才会不执行; { System.out.println("finally"); } System.out.println("program is running here!");//try 里面有return语句时候不执行; }}演示的代码备份5的补充://Test.javapackage org.it315.example;public class Test{ public int devide(int x,int y) throws ArithmeticException,org.it315.DevideByMinusException { if( y < 0 ) throw new org.it315.DevideByMinusException("deveisor is"+y); int result = x/y; return result; } }// DevideByMinusException.javapackage org.it315;public class DevideByMinusException extends Exception //子类扔出的异常只能比父类少,不能多,不能超;{ public DevideByMinusException(String msg) { super(msg); }}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: