5月11号 周一 面向对象高级(下)
来源:互联网 发布:通达信炒股软件 编辑:程序博客网 时间:2024/06/05 17:20
1.
接口的使用:将方法名称暴露给用户;
接口对象的实例:通过对象的多态性,由子类为接口对象实例化;
抽象类与接口的相同点:都必须由通过子类进行实例化;
开发上讲:优先使用接口,因为接口允许多继承;
接口的使用:将方法名称暴露给用户;
接口对象的实例:通过对象的多态性,由子类为接口对象实例化;
抽象类与接口的相同点:都必须由通过子类进行实例化;
开发上讲:优先使用接口,因为接口允许多继承;
接口中都是抽象方法,子类必须覆写接口中的全部抽象方法,如果子类不希望全部覆写呢?解决方法:接口-》抽象类-》子类;即
接口的适配器adapter设计模式
interface A
{
public void fun1() ;
public void fun2() ;
public void fun3() ;
}
abstract class B implements A
{
public void fun1()
{}
public void fun2()
{}
public void fun3()
{}
}
class C extends B
{
public void fun1()
{
System.out.println("HELLO MLDN ...") ;
}
}
interface A
{
public void fun1() ;
public void fun2() ;
public void fun3() ;
}
abstract class B implements A
{
public void fun1()
{}
public void fun2()
{}
public void fun3()
{}
}
class C extends B
{
public void fun1()
{
System.out.println("HELLO MLDN ...") ;
}
}
接口的工厂设计模式(简单工厂)
interface USB
{
// 开始工作
public void start() ;
// 停止工作
public void stop() ;
}
class Mp3 implements USB
{
public void start()
{
System.out.println("Mp3开始工作了。。。") ;
}
public void stop()
{
System.out.println("Mp3停止工作了。。。") ;
}
}
class Factory
{
public static USB getUSBInstance()
{
return new Mp3() ;
}
}
public class OODemo07
{
public static void main(String args[])
{
USB u = Factory.getUSBInstance() ;
u.start() ;
u.stop() ;
}
}
{
public static USB getUSBInstance()
{
return new Mp3() ;
}
}
public class OODemo07
{
public static void main(String args[])
{
USB u = Factory.getUSBInstance() ;
u.start() ;
u.stop() ;
}
}
2.
所有类都必须继承自Object类,Object类可以接收任何类的对象,注意toString()和 equals()方法的覆写。
部类确实可以节省代码,但是造成类的结构混乱;内部类也会产生.class文件;内部类可以在任何位置定义,例如在方法中定义,在方法中定义的内部类如果要
所有类都必须继承自Object类,Object类可以接收任何类的对象,注意toString()和 equals()方法的覆写。
部类确实可以节省代码,但是造成类的结构混乱;内部类也会产生.class文件;内部类可以在任何位置定义,例如在方法中定义,在方法中定义的内部类如果要
访问方法中的变量,则变量前必须加final,但是这个final并不表示常量。
匿名内部类,是在抽象类和接口的基础上发展起来的,匿名内部类只使用一次,。
3.包:文件夹,里面存放着类。
定义包之后就相当于包与类同时使用,包名.类名;定义包的类如果要被外部访问,必须用public声明,包的访问,import
JDK中提供一个功能,可以根据定义的package自动创建相应的文件夹并在该文件夹内生成class文件:javac -d . name.java
一个包可以有多个子包:package cn.msdn.mldn
如果不同包中有重名类,则在实例化的时候需要明确指出是哪个包下的类,例如:cn.classA a = new cn.classA();
java.lang:包括了一些基本类及数据类型,系统自动导入
javac.awt:图形界面的GUI设计(重量级)
javax.swing:图形界面的GUI设计(轻量级)
java.applet:实现applet程序(没有main方法)
java.net:实现c/s程序
java.io:实现文件操作(IO)
java.util:工具包
开发中public protected private使用比较多
匿名内部类,是在抽象类和接口的基础上发展起来的,匿名内部类只使用一次,。
3.包:文件夹,里面存放着类。
定义包之后就相当于包与类同时使用,包名.类名;定义包的类如果要被外部访问,必须用public声明,包的访问,import
JDK中提供一个功能,可以根据定义的package自动创建相应的文件夹并在该文件夹内生成class文件:javac -d . name.java
一个包可以有多个子包:package cn.msdn.mldn
如果不同包中有重名类,则在实例化的时候需要明确指出是哪个包下的类,例如:cn.classA a = new cn.classA();
java.lang:包括了一些基本类及数据类型,系统自动导入
javac.awt:图形界面的GUI设计(重量级)
javax.swing:图形界面的GUI设计(轻量级)
java.applet:实现applet程序(没有main方法)
java.net:实现c/s程序
java.io:实现文件操作(IO)
java.util:工具包
开发中public protected private使用比较多
4.异常的捕获和处理
异常在JAVA中称为throwable
Error表示错误:JVM出错,程序无法运行
Exception表示异常:可以人为处理
try中如果发生异常,会抛出异常类的实例化对象
try{}catch(Exception e){}finally{}finally:表示异常的统一出口,不论发生什么异常,都要执行;一般用于释放资源连接:JDBC,IO
throws用于在方法的声明处使用,表示在此方法中不处理异常,而交给调用此方法处进行处理,例如public int div(int i,int j) throws Exception
throw表示人为抛出异常,一般要与if语句一起使用,而且一般与throws配合使用,也就是说被调用的方法本身不处理异常,只负责抛出异常
public int div(int i,int j) throws Exception
{
if(j==0)
{
throw new Exception("被除数不能为零") ;
}
return i / j ;
}
- 5月11号 周一 面向对象高级(下)
- 5月7号 周四 面向对象高级(上)
- Day32-面向对象高级(下)
- 面向对象(高级)
- 面向对象(高级)
- C++面向对象高级编程(下)-Geekband
- C++面向对象高级编程(下)第一周-Geekband
- C++面向对象高级编程(下)第二周-Geekband
- JavaScript高级程序设计4--面向对象的程序设计(下)
- 【boolan c++】面向对象高级编程(下)week1
- 面向对象高级(一)
- 面向对象高级(三)
- 面向对象高级(四)
- 五周一次课(11月13日) 10.8.1 json(上) 10.8.2 json(下)
- 面向对象(下)
- 面向对象(下)
- 面向对象(下)
- 面向对象(下)
- WM:第一个今日项目
- 神侃继续中
- 硬币找零算法
- 很菜的鸟,很菜的鸟
- java多线程(转)
- 5月11号 周一 面向对象高级(下)
- 100句记完700个单词
- 喜迎3G发牌,乐成数字通信学院隆重推出2009新版课程
- 可以拖放的菜单栏
- 09.05.11
- BTV5《首都经济报道》——深度采访乐成数字通信学院
- 今天收获—— 函数,参数传递
- 努力学习!
- 基于小波变换的降噪方法