当前位置: 首页 > news >正文

02.java课复习

1.抽象类 不能被实例化(有抽象方法class必须写abstract)(专门做父类被继承),不能加final,static,private也不能加在方法上,static直接用类可以调用

 abstract class A{
      abstract void xxx();
      void xxx1(){};
 }
 class B extends A{
	   void xxx(){
	
	   }

 }
   A a=new B();  

2.接口

public interface f1{
  int i=10; //等价final static int i=10;静态常量
   void xx();//默认abstract
       //jdk1 - 7.08.0允许默认方法有方法体
   default void aaa(){
   }
   //允许静态方法
   static void bbb(){

   }
   //接口可以继承接口
   interface f2 extends k2,k1{

   }
   //普通类不能继承接口,类实现接口
   class cc implements f2{
   }
  //实现的类可以new出来调用
  //类方法,就是接口名.出来   fi.bbb(); 不属于new出来的
  //权限大,才可以改写

}
//接口 的变量被子类继承

``private  空 protected public

3.(成员)内部类 a是t2的内部类, t2是a的外部类,和其他成员平级
可以访问我们外面成员(方法,类)

  public class T2{
         class A{
	
         }
     
               

   }
   A a1=A();//(x)找不到那个内部类
   //先new 外部类
   T2 t2=new T2();
   T2.A a=t2.new A();
   //等同
    T2.A a=new T2().new A();

4.静态内部类(内部类加static)(静态成员,不可以访问非静态成员)

   T2.A a=new A.A11();

5.方法内部类(在方法里面定义类,只能在方法里面定义)

   void aa(){
	class AA{


    }
	AA aa=new AA();
   }

6.匿名类(抽象类可以new,覆盖了父类的方法,相当于上转型对象)({}代表匿名类)

  Speak speak =new Speak(){
              //实际上是匿名类改写父类的方法
              public void aa(){
            }
            public void bb(){//这个是新增的方法,上转型会失去,调用报错
            }
    };
    speak.aa();
     /****相当于****/
      class R extends Speak{
	 			public void aa(){
          }
      
      }

7.内部类可以访问外部类中的私有成员

8.内部类有多种访问权限

9.!!lambda表达式(简化代替匿名内部类,不是任何时候都可以用)

interface Inter{ void f1(int a)
}

Inter inter2=(a)->{sout("xxx")};
 Inter inter2=a->{sout("xxx")}; //只能单接口(一个接口一个方法)
    inter2.f1(5);

10.异常处理

  异常: 程序运行出现的错误
     1.数组越界
     2.除数为0
    异常的分类
      1. Throwable是所有异常的父类
          --Error(系统错误)--     --Exception(可以处理的异常)----
          --------------       (检查型异常,必须捕获)----- RuntimeException(可以不处理<捕获>非检查异常)-------
           FileReader fileReader=new FileReader("F:A.TXT");//必须要捕获,
   异常处理
    //相当于 if | else if | else
      try{
	//有可能出现异常的代码
      }catch(ArithmeticException e){
 	//Exception e
       }catch(InputMismatchException e){

        }finally{
	//无论是否执行
        }
     //只会有一个异常被捕获,要从小异常到到异常(子类到父类)

11.抛出异常(回避异常)(子类的异常给父类处理)
throws与throw区别
throws抛出异常类型
throw 生成异常对象
//抛给调用这个方法的程序,一层一层处理,最后给虚拟机
public double aa() throws Exception{ //抛出异常类

          if(r<0){
      throw new Exception();
          }  //必须要处理,try catch,或者在父类
   }
       public class testException {
    class AA{
        AA(int a) throws Exception {
            if(a==0){
                throw new MyException();
            }
        }

    }
    public static void main(String[] args) {
        testException testException = new testException();
        try{

            AA aa = testException.new AA(0);
        }catch (Exception e){e.printStackTrace();}
        System.out.println("continue");

    }
    class MyException extends Exception{
        MyException(){
            System.out.println("发生异常");
        }

    }
}

12.自定义异常(异常的语句先于return执行)

  class xxxException extends Exception{
       public  xxxException(){
	sout("不合法")
       }
    }
       try{}catch(Exception e){}//方法体不写直接调用构造方法
      //父类抛出异常,子类只能抛出相同的异常或者不抛出
      //return在所有异常后执行(对异常处理没有影响)
     下面一段代码的执行输出结果是( )。
	下面一段代码的执行输出结果是( )。
        try {
	System.out.print("try ");
	return;
        } finally {
	System.out.print("finally ");
	}
  try-->finally-->return
 //System.exit(0);直接离开下面的finally
//null.length()空指针异常

相关文章:

  • 深入理解ReentrantReadWriteLock源码
  • 【C++基础】 MyArray 自己实现动态数组 类模板
  • JavaScript中常用的高阶函数
  • 快来给你的宠物视频加个表情特效吧
  • 论文笔记|DeepWalk
  • STM32的光敏检测自动智能窗帘控制系统proteus设计
  • week14|week15 查阅文章总结
  • 编写一个方法,去掉一个数组的重复元素。
  • HTML做一个简单的页面(纯html代码)地球专题学习网站
  • Neuroscout:可推广和重复利用的fMRI研究统一平台
  • Arduino开发实例-DIY超声波传感器避障机器人
  • QuTrunk与MindSpore量子神经网络初探
  • Docker配置主从复制
  • 助农销售平台毕业设计,农产品销售管理系统设计与实现,毕业设计怎么写论文源码开题报告需求分析怎么做
  • FOR ALL ENTRIES 优化
  • 20 函数的极值和最大(小)值
  • A-Level经济例题解析及练习Opportunity Cost
  • 哪款TWS耳机音质比较好?音质最好的TWS耳机推荐
  • 《视觉SLAM十四讲》示例程序编译报错处理(上)
  • 【JavaScript】字符串方法汇总(方法最新至ES7~)
  • myBaits Target Capture Kits;myBaits 靶向捕获试剂盒,快速捕获富集目标序列
  • 【表格单元格可编辑】vue-elementul简单实现table表格点击单元格可编辑,点击单元格变成输入框修改数据
  • ES7-ES13 新特性
  • 【C++】打开C++的大门
  • 【深度学习】U-Net和FCN具体分析
  • Linux下 git 上传与删除 的基本指令
  • Swift 新 async/await 同步机制小技巧:消除“多余”的 await 关键字
  • Github如何使用详细介绍(保姆级教学)
  • 【ardunio+sx1268】与【esp32+sx1268】实现不同主控单片机lora通讯
  • Linux常用命令——pvscan命令
  • 旅游管理专业学什么 难就业吗
  • 2022海南高考体育专业考试时间 什么时候考试
  • 云南楚雄高考时间2021具体时间:6月7日
  • 高考什么特长可以加分 政策有哪些
  • 2022年贵州高考218分能报什么大学 218分能上哪些院校
  • 2022大专石油化工专业毕业后待遇 工资高吗
  • 中国科学院大学2021年各省录取分数线及专业分数线
  • 学英语用点读笔好不好 有效果吗
  • 2021河南职业技术学院学费多少 各专业收费标准
  • 2022广西外语口试成绩查询时间公布 什么时候查分