JavaSE总结 (12)

Action类:

package com.wmwx.oop.Demo08; //使用abstract声明抽象类 public abstract class Action { //抽象方法,只有方法名,没有方法体 //仅作约束,期待他人实现 public abstract void doSomething(); }

A类:

package com.wmwx.oop.Demo08; public class A extends Action{ //子类必须实现父类的抽象方法 //除非该子类是抽象类 @Override public void doSomething() { } } 接口

接口在JAVA编程语言中是一个抽象类型,是抽象方法的集合,通常以 interface 来声明。其基本语法如下:

[访问修饰符] interface 接口名称 [extends 其他的接口名称] { // 抽象方法 }

接口的特性:

接口中每一个方法都是隐式抽象的,接口中的方法会被隐式地指定为 public abstract,并且只能是 public abstract。

接口中可以含有变量,但是接口中的变量会被隐式地指定为 public static final ,并且只能是 public static final。

接口中的方法不能在接口中实现,只能由实现接口的来实现接口中的方法。

一个接口能继承另一个接口,使用 extends 关键字.子接口会继承父接口的方法。

当类实现接口的时候,需要实现接口中所有的方法。否则,类必须声明为抽象的类。Java中使用 implements 关键字实现接口,其基本语法如下:

class 类名 implements 方法名{ //实现接口中的抽象方法 }

示例:

UserService接口:

package com.wmwx.oop.Demo09; //定义接口使用关键字interface public interface UserService { //接口中的所有属性都是public static final //一般不在接口中定义属性 int age = 60; //接口中的所有方法都是public abstract void add(String name); void delete(String name); void update(String name); void query(String name); }

TimeService接口:

package com.wmwx.oop.Demo09; public interface TimeService { void timer(); }

UserServiceImpl类:

package com.wmwx.oop.Demo09; //类使用关键字implements来实现接口 //实现了接口的类,需要重写接口的所有方法 //一个类可以实现多个接口 public class UserServiceImpl implements UserService, TimeService{ @Override public void add(String name) { } @Override public void delete(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } @Override public void timer() { } } 内部类

所谓内部类,就是在一个类的内部再定义一个类。

示例:

Outer类:

package com.wmwx.oop.Demo10; //外部类 public class Outer { private int id=10; public void out(){ System.out.println("这是外部类的方法!"); } public class Inner{ public void in(){ System.out.println("这是内部类的方法!"); } //获得外部类的私有属性 public int getId(){ return id; } } public void method(){ //局部内部类,在外部类的方法之中 class Inner{ } } } //一个java文件可以有多个class,但是只能有一个public class class A{ }

Application类:

package com.wmwx.oop; import com.wmwx.oop.Demo09.UserService; import com.wmwx.oop.Demo10.Outer; //启动类 public class Application { public static void main(String[] args) { //外部类使用new关键字 Outer outer = new Outer(); outer.out(); //内部类通过外部类来实例化 Outer.Inner inner = outer.new Inner(); inner.in(); System.out.println(inner.getId()); //匿名类,不用将实例保存到变量中 new Outer().out(); //使用匿名类实现接口 UserService userService = new UserService() { @Override public void add(String name) { } @Override public void delete(String name) { } @Override public void update(String name) { } @Override public void query(String name) { } } } } Java异常机制 异常

异常是程序中的一些错误。但并不是所有的错误都是异常,并且错误有时候是可以避免的。

异常的分类:

检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。

运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。

错误(Error): 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,在编译时同样检查不到。

示例:

package com.wmwx.exception; public class Demo01 { public static void main(String[] args) { new Demo01().a(); //抛出异常:StackOverflowError System.out.println(11/0); //抛出异常:ArithmeticException System.out.println() //抛出异常:Error } public void a(){ b(); } public void b(){ a(); } } 异常体系结构

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wssssz.html