zoukankan      html  css  js  c++  java
  • 实验三《Java面向对象程序设计》实验报告

    20162308 实验三《Java面向对象程序设计》实验报告

    实验内容

    1. XP基础
    2. XP核心实践
    3. IDEA工具学习
    4. 密码学算法基础

    实验步骤

    (一)Refactor/Reformat使用

    2017-05-09.png

    public class CodeStandard {
        public static void main(String[] args) {
            StringBuffer buffer = new StringBuffer();
            buffer.append('S');
            buffer.append("tringBuffer");
            System.out.println(buffer.charAt(1));
            System.out.println(buffer.capacity());
            System.out.println(buffer.indexOf("tring"));
            System.out.println("buffer = " + buffer.toString());
            if (buffer.capacity() < 20)
                buffer.append("1234567");
            for (int i = 0; i < buffer.length(); i++)
                System.out.println(buffer.charAt(i));
        }
    }
    

    (二)单元测试&重构

    重构Complex类的equal方法
    equal判断时没有考虑Java处理浮点数产生的误差,应将a==b改为abs(a-b)<=1E-8
    Case2.jpg

    public class Complex {
        public final double eq = 1E-7;
        double RealPart;
        double ImagePart;
        public double getRealPart() {
            return RealPart;
        }
        public void setRealPart(double realPart) {
            RealPart = realPart;
        }
        public double getImagePart() {
            return ImagePart;
        }
        public void setImagePart(double imagePart) {
            ImagePart = imagePart;
        }
        public Complex(double R, double I) {
            RealPart = R;
            ImagePart = I;
        }
        public boolean equals(Complex obj1) {
            if (Math.abs(this.getRealPart () - obj1.getRealPart ()) <= eq && Math.abs(this.getImagePart () - obj1.getImagePart ())<=eq)
                return true;
            else return false;
        }
        public String toString() {
            return RealPart + " + " + ImagePart + "i";
        }
        public Complex ComplexAdd(Complex obj) {
            return new Complex ( RealPart + obj.getRealPart (), ImagePart + obj.getImagePart () );
        }
        public Complex ComplexSub(Complex obj) {
            return new Complex ( RealPart - obj.getRealPart (), ImagePart - obj.getImagePart () );
        }
        public Complex ComplexMulti(Complex obj) {
            return new Complex ( RealPart * obj.getRealPart () - ImagePart * obj.getImagePart (), RealPart * obj.getImagePart () + ImagePart * obj.getRealPart () );
        }
    }
    
    

    (三)密码学算法

    2017-05-10.png
    学习了DES和RSA加密算法,其中DES为对称加密算法,现在已经不够安全。RSA为非对称加密算法,由公钥和私钥组成,由于数学上认为对大整数快速分解质因数是困难的,所以说RSA算法目前而言还是安全的。之前和一个密码学方向的phd聊天,谈到随着量子计算机的出现,未来是有可能在相对较短的时间内实现质因数分解的,另外一个方面,也可以通过劫持随机数生成器,来实现攻击。

  • 相关阅读:
    基于注解的 Spring MVC 简单入门
    Spring MVC入门
    Java集合总结之Collection整体框架
    关于getClass().getClassLoader()
    Java生成和操作Excel文件
    Spring 实现发送电子邮件的两种方法
    java mail(发送邮件--163邮箱)
    Write operations are not allowed in read-only mode 只读模式下(FlushMode.NEVER/MANUAL)写操作不
    配置文件Struts.xml 中type属性 redirect,redirectAction,chain的区别
    关于Hibernate在反向工程时无法选择Spring DAO Type的解决方法【更新版】
  • 原文地址:https://www.cnblogs.com/pingch/p/6852140.html
Copyright © 2011-2022 走看看