05 内部类API异常

news2024/9/22 21:22:20

1.内部类

        1.1形参和返回值

        1. 类名作为形参和返回值

                方法的形参是类名,需要该类的对象

                方法的返回值为类名,则返回该类的对象

        2.抽象类名作为形参和返回值

                方法的形参是抽象类名,需要该类的子类对象

                方法的返回值是抽象类名,需要返回是该类的子类对象

        3.接口名作为形参和返回值

                方法的形参是接口,需要是接口实现类对象

                方法的返回值是接口,需要返回的是接口的实现类对象

         1.2 内部类

        内部类: 在一个类中定义的类   例如A类中定义了一个类B,B叫内部类

        内部类的定义格式:

                public class 类名{

                        修饰符 class 类名{

                        }

                }

        内部类访问特点:

                内部类可以直接访问外部类的成员,包括私有

                外部类要访问内部类的成员,必须创建对象

        1.3 成员内部类

  按照内部类在类中定义的位置不同,可以分为如下来两种形式

        在类的成员位置: 成员内部类

        在类的局部位置: 局部内部类

  成员内部类,外界如何创建对象使用那

        格式: 外部类名.内部类名 对象名 = new外部类对象.new内部类对象;

        实例: Animal.Cat  ac = new Animal().new Cat();

        1.4 局部内部类 

        局部内部类就是在方法体中定义,外界无法直接使用,需要在方法中创建对象并使用

        该类可以直接访问外部类的成员,也可以访问房内的局部变量

        1.5 匿名内部类

        前提: 存在一个类或者接口,这里的类可以是具体的类也可以是抽象类

        格式: 

                new 类名或接口名(){

                        重写方法;

                } 

        本质: 是一个继承了该类或者实现了该类接口的子类匿名对象

2. Math

        1.Math类概述

        Math包含执行基本数字运算方法

方法名说明
abs(int a)返回参数的绝对值
ceil(double a)返回向上取整数double类型
floor(double a)返回向下取整数double类型
max(int a,int b)返回int值中最大值
min(int a,int b)返回int值中最小值
pow(double a,double b)返回a的b次幂的值
random()返回为double的正值 [0.0,1.0)

3. System

        1.System的概述

        System包含几个有用的类字段和方法,它不能被实例化

        2.System类常用的方法

方法名说明
exit(int status)终止当前虚拟机
currentTimeMillis()返回当前时间(以毫秒为单位)

4. Object

        1.Object类的概述(Ctrl+B 查看底层代码)

        类Object是类层次结构的根,每个类都有object作为超类,所有类都直接或间接继承该类

        2.Object类的常用方法

        toString: 建议所有子类重写该方法(可自动生成)

        equals: 默认比较对象地址值是否相同  可重写比较内容是否相同 (可自动生成)

 5. Arrays

        1.Arrays的概念和常用方法

         Arrays类包含用于操作数组的各种方法

方法名说明
toString()返回指定数组内容字符串表示形式
sort(int[]a)数字升序排序指定的数组

        工具类的设计思想

                构造方法用private修饰

                成员用public static修饰

    6.基本类型包装类

        1.概述

        将基本数据类型封装成对象的好处在于可以在对象中定义更多的功能方法操作该数据

        常用的操作之一: 用于基本类型与字符串之间的转换

基本数据类型包装类
byteByte
shortShort
int

Integer

longLong
floatFloat
doubleDouble
charCharacter
booleanBoolean
        其中Integer中方法 valueOf(数字)

        2. int 和 String的相互转换

        1.int转换成String 

               1.直接拼接空格字符串

               2.public static String valueOf(int i): 返回int参数的字符串表示形式,是Sting类中方法

        2.String转换成int

               1.public static int parseInt(String s): 将字符串解析为int类型,是Integer类中方法

               2. 或者用这个Integer i = Integer.valueOf(字符串); int x = i.intValue();

        3.自动拆装箱

        装箱: 把基本数据类型转换为对应的包装类类型

        拆箱: 把包装类类型转换为对应的基本数据类型

        实例: Integer i = 100; // 自动装箱

                 i += 200; // 自动拆箱

        注意: 只要是对象,在使用前就必须进行不为null的判断

7.日期类

        1.Data类的概述和构造方法

         Data代表一个特定的时间,精确到毫秒

方法名说明
Data()分配一个Data对象,初始化,并表示它被分配的时间
Data(long data)分配一个Data对象,初始化表示标准时间起指定的毫秒数

        2. Data类的常用方法

方法名说明
getTime()获取的是日期对象从1970年1月1日00:00:00到现在的毫秒值
setTime()设置时间给的是毫秒值

       3. SimpleDateFormat类概述

        概述: 是一个具体的类,用于以区域设置敏感的方式格式化和解析日期

        常用的模式字母及其对应关系

y
M
d
H
m
s
        SimpleDataFormat的构造方法
方法名说明
SimpleDataFormat()使用默认模式和日期格式
SimpleDataFormat(String pattern)使用给定的模式和默认日期格式
        SimpleDateFormat格式化和解析日期
格式化(Date->String)format(Date date)将日期格式化日期/时间字符串
解析(String->Date)parse(String source)

将指定字符串开始解析文本

生成日期

        4. Calender类的概述

        Calender为某一时刻和一组日历之间转换提供了方法,并为操作日历提供了方法

        Calender提供了类方法getInstance用于获取Calender对象,使用当前日期和时间初始化

                Calender c = Calender.getInstance();

        Calender的常用方法

方法名说明
public int get(int field)返回给定日历字段的值
public abstract void add(int field,int amout)

根据日历规则,给指定的时间量添加或减去给定的日历字段

public final void set(int year,int month,int date)设置当前日历的年月日

8.异常

        1.异常概述

        异常: 就是程序出现了不正常的情况

        异常体系

        Error: 严重问题,不需要处理

        Exception: 称为异常类,它表示程序本身可以处理的问题

        RuntimeException: 在编译期是不检查的,出现问题后,需要我们来回修改代码

        非RuntimeException: 在编译期必须处理,否则程序不能通过编译,更不能正常运行

        2.JVM的默认处理方案

        如果程序出现了问题,我们没有做任何的处理,最终JVM会做默认的处理

                1.把异常的名称,异常的原因及异常出现的位置等信息输出在了控制台

                2.程序停止执行

       3.异常处理

        1. try...catch...

                格式:

                        try{

                                可能出现的异常代码;

                            } catch (异常类名 变量名){

                                    异常的处理代码;

                            }

                执行流程:

                        程序从try开始执行,

                        当出现异常时,自动生成一个异常类对象,该异常交给Java运行时系统

                        当Java运行时系统接收到异常对象,会去找catch中匹配的异常类,找到进行对应异常处理

                        执行结束后(匹配到了异常类),代码会继续执行

         

        2. Throwable的成员方法

方法名说明
public String getMessage()返回此throwable的详细消息字符串
pubilc String toString()返回此可抛出的简短描述
public void printStackTrace()把异常的错误信息输出在控制台

        2. 异常处理之throws (抛出异常)
            目的: 处理处理不了的异常
            格式: throws 异常名;
            注意: 这个格式是跟在方法的小括号后面的
            
异常类型处理方案
编译时异常必须处理

try..catch或throws,用throws方法,将来谁调用谁处理

运行时异常可以不处理出现问题,回来修改代码

        4.编译时异常和运行时异常的区别

Java中的异常分为: 编译时异常运行时异常,也称为受检异常和非受检异常

所有的RuntimeException类及其子类被称为运行时异常,其他的异常都是编译时异常

        1.编译时异常: 必须显示处理,否则程序就会发生错误,无法通过编译

        2.运行时异常: 无需显示处理,也可以和编译时异常一样处理

        5.自定义异常

格式: 

        public class 异常类名 extends Exception{

                无参构造

                有参构造

        }

throws和throw的区别

throwsthrow
用在方法声明后面,跟异常类名用在方法体内,跟异常对象名
表示抛出异常,该方法调用者处理抛出异常,方法体内的语句处理
出现异常的一种可能,不一定出现问题执行了一定抛出了异常

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2036946.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

打印机维护好帮手 | 闪克打印机修复助手 v2.23.0.0

闪克打印机修复助手是一款专业的打印机修复软件,专为解决打印机相关问题而设计,能够帮助用户轻松识别和处理打印机设备的问题,从而提升工作效率。闪克打印机修复助手集成了错误修复、打印机驱动安装和综合修复三大功能。 它能够安全、快速、高…

C盘磁盘空间不足:VirtualBox的锅

文章目录 一,数据迁移二,修改默认配置三,在VirtualBox上删除原来的虚拟机四,在新的虚拟机目录下五,删除C盘上的虚拟机文件虚拟机消耗磁盘分析 开始在自己的windows电脑上使用Vitualbox虚拟机之后,发现C盘常…

【走迷宫】

题目 DFS代码 #include<bits/stdc.h> using namespace std; const int N 110; int matrix[N][N]; int n, m; int dx[4] {-1, 0, 1, 0}, dy[4] {0, 1, 0, -1}; int dis[N][N]; void dfs(int x, int y, int cnt) {if(cnt > dis[n-1][m-1]) return;if(x n-1 &&a…

Vue2.0 项目实战篇\部署篇

Vue2.0 项目实战篇\部署篇&#x1f4dc; 本篇文章学习记录于&#xff1a; bilibili-黑马程序♞ 104-139集 》》&#x1f3af;目标&#xff1a;冲击前后端全栈&#x1f525;&#xff0c;分享一下学过程&#xff1a; Java.慈祥的博客——个人前端技术栈blog记录&#xff1a;、感…

list使用及底层模拟实现

目录 一.list的使用 排序sort 去重unique remove按值删除 remove_if splice merge合并 二.模拟实现 1.成员变量及节点的实现 2.普通迭代器 成员变量 解引用operator* operator-> 前置和前置-- 后置和后置-- 等于与不等于重载 begin()迭代器 end()迭代器 3.co…

【论文阅读】YOLOv10: Real-Time End-to-End Object Detection

题目&#xff1a;YOLOv10: Real-Time End-to-End Object Detection 作者&#xff1a;Ao Wang Hui Chen∗ Lihao Liu Kai Chen Zijia Lin Jungong Han Guiguang Ding∗ 清华大学的 motivation: 作者觉得YOLO系列的NMS和某些结构非常的耗时&#xff0c;提出NMS-free和一些列高效…

AI大模型赋能游戏:更智能、更个性化的NPC

参考论文&#xff1a;https://arxiv.org/abs/2403.10249 在传统游戏中&#xff0c;NPC&#xff08;非玩家角色&#xff09;的行为往往是预先设定好的&#xff0c;缺乏灵活性和变化性。然而&#xff0c;基于大模型的NPC可以利用其强大的推理和学习能力&#xff0c;实时生成对话…

使用 JUnit 5 进行 Java 单元测试:最佳实践和技术说明

掌握 Java 单元测试&#xff1a;深入了解工具、最佳实践和技术&#xff0c;以确保代码的稳健性。增强软件可靠性并完美交付&#xff01; 想要提升 Java 开发工作量&#xff1f;本指南探索 Java 测试领域&#xff0c;涵盖基础概念和高级技术。您将了解测试驱动开发 (TDD) 的重要…

Wireshark分析工具

简单用例 首先打开软件,左上角点文件,选中要分析的文件列表。 导入用tcpdump抓的包后进行分析,这里要输入过滤条件,对网络包进行一定的过滤处理。(这里172网段是阿里云的地址,用自己写的python2脚本对阿里云进行压测。) 这里输入过滤条件 tcp.port == 80 ,语法含义是…

快速把文件名统计到excel表的方法

文件名统计到EXCEL表&#xff0c;这似乎很多人都没听说过&#xff0c;因为它与EXCEL表格不沾边&#xff0c;那么这个需求如何实现&#xff0c;用到什么方法&#xff0c;今天给大家介绍一个比较实用的方法&#xff0c;它可以把文件名或文件夹的名快速提取并统计到EXCEL表格上去。…

C++ | Leetcode C++题解之第334题递增的三元子序列

题目&#xff1a; 题解&#xff1a; class Solution { public:bool increasingTriplet(vector<int>& nums) {int n nums.size();if (n < 3) {return false;}int first nums[0], second INT_MAX;for (int i 1; i < n; i) {int num nums[i];if (num > s…

Unity 资源分享 之 恐龙Ceratosaurus资源模型携 82 个动画来袭

Unity 资源分享 之 恐龙Ceratosaurus资源模型携 82 个动画来袭 一、前言二&#xff0c;资源包内容三、免费获取资源包 一、前言 亲爱的 Unity 开发者和爱好者们&#xff0c;大家好&#xff01;今天要为大家分享一份超级酷炫的 Unity 资源——恐龙资源模型&#xff0c;而且它还…

HBase snapshot+replication 测试

一、背景 画像标签服务&#xff08;CDP&#xff09;是核心服务&#xff0c;被公司其他系统如现金、电商、风控等核心业务调用。异常的话&#xff0c;影响范围大。 二、目标 存量数据测试通过 snapshot 迁移。增量数据测试通过 replication 同步。 三、测试 方案二测试&#x…

LabVIEW电流互感器测试系统

开发了基于LabVIEW的光电式电流互感器测试系统的开发过程。通过系统设计、硬件选型及软件实现的详细描述&#xff0c;展示了该系统如何有效地进行电流互感器的性能测试。 项目背景 电流互感器是电力系统中不可或缺的一部分&#xff0c;用于监测和控制电流流动&#xff0c;确保…

Ubuntu基础使用-适合新手的讲解

目录 一、基础操作 1. 终端重要热键 2. 基础命令 3. 通配符 二、文件与目录 1. 2.等价 3.帮助指令 4.当前路径 更改路径 5.创建与删除文件夹 6.创建与删除文件 7.重定向&#xff08;写入&#xff0c;追加写入&#xff09; 8.查看文件内容 9.wc指令 10.复制&…

Haproxy知识点

目录 负载均衡 四层负载均衡 七层负载均衡 HAproxy简介 Haproxy的基本配置 haproxy基本部署 haproxy热处理 SOCAT工具 haproxy的算法 haproxy的静态算法 static-rr 基于权重的轮询调度 first haproxy的动态算法 roundrobin leastconn 其他算法 SOURCE url_pa…

微调大语言模型知识

在自然语言处理领域&#xff0c;大语言模型&#xff08;Large Language Models, LLMs&#xff09;展示了卓越的能力。了解这些模型的特点及微调方法可以帮助更好地应用它们。 大语言模型概述 大语言模型的定义 大语言模型&#xff08;LLM&#xff09;是用于理解和生成自然语言…

大语言模型与多模态大模型loss计算

文章目录 前言一、大语言模型loss计算1、loss计算代码解读2、构建模型输入内容与label标签3、input_ids与labels格式 二、多模态大模型loss计算方法1、多模态loss计算代码解读2、多模态输入内容2、大语言模型输入内容3、图像embending如何嵌入文本embeding 前言 如果看了我前面…

C++ 适配器 stack

不了解适配器的读者可以先去看一看这一篇博客&#xff1a;C 适配器-CSDN博客 栈数据结构介绍 我们平时洗碗的时候&#xff0c;叠成一层层的碗最后只能从上面往下面开始拿&#xff1b;平时箱子里面叠的衣服&#xff0c;也是只能从上面慢慢拿。先放进去的东西后拿出来&#xff…

【STM32嵌入式系统设计与开发拓展】——15_ADC

一、问题集结 1、ADC&#xff1f; (Analog to Digital Converter)即模数转换器&#xff0c;用来将模拟信号转换为数字信号. 模数转换器 2、什么是模拟量&#xff1f; 如温度&#xff0c;湿度等随着时间逐步逐步连续变化的量 3、什么是数字量&#xff1f; 如我们单片机处理的信…