黑马程序员Java培训、Android培训-Java 学习过程记录

    技术2022-05-18  18

    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类的子类,throwtry…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语言的核心类,如StringMathIntegerSystemThread,提供常用功能。

         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.java

    package 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.java

    package org.it315;

    public class DevideByMinusException extends Exception  //子类扔出的异常只能比父类少,不能多,不能超;

    {

           public DevideByMinusException(String msg)

           {

                  super(msg);

           }

    }


    最新回复(0)