- 博客(16)
- 收藏
- 关注
原创 java-异常
我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是核心类库中没有定义好的,此时我们需要根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩负数问题等等。自定义一个编译时异常类型:自定义类 并继承。自定义一个运行时异常类型:自定义类 并继承。注意自定义的异常只能通过throw抛出。自定义异常:(1)要继承一个异常类型(2)建议大家提供至少两个构造器,一个是无参构造,一个是(String message)构造器(3)自定义异常对象只能手动抛出。
2024-05-06 23:18:57
970
原创 面向对象-内部类、注解
1、什么是内部类?将一个类A定义在另一个类B里面,里面的那个类A就称为内部类,B则称为外部类。2、为什么要声明内部类呢?总的来说,遵循高内聚低耦合的面向对象开发总原则。便于代码维护和扩展。具体来说,当一个事物的内部,还有一个部分需要一个完整的结构进行描述,而这个内部的完整的结构又只为外部事物提供服务,不在其他地方单独使用,那么整个内部的完整结构最好使用内部类。而且内部类因为在外部类的里面,因此可以直接访问外部类的私有成员。3、内部类都有哪些形式?
2024-05-06 22:41:51
1916
原创 面向对象-接口
接口就是规范,定义的是一组规则,体现了现实世界中“如果你是/要...则必须能...”的思想。继承是一个"是不是"的is-a关系,而接口实现则是 "能不能"的has-a关系。例如:你能不能用USB进行连接,或是否具备USB通信功能,就看你是否遵循USB接口规范例如:Java程序是否能够连接使用某种数据库产品,那么要看该数据库产品有没有实现Java设计的JDBC规范//只能连接鼠标//只能连接键盘//Usb3如果是类的话,有单继承限制//Usb3如果是接口的话,就不会有单继承限制。
2024-05-06 22:32:12
1903
原创 面向对象-包装类
Java提供了两个类型系统,基本类型与引用类型,使用基本类型在于效率,然而当要使用只针对对象设计的API或新特性(例如泛型),那么基本数据类型的数据就需要用包装类来包装。关于抽象类的使用,以下为语法上要注意的细节,虽然条目较多,但若理解了抽象的本质,无需死记硬背。理解:假设创建了抽象类的对象,调用抽象的方法,而抽象方法没有具体的方法体,没有意义。此时的方法重写,是子类对父类抽象方法的完成实现,我们将这种方法重写的操作,也叫做。抽象类中,不一定包含抽象方法,但是有抽象方法的类必定是抽象类。
2024-04-29 20:15:26
721
原创 静态与枚举
某些类型的对象是有限的几个,这样的例子举不胜举:星期:Monday(星期一)......Sunday(星期天)性别:Man(男)、Woman(女)月份:January(1月)......December(12月)季节:Spring(春节)......Winter(冬天)支付方式:Cash(现金)、WeChatPay(微信)、Alipay(支付宝)、BankCard(银行卡)、CreditCard(信用卡)员工工作状态:Busy(忙)、Free(闲)、Vocation(休假)
2024-04-29 19:14:55
955
原创 关键字和API
这个方法与C语言的析构函数不同,C语言的析构函数被调用,那么对象一定被销毁,内存被回收,而finalize方法的调用不一定会销毁当前对象,因为可能在finalize()中出现了让当前对象“复活”的代码。如果子类实例变量和父类实例变量重名,并且父类的该实例变量在子类仍然可见,在子类中要访问父类声明的实例变量需要在父类实例变量前加super.,否则默认访问的是子类自己声明的实例变量。如果子类重写了父类的方法,在子类中需要通过super.才能调用父类被重写的方法,否则默认调用的子类重写的方法。
2024-04-26 10:51:46
781
原创 面向对象-实例初始化
我们发现我们new完对象时,所有成员变量都是默认值,如果我们需要赋别的值,需要挨个为它们再赋值,太麻烦了。我们能不能在new对象时,直接为当前对象的某个或所有成员变量直接赋值呢。可以,Java给我们提供了构造器(Constructor)。
2024-04-23 20:17:26
855
原创 面向对象-封装、继承与多态
继承有延续(下一代延续上一代的基因、财富)、扩展(下一代和上一代又有所不同)的意思。多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来的类构成某种关系。其中,多个类可以称为子类,也叫派生类;多个类抽取出来的这个类称为父类超类(superclass)或者基类。
2024-04-18 10:44:56
2143
原创 面向对象-参数与重载
注意:对象数组,首先要创建数组对象本身,即确定数组的长度,然后再创建每一个元素对象,如果不创建,数组的元素的默认值就是null,所以很容易出现空指针异常NullPointerException。当方法的形参是引用数据类型时,形参地址值的改变不会影响实参,但是形参地址值里面的数据的改变会影响实参,例如,修改数组元素的值,或修改对象的属性值。之后,当定义一个方法时,形参的类型可以确定,但是形参的个数不确定,那么可以考虑使用可变参数。间接递归可以A方法调用B方法,B方法调用C方法,C方法调用A方法。
2024-04-15 08:40:45
879
原创 面向对象(一)
类是一类具有相同特性的事物的抽象描述,是一组相关属性和行为的集合。属性:就是该事物的状态信息。行为:就是在你这个程序中,该状态信息要做什么操作,或者基于事物的状态能做什么。对象是一类事物的一个具体个体(对象并不是找个女朋友)。即对象是类的一个实例,必然具备该类事物的属性和行为。关键字:class(小写)new 类名()//也称为匿名对象new 类名()//也称为匿名对象//给创建的对象命名//或者说,把创建的对象用一个引用数据类型的变量保存起来,这样就可以反复使用这个对象了。
2024-04-11 18:40:55
926
原创 JAVA数组
(array),就是相同数据类型的元素按一定顺序排列的集合,就是把有限个类型相同的变量用一个名字命名,以便统一管理他们,然后用编号区分他们,这个名字称为。就是先确定元素的个数(即数组的长度),而元素此时只是默认值,并不是真正的数据。静态初始化就是用静态数据(编译时已知,就是已确认的)为数组初始化.此时数组的长度有静态数据的个数决定.每一个存储到数组的元素,都会自动的拥有一个编号,从0开始,这个自动编号称为。初始化就是确认数组元素的总个数(即数组的长度)和元素的值.组成数组的各个变量称为数组的。
2024-04-10 19:26:38
886
原创 JAVA流程操作语句
该行代码意思为 i从0开始 只要i的数值小于等于10,for语句就循环执行。每执行一次i本身就加1,直到i的数值不小于等于10,循环结束。switch 语句允许用一个表达式的值或一个变量和 case 标签后面的值相匹配。如果匹配成功,就执行这个 case 标签后面的代码。如果相等,就会执行 case 后面代码,当遇到 break 时,switch 语句停止执行;如果所有的 case 都不匹配, 程序会去执行 default 后面的代码;使当前循环直接结束,不再执行下方的代码进入下一次循环;
2024-04-08 08:43:27
634
原创 JAVA运算符
加减乘除:+ - * /;取余:%加、减、乘、除、取余运算时,首先会将字符串转换成数字,然后再进行运算。1.2 赋值运算符= 将右边的值赋到左边变量;
2024-04-02 20:04:56
356
原创 JAVA基础语法
最终变量习惯上也称为常量,因为它是通过在声明变量的数据类型前面加final的方式实现的,所以叫最终变量。加final修饰后,这个变量的值就不能修改了,一开始赋值多少,就是多少,所以此时的变量名通常称为常量名。整数类型(范围大小从小到大为:byte(单字节),short(两个字节),int(四个字节),long(八个字节))变量的作用就是用来存储数据,代表内存的一块存储区域,这块内存中的值是可以改变的。给变量赋值,就是把右边的参数值存到左边的变量名代表的内存空间中。这样做的好处,就是可以见名知意,便于维护。
2024-04-02 08:37:35
560
原创 数组学习总结
通常情况下查找数组最大值需要先var一个数值为0的变量,然后使用if判断语句将创建的变量与数组中每个值挨个比较,只要数组中某个值大于该变量,则将该更大的值赋予左边的变量。如果[]中有多个元素,则元素的个数就是该数组的长度。arr数组[]中数字为3,则说明arr数组长度为3。该行代码执行结果就是将array数组中索引为n的位置中内容删除,但是删除后该元素还是会占用一个空的存储元素。var heroes = ['诸葛亮', '司马懿', '周瑜', '法正,'荀彧','鲁肃'];
2024-03-29 13:51:11
261
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人