Java期末测试

简介: Java期末测试

1.定义一个图形接口,一个有抽象方法。求周长子类实现接口,创建子类对象求周长

//1.定义一个图形接口,一个有抽象方法求周长
interface Shape{
  double girth(int length);
}
//2.子类圆形实现接口
class Circle implements Shape{
  int r;
  //创建有参构造方法
  public Circle(int r) {
    super();
    //将r赋值给成员变量r,this.r调用成员变量
    this.r = r;
  }
  //重写girth()方法,求出周长
  @Override
  public double girth(int length) {
    // TODO Auto-generated method stub
    return 2*3.14*length;
  }
}
//3.测试类
public class ShapeTest {
  public static void main(String[] args) {
    //将长度2添加到Circle对象中
    Circle c = new Circle(2);
    //通过Circle对象调用girth()方法
    System.out.println(c.girth(c.r));
  }
}

运行结果

12.56

2.随机输出500-560之间的30个,存到数组中,并升序排序

public class RandomTest {
  public static void main(String[] args) {
    //1.创建数组
    int[] arr = new int[30];
    //2.创建随机数对象
    Random random = new Random();
    //3.for循环,将随机数存到数组
    for(int i = 0;i<arr.length;i++) {
      arr[i] = random.nextInt(61)+500;
    }
    //4.for-each全部输出,升序
    Arrays.sort(arr);
    for (int a : arr) {
      System.out.print("\t"+a);
    }
  }
}

运行结果

500 501 501 501 501 502 503 503 505 505 513 515 517 524 526 531 534 535 535 540 540 541 543 549 550 551 556 557 557 559

3.输出流输出Stu对象,序列化,输入流读取到控制台

public class ObjectTest {
  public static void main(String[] args) throws FileNotFoundException, IOException, ClassNotFoundException {
    //创建有参对象
    Stu s1 = new Stu("11","aa");
    Stu s2 = new Stu("22","bb");
    Stu s3 = new Stu("11","cc");
    //创建集合,将对象添加进去
    HashSet hs = new HashSet();
    hs.add(s1);
    hs.add(s2);
    hs.add(s3);
    ObjectOutputStream oos = new ObjectOutputStream(new FileOutputStream("D:\\a.txt"));
    //迭代器遍历
    Iterator iterator = hs.iterator();
    while(iterator.hasNext()) {
      Stu stu = (Stu)iterator.next();
      oos.writeObject(stu);
    }
    //关闭流
    oos.close();
    //对象输入流
    ObjectInputStream ois = new ObjectInputStream(new FileInputStream("D:\\a.txt"));
    //读数据
    Stu stu1 = (Stu)ois.readObject();
    Stu stu2 = (Stu)ois.readObject();
    //显示在控制台
    System.out.println(stu1);
    System.out.println(stu2);
    //关闭流
    ois.close();
  }
}
class Stu implements Serializable{
  String id,name;
  public Stu() {
    super();
    // TODO Auto-generated constructor stub
  }
  public Stu(String id, String name) {
    super();
    this.id = id;
    this.name = name;
  }
  @Override
  public String toString() {
    return "id=" + id + ", name=" + name ;
  }
  @Override
  public int hashCode() {
    // TODO Auto-generated method stub
    return this.id.hashCode();
  }
  @Override
  public boolean equals(Object obj) {
    Stu s = (Stu)obj;
    return this.id.equals(s.id);
  }
}

运行结果

id=11, name=aa

id=22, name=bb

4.点击按钮判断登录是否成功

public class JframeLogin {
  public static void main(String[] args) {
    //创建窗口
    JFrame frame = new JFrame("窗口");
    //设置窗口
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.setBounds(500,200,300,200);
    //创建面板
    JPanel panel = new JPanel();
    //创建组件
    Label label1 = new Label("账号:");
    JTextField textField1 = new JTextField(10);
    Label label2 = new Label("密码:");
    JPasswordField textField2 = new JPasswordField(10);
    JButton button = new JButton("登录");
    //将组件添加到面板上
    panel.add(label1);
    panel.add(textField1);
    panel.add(label2);
    panel.add(textField2);
    panel.add(button);
    //将面板添加到窗口上
    frame.add(panel);
    //可见窗口
    frame.setVisible(true);
    //事件处理
    button.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        //获取用户名输入框
        String username = textField1.getText();
        //获取密码框
        String pwd = new String(textField2.getPassword());
        //判断用户名和密码
        if(username.equals("123") && pwd.equals("123")) {
          //弹窗
          JOptionPane.showMessageDialog(frame, "登录成功");
        }else {
          JOptionPane.showMessageDialog(frame, "登录失败");
        }
      }
    });
  }
}

运行结果

5.在窗体上有标签,文本框,按钮,在文本框输入账号,点击确定,在数据库中查找是否存在

public class SelectTest {
  public static void main(String[] args) {
    // TODO Auto-generated method stub
    JFrame jf = new JFrame("查询");
    jf.setBounds(500, 200, 400 ,300);
    jf.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    //窗体上放中间容器
    JPanel jp = new JPanel();
    //面板上摆放组件
    JLabel jl = new JLabel("请输入账号");
    JTextField field = new JTextField(15);
    JButton btn = new JButton("查找");
    //将组件添加到面板上
    jp.add(jl);
    jp.add(field);
    jp.add(btn);
    //将面板添加到窗体上
    jf.add(jp);
    jf.setVisible(true);
    //事件处理
    btn.addActionListener(new ActionListener() {
      @Override
      public void actionPerformed(ActionEvent e) {
        Connection con = null;
        Statement sta = null;
        ResultSet rs = null;
        String url = "jdbc:mysql://localhost:3306/teacherinfo?serverTimezone=UTC&useSSL=false";
        String user = "root";
        String password = "123456";
        try {
          Class.forName("com.mysql.cj.jdbc.Driver");
          con = DriverManager.getConnection(url, user, password);
          sta = con.createStatement();
          rs = sta.executeQuery("select * from info");
          boolean flag = false;
          while(rs.next()) {
            int id = rs.getInt(1);
            String idTxt = field.getText();
            if (idTxt.equals(String.valueOf(id))) {
              flag = true;
              break;
            }
          }
          if (flag==true) {
            JOptionPane.showMessageDialog(jf, "查找到了");
          }else {
            JOptionPane.showMessageDialog(jf, "没有找到");
          }
        } catch (ClassNotFoundException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        } catch (SQLException e1) {
          // TODO Auto-generated catch block
          e1.printStackTrace();
        }finally {
          if (rs!=null) {
            try {
              rs.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
          if (sta!=null) {
            try {
              sta.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
          if(con!=null) {
            try {
              con.close();
            } catch (SQLException e1) {
              // TODO Auto-generated catch block
              e1.printStackTrace();
            }
          }
        }
      }
    });
  }
}

运行结果

目录
相关文章
|
3天前
|
Web App开发 JavaScript 前端开发
《手把手教你》系列技巧篇(三十九)-java+ selenium自动化测试-JavaScript的调用执行-上篇(详解教程)
【5月更文挑战第3天】本文介绍了如何在Web自动化测试中使用JavaScript执行器(JavascriptExecutor)来完成Selenium API无法处理的任务。首先,需要将WebDriver转换为JavascriptExecutor对象,然后通过executeScript方法执行JavaScript代码。示例用法包括设置JS代码字符串并调用executeScript。文章提供了两个实战场景:一是当时间插件限制输入时,用JS去除元素的readonly属性;二是处理需滚动才能显示的元素,利用JS滚动页面。还给出了一个滚动到底部的代码示例,并提供了详细步骤和解释。
27 10
|
11天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十六)-java+ selenium自动化测试-单选和多选按钮操作-番外篇(详解教程)
【4月更文挑战第28天】本文简要介绍了自动化测试的实战应用,通过一个在线问卷调查(&lt;https://www.sojump.com/m/2792226.aspx/&gt;)为例,展示了如何遍历并点击问卷中的选项。测试思路包括找到单选和多选按钮的共性以定位元素,然后使用for循环进行点击操作。代码设计方面,提供了Java+Selenium的示例代码,通过WebDriver实现自动答题。运行代码后,可以看到控制台输出和浏览器的相应动作。文章最后做了简单的小结,强调了本次实践是对之前单选多选操作的巩固。
23 0
|
2天前
|
JavaScript 前端开发 Java
《手把手教你》系列技巧篇(四十)-java+ selenium自动化测试-JavaScript的调用执行-下篇(详解教程)
【5月更文挑战第4天】本文介绍了如何使用JavaScriptExecutor在自动化测试中实现元素高亮显示。通过创建并执行JS代码,可以改变元素的样式,例如设置背景色和边框,以突出显示被操作的元素。文中提供了一个Java示例,展示了如何在Selenium中使用此方法,并附有代码截图和运行效果展示。该技术有助于跟踪和理解测试过程中的元素交互。
7 0
|
2天前
|
Java 测试技术 持续交付
Java测试驱动开发实践指南
Java测试驱动开发实践指南
11 0
|
3天前
|
前端开发 JavaScript Java
java测试链接超时返回前端
java测试链接超时返回前端
15 0
|
4天前
|
JavaScript 前端开发 测试技术
《手把手教你》系列技巧篇(三十八)-java+ selenium自动化测试-日历时间控件-下篇(详解教程)
【5月更文挑战第2天】在自动化测试过程中,经常会遇到处理日期控件的点击问题。宏哥之前分享过一种方法,但如果输入框是`readonly`属性,这种方法就无法奏效了。不过,通过修改元素属性,依然可以实现自动化填写日期。首先,定位到日期输入框并移除`readonly`属性,然后使用`sendKeys`方法输入日期。这样,即使输入框设置了`readonly`,也能成功处理日期控件。
23 1
|
5天前
|
Java 测试技术 Python
《手把手教你》系列技巧篇(三十七)-java+ selenium自动化测试-日历时间控件-上篇(详解教程)
【5月更文挑战第1天】该文介绍了使用Selenium自动化测试网页日历控件的方法。首先,文章提到在某些Web应用中,日历控件常用于选择日期并筛选数据。接着,它提供了两个实现思路:一是将日历视为文本输入框,直接输入日期;二是模拟用户交互,逐步选择日期。文中给出了JQueryUI网站的一个示例,并展示了对应的Java代码实现,包括点击日历、选择日期等操作。
21 0
|
9天前
|
安全 IDE Java
Java串口通信技术探究2:RXTX库单例测试及应用
Java串口通信技术探究2:RXTX库单例测试及应用
25 4
|
10天前
|
Java 测试技术 Maven
Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
Spring Boot单元测试报错java.lang.IllegalStateException: Could not load TestContextBootstrapper [null]
|
11天前
|
敏捷开发 机器学习/深度学习 Java
Java中的异常处理机制深入理解与实践:持续集成在软件测试中的应用探索自动化测试在敏捷开发中的关键作用
【4月更文挑战第29天】在Java编程中,异常处理是一个重要的概念。它允许开发者在程序执行过程中遇到错误或异常情况时,能够捕获并处理这些异常,从而保证程序的稳定运行。本文将详细介绍Java中的异常处理机制,包括异常的分类、异常的处理方式以及自定义异常等内容。 【4月更文挑战第29天】 随着敏捷开发和DevOps文化的兴起,持续集成(CI)已成为现代软件开发周期中不可或缺的一环。本文将探讨持续集成在软件测试领域内的关键作用、实施策略以及面临的挑战。通过对自动化构建、测试用例管理、及时反馈等核心要素的详细分析,揭示持续集成如何提高软件质量和加速交付过程。 【4月更文挑战第29天】 在当今快速发