【java】前八章:快速回忆(三)

简介: 【java】前八章:快速回忆

第七章:java常用类与枚举类


常用类:object类、String类、StringBuilder类、StringBuffer类、Math类、Random类、Calendar类、SimpleDateFormat类、枚举类


object类


22e065fcd0c4779620f51478eb64c560_f190ebbf2066fef1ca9ee84aee7bb21f.png


String类


bee0f736063b177ec49b5d0c38c3231e_89afe51ef13231d96dd7f4286719a289.png


StringBuilder和StringBuffer类


4975a76db7ead912c790bcaa0744f297_43fd218b5f4636d7567cb07a2ae9ff4c.png


Math类


cbbb6c395d0e7edee1eb180d0c825f63_506c9041242a6e48857408532f1bc92c.png


Random类


99750e9e98d201a940c4eb4f90d7c743_fd570f74d259626fb9c782279592a35c.png


Calendar类和Date类和SimpleDateFormat类


2703460a78964d1834685c481937d17a_d892e9cc58a9798242f5a972525c324f.png


枚举类


286ea8ae3cf9fd2bb97c09576873b948_2a491a3686767576219aabaf5ace6283.png



第八章:正则表达式与异常处理


正则表达式


正则表达式定义了字符串的模式。

正则表达式可以用来搜索、编辑或处理文本。

正则表达式并不仅限于某一种语言,但是在每种语言中有细微的差别。


异常处理


声明自定义异常

在 Java 中你可以自定义异常。编写自己的异常类时需要记住下面的几点。


  • 所有异常都必须是 Throwable 的子类。
  • 如果希望写一个检查性异常类,则需要继承 Exception 类。
  • 如果你想写一个运行时异常类,那么需要继承 RuntimeException 类。


可以像下面这样定义自己的异常类:

class MyException extends Exception{
    }


继承Exception 类来创建的异常类是检查性异常类。

下面的 InsufficientFundsException 类是用户定义的异常类,它继承自 Exception。

一个异常类和其它任何类一样,包含有变量和方法。


**实例:**以下实例是一个银行账户的模拟,通过银行卡的号码完成识别,可以进行存钱和取钱的操作。

InsufficientFundsException.java 文件代码


点击查看代码

// 文件名InsufficientFundsException.java
import java.io.*;
//自定义异常类,继承Exception类
public class InsufficientFundsException extends Exception
{
  //此处的amount用来储存当出现异常(取出钱多于余额时)所缺乏的钱
  private double amount;
  public InsufficientFundsException(double amount)
  {
    this.amount = amount;
  } 
  public double getAmount()
  {
    return amount;
  }
}

为了展示如何使用我们自定义的异常类,

在下面的 CheckingAccount 类中包含一个 withdraw() 方法抛出一个 InsufficientFundsException 异常。

CheckingAccount.java 文件代码:


点击查看代码

// 文件名称 CheckingAccount.java
import java.io.*;
//此类模拟银行账户
public class CheckingAccount
{
  //balance为余额,number为卡号
   private double balance;
   private int number;
   public CheckingAccount(int number)
   {
      this.number = number;
   }
  //方法:存钱
   public void deposit(double amount)
   {
      balance += amount;
   }
  //方法:取钱
   public void withdraw(double amount) throws
                              InsufficientFundsException
   {
      if(amount <= balance)
      {
         balance -= amount;
      }
      else
      {
         double needs = amount - balance;
         throw new InsufficientFundsException(needs);
      }
   }
  //方法:返回余额
   public double getBalance()
   {
      return balance;
   }
  //方法:返回卡号
   public int getNumber()
   {
      return number;
   }
}


下面的 BankDemo 程序示范了如何调用 CheckingAccount 类的 deposit() 和 withdraw() 方法。

BankDemo.java 文件代码:

//文件名称 BankDemo.java
public class BankDemo
{
   public static void main(String [] args)
   {
      CheckingAccount c = new CheckingAccount(101);
      System.out.println("Depositing $500...");
      c.deposit(500.00);
      try
      {
         System.out.println("\nWithdrawing $100...");
         c.withdraw(100.00);
         System.out.println("\nWithdrawing $600...");
         c.withdraw(600.00);
      }catch(InsufficientFundsException e)
      {
         System.out.println("Sorry, but you are short $"
                                  + e.getAmount());
         e.printStackTrace();//将错误行打印出来,exception中的一个方法
      }
    }
}

编译上面三个文件,并运行程序 BankDemo,得到结果如下所示:

84f92b0bf7e313468276eeebec07b1dc_750dc31a8a97c7b73ce90ab0edf76fbd.png


捕获异常


使用 try 和 catch 关键字可以捕获异常。try/catch 代码块放在异常可能发生的地方。

try/catch代码块中的代码称为保护代码,使用 try/catch 的语法如下:

    try
    {
       // 程序代码
    }catch(ExceptionName e1)
    {
        //Catch 块
    }
  或者 多重捕获:异常子类在上,父类在下
try{
// 程序代码
}catch(异常类型1 异常的变量名1){
 // 程序代码
}catch(异常类型2 异常的变量名2){
 // 程序代码
}catch(异常类型3 异常的变量名3){
 // 程序代码
}

实例

点击查看代码

public class ExcepTest{
  public static void main(String args[]){
    int a[] = new int[2];
    try{
       System.out.println("Access element three :" + a[3]);
    }catch(ArrayIndexOutOfBoundsException e){
       System.out.println("Exception thrown  :" + e);
    }
    finally{
       a[0] = 6;
       System.out.println("First element value: " +a[0]);
       System.out.println("The finally statement is executed");
    }
  }
}

结果:

1ef261b4e0fa6287dcb00298b50a0d60_87ca329f64d198d4e97fe7bfe3134fc1.png

注意下面事项:

  • catch 不能独立于 try 存在。
  • 在 try/catch 后面添加 finally 块并非强制性要求的。
  • try 代码后不能既没 catch 块也没 finally 块。
  • try, catch, finally 块之间不能添加任何代码。


完!太耗时间了,希望以后能用到吧 随笔中有许多采用(~~其实大多都是抄的~~),写这篇随笔目的之一也是为了整理一下网上真正我现阶段所需要的! 现在问题是我代码经验太少了 不会用这些东西,希望上完实践课之后会有更深的理解和运用,毕竟没使用过,就没有底气写一些真正自己所认为的东西


本文主要内容来自,

菜鸟教程,

W3SCHOOL.COM

https://blog.csdn.net/zhouym_/article/details/89421577

https://www.cnblogs.com/ibelieve618/p/6410910.html

https://www.cnblogs.com/wuhenzhidu/p/anonymous.html

https://blog.csdn.net/qq_39754721/article/details/94736251

https://www.cnblogs.com/weink1215/p/4433790.html

https://blog.csdn.net/weixin_42110638/article/details/85467987

《java项目案例开发入门》—清华出版社


相关文章
|
5月前
|
Java 开发者
那些年,我们追过的Java多态——回忆篇
【6月更文挑战第17天】重温Java多态,它激发了初学者对面向对象编程的热情。多态展示了代码的灵活性和可扩展性,通过抽象和接口使设计更高效。在实践中,如GUI事件处理和游戏开发,多态广泛应用。随着时间的推移,理解加深,多态被视为反映现实多样性的编程哲学。对初学者,它是探索编程世界的钥匙,不应惧怕困惑,应多实践,享受与计算机对话的乐趣。多态,是编程旅程中宝贵的财富和成长见证。
29 0
|
存储 Java API
【java】前八章:快速回忆(二)
【java】前八章:快速回忆
91 0
|
存储 Java 测试技术
【java】前八章:快速回忆(一)
【java】前八章:快速回忆
109 0
|
Java Windows
Java 将照片转化为回忆中的照片,琉璃般的岁月 | Java工具类
Java 将照片转化为回忆中的照片,琉璃般的岁月 | Java工具类
Java 将照片转化为回忆中的照片,琉璃般的岁月 | Java工具类
|
SQL 算法 Java
Java生产填坑经历之全面回忆
屏幕快照 2018-07-30 下午4.01.49.png 生产填坑的经历为什么要称之为全面回忆呢,因为恰巧笔者之前看了一部科幻电影,名字就叫《全面回忆》Total Recall,该片于2012年10月20日在中国上映,豆瓣评分7.0。
1364 0
|
9天前
|
Java 开发者
Java多线程编程中的常见误区与最佳实践####
本文深入剖析了Java多线程编程中开发者常遇到的几个典型误区,如对`start()`与`run()`方法的混淆使用、忽视线程安全问题、错误处理未同步的共享变量等,并针对这些问题提出了具体的解决方案和最佳实践。通过实例代码对比,直观展示了正确与错误的实现方式,旨在帮助读者构建更加健壮、高效的多线程应用程序。 ####
|
16天前
|
安全 Java 测试技术
Java并行流陷阱:为什么指定线程池可能是个坏主意
本文探讨了Java并行流的使用陷阱,尤其是指定线程池的问题。文章分析了并行流的设计思想,指出了指定线程池的弊端,并提供了使用CompletableFuture等替代方案。同时,介绍了Parallel Collector库在处理阻塞任务时的优势和特点。
|
7天前
|
安全 Java 开发者
Java 多线程并发控制:深入理解与实战应用
《Java多线程并发控制:深入理解与实战应用》一书详细解析了Java多线程编程的核心概念、并发控制技术及其实战技巧,适合Java开发者深入学习和实践参考。
|
8天前
|
Java 开发者
Java多线程编程的艺术与实践####
本文深入探讨了Java多线程编程的核心概念、应用场景及实践技巧。不同于传统的技术文档,本文以实战为导向,通过生动的实例和详尽的代码解析,引领读者领略多线程编程的魅力,掌握其在提升应用性能、优化资源利用方面的关键作用。无论你是Java初学者还是有一定经验的开发者,本文都将为你打开多线程编程的新视角。 ####
|
7天前
|
存储 安全 Java
Java多线程编程中的并发容器:深入解析与实战应用####
在本文中,我们将探讨Java多线程编程中的一个核心话题——并发容器。不同于传统单一线程环境下的数据结构,并发容器专为多线程场景设计,确保数据访问的线程安全性和高效性。我们将从基础概念出发,逐步深入到`java.util.concurrent`包下的核心并发容器实现,如`ConcurrentHashMap`、`CopyOnWriteArrayList`以及`BlockingQueue`等,通过实例代码演示其使用方法,并分析它们背后的设计原理与适用场景。无论你是Java并发编程的初学者还是希望深化理解的开发者,本文都将为你提供有价值的见解与实践指导。 --- ####
下一篇
无影云桌面