关于java断言总结

   你是否想告别system.out.println()测试时代,那么就重断言开始,可能你开始会觉得很麻烦,但是你习惯以后你会得心应手。如果你能看明白 boolean?a:b 这个三元运算的话,那么恭喜你断言你基本掌握了,不相信?那么就往下看看

 

   断言机制是支持jdk1.4以上版本。他有个开关功能(下文会介绍),你想打开就开,你想关就关。这个可比满屏幕的输出语句专业多了。

  

    断言表达式

                  assert expression;

                  assert expression1 : expression2;

 

 

    在两种表达式中,expression1表示一个boolean表达式,expression2表示一个基本类型或者是一个对象(Object) ,基本类型包括boolean,char,double,float,int和long。由于所有类都为Object的子类,因此这个参数可以用于所有对象。

 

     例子:

        

               assert value > 5 ;

               assert accontBalance > 0;

               assert isStatusEnabled();

               assert a>5:"TEST ASSERT"

 

    何为断然的开关,无非就是传递一个参数 例: java -ea 你的JAVA程序。

 

  1. 参数 -esa-dsa
    它们含义为开启(关闭)系统类的assertion功能。由于新版本的Java的系统类中,也使了assertion语句,因此如果用户需要观察它们的运行情况,就需要打开系统类的assertion功能 ,我们可使用-esa参数打开,使用 -dsa参数关闭。 -esa和-dsa的全名为-enablesystemassertions和-disenablesystemassertions,全名和缩写名有同样的功能。
  2. 参数 -ea-ea
    它们含义为开启(关闭)用户类的assertion功能:通过这个参数,用户可以打开某些类或包的assertion功能,同样用户也可以关闭某些类和包的assertion功能。打开assertion功能参数为-ea;如果不带任何参数,表示打开所有用户类;如果带有包名称或者类名称,表示打开这些类或包;如果包名称后面跟有三个点,代表这个包及其子包;如果只有三个点,代表无名包。关闭assertion功能参数为-da,使用方法与-ea类似。
    -ea和-da的全名为-enableassertions和-disenableassertions,全名和缩写名有同样的功能。
    下面表格表示了参数及其含义,并有例子说明如何使用。
    参数例子说明
    -eajava -ea打开所有用户类的assertion
    -dajava -da关闭所有用户类的assertion
    -ea:<classname>java -ea:MyClass1打开MyClass1的assertion
    -da:<classname>java -da: MyClass1关闭MyClass1的assertion
    -ea:<packagename>java -ea:pkg1打开pkg1包的assertion
    -da:<packagename>java -da:pkg1关闭pkg1包的assertion
    -ea:...java -ea:...打开缺省包(无名包)的assertion
    -da:...java -da:...关闭缺省包(无名包)的assertion
    -ea:<packagename>...java -ea:pkg1...打开pkg1包和其子包的assertion
    -da:<packagename>...java -da:pkg1...关闭pkg1包和其子包的assertion
    -esajava -esa打开系统类的assertion
    -dsajava -dsa关闭系统类的assertion
    综合使用java -dsa:MyClass1:pkg1关闭MyClass1和pkg1包的assertion

    其中...代表,此包和其子包的含义。例如我们有两个包为pkg1和pkg1.subpkg。那么pkg1...就代表pkg1和pkg1.subpkg两个包。
    另外,Java为了让程序也能够动态开启和关闭某些类和包的assertion功能,Java修该了Class和ClassLoader的实现,增加了几个用于操作assert的API。下面简单说明一下几个API的作用。
    ClassLoader类中的几个相关的API:
      setDefaultAssertionStatus:用于开启/关闭assertion功能
      setPackageAssertionStatus:用于开启/关闭某些包的assertion功能
      setClassAssertionStatus: 用于开启/关闭某些类的assertion功能
      clearAssertionStatus:用于关闭assertion功能

          讲了这么多,给一个例子就全明白了:

 

                 public static void main(String[] args) {
 
                           int a=5;
                          assert a==6:"错误";
                          System.out.println(a);
  
 }

 

           世界最简单的测试,你可以修改 a的值看看不同的效果;很简单。

 

        注意: 首先 断言是不支持继承,如果如果超类没有开启断然,子类开启,那么只执行子类。

                   断然是可以修改变量值的,什么意思,给大家一个测试断然开始的程序。正好利用断言修改变量值的特性

                

                // public static void main(String[] args) {
//        boolean assertFlag=false;
//        assert assertFlag=true;   
//        if(assertFlag==false){
//         System.out.println("assert have not opened");
//        }else{
//         System.out.println("assert is openning");
//        }
//        
// }

 

  本总结资料来源于网络

本系统旨在构建一套面向高等院校的综合性教务管理平台,涵盖学生、教师及教务处三个核心角色的业务需求。系统设计着重于实现教学流程的规范化与数据处理的自动化,以提升日常教学管理工作的效率与准确性。 在面向学生的功能模块中,系统提供了课程选修服务,学生可依据培养方案选择相应课程,并生成个人专属的课表。成绩查询功能支持学生查阅个人各科目成绩,同时系统可自动计算并展示该课程的全班最高分、平均分、最低分以及学生在班级内的成绩排名。 教师端功能主要围绕课程与成绩管理展开。教师可发起课程设置申请,提交包括课程编码、课程名称、学分学时、课程概述在内的新课程信息,亦可对已开设课程的信息进行更新或撤销。在课程管理方面,教师具备录入所授课程期末考试成绩的权限,并可导出选修该课程的学生名单。 教务处作为管理中枢,拥有课程审批与教学统筹两大核心职能。课程设置审批模块负责处理教师提交的课程申请,管理员可根据教学计划与资源情况进行审核批复。教学安排模块则负责全局管控,包括管理所有学生的选课最终结果、生成包含学号、姓名、课程及成绩的正式成绩单,并能基于选课与成绩数据,统计各门课程的实际选课人数、最高分、最低分、平均分以及成绩合格的学生数量。 资源来源于网络分享,仅用于学习交流使用,请勿用于商业,如有侵权请联系我删除!
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值