static关键字详解
-
静态的变量
public class Main { private static int age=18; private double score=100; public void run() { System.out.println("run"); } public static void go() { System.out.println("go"); } public static void main(String[] args) { System.out.println(age); go(); /* 定义为static的,可以直接使用 System.out.println(score); run(); */ } }
-
静态代码块
public class Main { { System.out.println("匿名代码块"); } static { System.out.println("静态代码块"); } public Main() { System.out.println("构造方法"); } public static void main(String[] args) { new Main(); } } /*输出顺序 静态代码块 匿名代码块 构造方法 */
-
静态导入包
-
final定义的类,不能被继承
抽象类
-
abstract抽象类
public abstract class Main { public abstract void DoSomething(); public abstract void Go(); }
-
抽象类定义的东西,只写名字。
-
不能new,必须由继承它的类来实现。
-
java的类是单继承,接口是多继承的。
-
抽象方法只能放在抽象类里,且抽象类可以写入普通方法。
接口
-
interface
public interface Main { //接口里定义的都是常量,public static final int age=10; //接口里定义的方法都是抽象的,public abstract void DoIt(); int ReturnThis(int A); }
-
接口必须有个实现类
-
可以被多继承
class Main3 implements Main,Main2{ @Override public void DoIt() { } @Override public int ReturnThis(int A) { return 0; } }
内部类
- 一个类中放入另一个类
- 匿名内部类
Erroe 和 Exception
-
检查性异常
-
运行时异常
-
错误
-
异常处理体系
- Error类对象由java虚拟机生成并抛出,大多数错误与代码编写者无关。
- Exception类错误通常由程序员有关。
- 区别:Error通常是灾难性的致命的错误,是程序无法控制和处理的,当出现这些异常时,java虚拟机一般选择终止线程;Exception通常情况下是可以被程序处理的,并且在程序中应该尽可能的去处理这些异常。
捕获和抛出异常
-
五个关键词try,catch,finally,throw,throws
-
Try, catch,finally
public class demo { public static void main(String[] args) { int a=1; int b=0; try{ a=a/b; }catch(Exception e) { System.out.println("程序输出异常"); } finally { System.out.println("无论如何都执行"); } } }
-
可以有多个catch来捕获多个异常
最严重的写在最后
public class demo { public static void main(String[] args) { int a=1; int b=0; try{ a=a/b; }catch (Error e) { System.out.println("Error"); } catch(Exception e) { System.out.println("Exception"); }catch (Throwable e) { System.out.println("Throwable"); } finally { System.out.println("无论如何都执行"); } } }
-
快捷键option+command+T
可以把代码包裹起来
-
打印错误
catch(Exception e) { e.printStackTrace(); }
-
主动地抛出异常throw,一般放在方法中
public class demo {//其实是没有异常的 public static void main(String[] args) { new demo().a(); } public void a(){ throw new ArithmeticException(); } }
-
方法内无法处理这异常,可以在方法上抛出异常
public class demo { public static void main(String[] args) { new demo().a(); } public void a() throws ArithmeticException{ throw new ArithmeticException(); } }
-
Try catch当发生异常时可以进行处理
自定义异常
- 自己写一个异常类继承exception