首页 > 其他分享 >05 内部类&API&异常

05 内部类&API&异常

时间:2024-08-14 22:53:48浏览次数:12  
标签:内部 05 int 异常 处理 API 方法 String

目录

1.内部类

        1.1形参和返回值

        1.2 内部类

        1.3 成员内部类

        1.4 局部内部类 

        1.5 匿名内部类

2. Math

        1.Math类概述

3. System

4. Object

5. Arrays

6.基本类型包装类

7.日期类

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

        2. Data类的常用方法

        3. SimpleDateFormat类概述

        4. Calender类的概述

8.异常

        1.异常概述

        2.JVM的默认处理方案

        3.异常处理

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

        5.自定义异常


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

标签:内部,05,int,异常,处理,API,方法,String
From: https://blog.csdn.net/m0_59900155/article/details/139725445

相关文章

  • Spring Boot中的异常处理机制解析
    SpringBoot中的异常处理机制解析大家好,我是微赚淘客返利系统3.0的小编,是个冬天不穿秋裤,天冷也要风度的程序猿!在SpringBoot应用中,异常处理是一个非常重要的环节,它不仅关系到应用的稳定性,还直接影响到用户体验。SpringBoot提供了多种异常处理机制,使得开发者能够灵活地处理各种......
  • OpenGL 之EGL API 介绍
    EGL介绍EGL是OpenGLES和底层Native平台视窗系统之间的接口。OpenGLES本质上是一个图形渲染管线的状态机,而EGL则是用于监控这些状态以及维护Framebuffer和其他渲染Surface的外部层。EGL提供如下机制:与设备的原生窗口系统通信查询绘图表面的可用类型和配置创......
  • 使用TcpDump 和 Wireshark 分析数据库异常
    MySQL:5.7.19OS:rhel6.3jdbc:mysql-connector-java-5.1.45.jarjava:17.0.7问题:MySQL数据库在修改character_set_server和表的对应字段为utf8mb4后,任然无法插入emoji表情1.抓包1、登陆MySQL服务器,确定实际使用的网卡;2、执行tcpdump-s65535-x-nn-......
  • 0813day05
    #作业使用代码实现以下业务逻辑:1.输入姑娘的年龄后,进行以下判断:1.如果姑娘小于18岁,打印“未成年”2.如果姑娘大于18岁小于25岁,打印“表白”3.如果姑娘大于25岁小于45岁,打印“阿姨好”4.如果姑娘大于45岁,打印“奶奶好”age=int(input(“输入你的年龄”))......
  • 异常以及处理方案 day15
    /*异常:java程序编译或者运行时遇到的错误java中的异常分为3种:Throwable:Error:错误Exception:编译时期异常RuntimeException(运行时期异常)举例,该例子仅上课使用,如现实生活遇到,概不负责。魏一民想要去大蜀山,......
  • Robyn与FastAPI全面对比:选择最适合你的Python Web框架
    引言1.1背景介绍在当今的软件开发领域,选择合适的Web框架对于项目的成功至关重要。Python作为一种广泛使用的编程语言,其生态系统中涌现出了众多优秀的Web框架,如FastAPI和Robyn。FastAPI自发布以来,因其高性能、易用性和自动生成API文档的特性,迅速成为开发者的首选。而Robyn......
  • 如何使用Zabbix API批量修正主机名称
    先说为什么要修正?这其实源自于Ansible安装zabbixagent的一个小Bug。有小伙伴发现,利用ansible批量安装zabbixagent后,zabbix系统上显示的主机名出错了,主机显示的名称都变成了操作系统的IP(如下图),这在一定程度增加了维护难度。如果一台一台去修改和校正主机名将会非常耗费时间,这......
  • Java面试题(异常)
    目录1.throw和throws的区别?2.final、finally、finalize有什么区别?3.try-catch-finally中哪个部分可以省略?4.try-catch-finally中,如果catch中return了,finally还会执行吗?5.常见的异常类有哪些?1.throw和throws的区别?throw:是真实抛出一个异常。thr......
  • Taro——Error: Can't resolve '@/api/xxx'
    前言在使用@去import的时候,报错提示不能够载入,看了下tsconfig.json已经配置了paths,所以考虑是不是taro本身上还有些配置没有完善,查询taro文档后解决;taro版本:3.6.34alias:https://docs.taro.zone/docs/config-detail#alias内容config在配置文件config/index.ts中的config中......
  • 105 判断图是否同构
    //105判断图是否同构.cpp:此文件包含"main"函数。程序执行将在此处开始并结束。///*http://oj.daimayuan.top/course/14/problem/600给你两张无向简单图,保证两张图的顶点数和边数相同,请判断这两张图是否同构。如果同构输出Yes,否则输出No。输入格式第一行两个整......