【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项目案例开发入门》—清华出版社


相关文章
|
2月前
|
Java 开发者
那些年,我们追过的Java多态——回忆篇
【6月更文挑战第17天】重温Java多态,它激发了初学者对面向对象编程的热情。多态展示了代码的灵活性和可扩展性,通过抽象和接口使设计更高效。在实践中,如GUI事件处理和游戏开发,多态广泛应用。随着时间的推移,理解加深,多态被视为反映现实多样性的编程哲学。对初学者,它是探索编程世界的钥匙,不应惧怕困惑,应多实践,享受与计算机对话的乐趣。多态,是编程旅程中宝贵的财富和成长见证。
19 0
|
存储 Java API
【java】前八章:快速回忆(二)
【java】前八章:快速回忆
82 0
|
存储 Java 测试技术
【java】前八章:快速回忆(一)
【java】前八章:快速回忆
98 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。
1355 0
|
7天前
|
安全 Java 数据处理
Java并发编程:解锁多线程的潜力
在数字化时代的浪潮中,Java作为一门广泛使用的编程语言,其并发编程能力是提升应用性能和响应速度的关键。本文将带你深入理解Java并发编程的核心概念,探索如何通过多线程技术有效利用计算资源,并实现高效的数据处理。我们将从基础出发,逐步揭开高效并发编程的面纱,让你的程序运行得更快、更稳、更强。
|
6天前
|
Java 开发者
奇迹时刻!探索 Java 多线程的奇幻之旅:Thread 类和 Runnable 接口的惊人对决
【8月更文挑战第13天】Java的多线程特性能显著提升程序性能与响应性。本文通过示例代码详细解析了两种核心实现方式:Thread类与Runnable接口。Thread类适用于简单场景,直接定义线程行为;Runnable接口则更适合复杂的项目结构,尤其在需要继承其他类时,能保持代码的清晰与模块化。理解两者差异有助于开发者在实际应用中做出合理选择,构建高效稳定的多线程程序。
27 7
|
5天前
|
安全 Java 数据库
一天十道Java面试题----第四天(线程池复用的原理------>spring事务的实现方式原理以及隔离级别)
这篇文章是关于Java面试题的笔记,涵盖了线程池复用原理、Spring框架基础、AOP和IOC概念、Bean生命周期和作用域、单例Bean的线程安全性、Spring中使用的设计模式、以及Spring事务的实现方式和隔离级别等知识点。
|
5天前
|
存储 监控 安全
一天十道Java面试题----第三天(对线程安全的理解------>线程池中阻塞队列的作用)
这篇文章是Java面试第三天的笔记,讨论了线程安全、Thread与Runnable的区别、守护线程、ThreadLocal原理及内存泄漏问题、并发并行串行的概念、并发三大特性、线程池的使用原因和解释、线程池处理流程,以及线程池中阻塞队列的作用和设计考虑。
|
3天前
|
存储 缓存 安全
深度剖析Java HashMap:源码分析、线程安全与最佳实践
深度剖析Java HashMap:源码分析、线程安全与最佳实践