- 博客(22)
- 收藏
- 关注
原创 Java实现超市管理系统(GUI界面)
之前的超市管理系统是基于控制台上的,内容和功能比较单一,这次的系统版本与之前的版本相比:主要区别就是基于图形用户界面,并且增加了保存商品的功能(不会数据库,用IO流保存到文件中),然后对查询商品功能升级了。2.Look包(这个包中的setLook类是设置组件皮肤的,需要导入皮肤的jar包,如未导入则无需创建)4.Source包(设置主界面,包括表格等组件)3.Method包(多个不同方法的类)1.Login包(管理员登录界面)5.Test包(单独存放测试类)代码都由idea编写。
2023-08-01 19:30:08
723
原创 用Java制作一个简易的微信零钱系统②(GUI界面)
有了框架,再逐一按照框架去设计编程思路,,图中主界面有三个按钮,于是第一就可以设计三个不同类,分别为TopUp(充值)类,Withdraw(提现)类,CheckBalance(余额查询)类,然后创建PayTest类去实现这三个类中的方法。然后这次的每次充值和提现我希望是可以保存的,设计了一个Update类去更新和保存每次充值和提现后的余额。每次充值和体现都会先读取文件里的余额,然后充值就会在读取到的余额上加上往里面充的钱,提现就会在读取到的余额上减掉相应的钱,余额不足会报错。下面是我截取的几张效果图;
2023-07-26 14:17:18
503
原创 Java-对内部类的一个初步了解
简单来说是不显示类名的内部类,并同时实例化它。:顾名思义,就是一个在内部的类,在类的内部的类(有点绕),当然也可以是接口,即在接口的内部的类或接口。简单来说就是没有用static来修饰的类,不是静态的类,需要知道的是非静态内部类是需要外部类对象存在的时候才有意义的,没有外部对象时,就无法通过外部对象创建内部类的实例,就访问不到内部类的属性和方法。简单来说就是用static修饰的的内部类,与非静态内部类不同的是,静态内部类不依赖于外部类对象,外部类想要访问内部类的属性和方法时,直接用类名创建内部类对象。
2023-07-23 23:14:20
88
1
原创 Java认识序列化和反序列化(业余解析)
这样转换来转换去有啥意义呢,我们知道对象是保存到内存中的,而在对象序列化之后,我们可以将对象存储到文件当中,然后以便永久保存到磁盘上,等你需要用的时候直接反序列化出来到内存中。更重要的是,序列化之后可以用于在网络上进行传输,像什么文本,图片,视频的都是要先序列化为字节序列再进行传送的。可以看到反序列化测试中,我创建了一个对象名为 “不是动力小子” ,如果反序列化失败了,说明没有接收到文件中返还过来的对象,输出就是 “非动力小子” ,如果反序列化成功了,输出的就是动力小子。
2023-07-17 21:36:10
104
1
原创 Java中分别用字节流和字符流去读取文件中的中文
字符流FileReader是不能手动设置编码方式的,这里能输出是因为文档是以UTF-8的编码方式保存的,编译器也是默认UTF-8的编码方式,当文档为别的编码方式(如GBK) 保存时,编译时要更改编译器的编码方式,要使用另一种字符流InputStreamReader来代替,如下。最后如果想要输出文档中的汉字的话,我们把字节数组以UTF-8编码方式去解码,我们就可以通过这些数字的到相应的汉字,我们通过创建一个字符串对象接收字节数组和编码方式,再直接输出该变量名。再加一点:文件的编码保存形式在另存为中可以更改。
2023-07-15 20:06:21
1367
1
原创 记录一下今天在Java中学到的新东西-1
结果并不意外,另一个文件当中出现了该源文件的内容,说明复制成功了,而且如果要定义复制范围是通过该方法的后面俩个参数去定义,其实到这里就已经可以看出区别了,我们观察,这后面俩个参数都是对源数组的范围定义的,也就是可以定义源数组中的这样一个范围,去复制你想要复制的东西到新数组中去。值得思考的是,这样的复制方法,和一般的只创建一个数组来读写就可以复制到另一个文件的方法,有什么优点呢,显而易见,前者方法复制的内容是具有可控性的,可以通过自定义源数组和目标数组的起始位置来操控要复制的内容。
2023-07-13 16:12:18
84
1
原创 用Java将一个文件拆分成多个文件
今天看视频,学到了一个新的操作,就是用Java将一个文件进行拆分成多个文件,我觉得很神奇,通过这篇博客我将记录一下如何一步步进行拆分,也希望以后做项目时候可以用到这一次操作。总结:拆分文件需要循序渐进一步步来,代码逻辑是不能乱的,对于初学者的我来说,拆分文件如果不一步步捋清楚代码逻辑,画好流程图,自己是很难一步步写出来的。下面我用蛋糕的例子举例,将一个文件名为蛋糕.txt,大小为若干kb的文件拆分为若干个小蛋糕,每个蛋糕为的大小可自定义。运行后,可见文件刚好被拆分为6个小蛋糕文件。
2023-07-11 20:42:33
3630
1
原创 用Java制作一个微信零钱充值和提现的简易系统①
当中有充值,提现,退出系统三个操作,每次进行充值和提现的操作时需要输入支付密码,当提现金额不足时则会显示提现失败。当支付密码输入错误三次后,重新程序将会休眠五分钟然后自动结束程序(假设用户没有对结束程序的权限),再次运行程序执行操作。代码可能写的不够华丽精简,当然这是制作微信零钱充值和提现系统的第一个版本,后续还会继续创作,比如在输入支付密码错误的时候,应该还需要提供用户选择忘记密码这一操作,通过身份验证修改支付密码。流程和框架图都清晰了,接下来开始在Java中写代码开始制作这样一个系统。
2023-07-10 15:10:06
1498
1
原创 初学Java--自定义异常
打个比方,如Java中本已经定义好的编译时异常中的IOException,在程序进行输入(读取文件,网络连接等)或输出(写入文件,网络传输等)操作时,如果发生了错误,就会抛出IOException,而有些异常是我们基于人类主观上认为的不合理或不存在的一个异常现象,比如定义一个飞翔的方法让猫去实现,显然猫不会飞,再比如定义一个打分的方法,如果打分超过了满分也是不合理的,这些Java本身判断不了的异常现象,就需要我们人主观上去定义为异常。
2023-06-24 16:23:52
129
1
原创 初学Java--简述Throwable类
之前的博客中写到Object类是所有类的超类,而这次所提到的Throwable类是所有异常的超类,Throwable类是一个抽象类,包含了所有所有异常的共有属性和方法。因为假设E异常可能由其他不同的一个和多个异常引起,此时其他一个异常和多个就作为了E异常产生原因,用该方法是找到最根本的异常原因,这对程序员修复程序是十分重要的。观察上述代码,其中调用的getMessage方法,可以返回异常原因,打印异常信息,调用了getCause方法,由于没有更深层的异常原因,故返回值为null。:打印异常的详细信息。
2023-06-06 23:57:54
356
原创 初学Java--异常
首先执行try代码中的代码,如果出现异常,到catch中找匹配的异常类(可以有多个catch语句处理多个不同的异常),这里为Exception类,小写e为异常对象,再执行catch中的代码的异常处理逻辑,如果没有出现异常,则不会执行,而直接执行finally中的代码。2.运行时异常,程序运行时出现的异常,编译的时候不会报错,运行时会报错,通常是一些逻辑错误导致,这些异常可以不使用try-catch处理,即使没有被捕获,程序也可以继续执行,只是可能会导致程序崩溃或者达到了非预期结果。这个属于运行时异常。
2023-06-06 17:22:23
47
原创 初学Java-简述Object类
o.getClass(),其中调用了getClass的方法,因为getClass的方法可以获取该对象的类对象,所以这一段代码的意思是当前获取的对象的类对象不是另一对象o所获取的类对象,显然我们是在同一类中创建的对象,故两个对象都来自同一类,返回ture。在Java中,Object类是所有类的超类, 通俗的讲,就是所有类的都继承Object类。我们点击运行,输出结果却不尽人意,是一串神秘的字符,而这串神秘字符,其实就是内存地址,又称作该对象的哈希码。3.getClass():获取当前对象的类对象。
2023-05-27 15:37:15
133
原创 初学Java--类作为形参与返回值
在测试类中,同样利用catoperator来调用getCat的方法, 这样调用相当于把对象返回的对象cat1拿来用,于是便把new Cat()这玩意,赋值给了catOperator.getCat这玩意,等于是Cat cat1 = new Cat();作为形参时,当我们需要在方法中使用某个类的的对象时,可以将该对象作为参数传递给方法,这样方法就可以直接使用该对象,就不需要再创建一个对象实例化,以此便减少了代码的冗余。3.再创建一个测试类(Demo类),创建CatOperator类的对象,并调用方法。
2023-05-22 00:46:14
533
1
原创 初学Java-接口以及实现接口与继承的区别
在现实生活,存在着许许多多的接口,像我们的插座面板,和u盘就是生活中典型的接口,因为他们都是统一标准的,规范的而且公用的,插座面板不会有各种各样七七八八的孔,u盘也不会只能在这台电脑上插了用到另一条电脑上就插不了用不了。所以Java中的接口也是一样,是可以通用的,你在接口中写了方法,它可以在不同地方的不同类来实现,并不是说只能在这个类实现在另一个类就实现不了了,这便是Java接口的一个基本概念,接口是通用的方法特征集合。运行结果为猫猫跳高,狗狗跳高。继承分为:类继承,接口继承,抽象类继承。
2023-05-20 16:26:49
127
1
原创 初学Java-抽象类
什么是抽象类呢,这又是一个什么类呢,在Java中,用abstract 关键字来修饰一个类时,这个类叫作抽象类。抽象类可以看作是对类的进一步抽象。抽象类的作用在于将许多有关的类组织在一起,提供一个公共的类,如猫会吃东西,狗会吃东西,因为他们都会吃东西,但是不知道他们吃的是什么,所以吃东西这个行为就很抽象,于是可以创建一个吃东西的抽象类,写吃东西的抽象方法。再在测试类中测试,输出结果都为吃东西,这属于普通类继承抽象类,抽象方法为eat方法,当普通类继承抽象类时,普通类中必须重写抽象类(父类)中所有的抽象方法。
2023-05-07 22:08:23
95
原创 初学Java-多态2
父类有就直接调用成员变量,不管子类有没有。输出结果是2,访问的是父类中的成员变量。如果我把父类中的成员变量删除,则会报错。如果我我把子类的成员变量删除,则输出2。口诀:编译看左边,运行看左边。然后创建测试进行测试。
2023-04-16 23:27:43
118
原创 初学Java-多态
当我运行时,两个方法中的打印内容我没有写一样的,输出结果是:“狗吃肉”。访问的是子类中的方法。如果我删除掉子类中的eat方法,不进行方法重写,输出结果的是:“爱吃肉”。什么是多态,顾名思义,就是研究对象的不同形态。这样子创建呢,相当于说,这个狗呢,他是动物。这样子创建,相当于说这个狗呢,他是一只狗。要实现多态,前提一是要有继承和实现的关系。如果我删掉父类中的方法,结果就会报错。口诀:编译看左边,运行看右边。访问的是父类中的方法。
2023-04-16 23:10:07
106
原创 初学Java-继承
容易发现,这两个类都具有相同的属性和方法,如果我们还要写其他动物的的类,都像这样去写的话,那么将会出现大量重复代码且增加运行时间,太过于繁琐,所以如果为了避免这种情况出现,我们可以提出相同的属性和方法,写到一个类中,再让猫类啊狗类啊什么类的去“继承”这样一个类,我们可以将该类命名为动物类,这就是我们所说Java中的的“继承”。把Cat类和Dog类中的都相同的set和get方法都删除,留下一个不同的eat类。我创建了如下两个类,一个Cat类,一个Dog类。输出结果显然为Cafe吃鱼,Eva吃肉。
2023-04-07 19:38:09
88
原创 初学Java--StringBuilder的概述以及作用
需要注意的是,在拼接过程中,计算机不是将堆内存中的常量池的区间“abc”修改为了区间“abcdef”,而是在堆内存中先开辟了一块区间存放字符串cde,然后再开辟一块区间,存放拼接完的字符串“abcdef”,可见,这样子既费时又浪费空间,所以可以用StringBuilder构造方法来创建对象。用StringBuilder来创建对象时,由于它是一个可变的字符串类型,我们可以把它看作一个容器,丢什么进去就有什么,如果要进行字符串拼接,不会在堆中另开辟空间来创建一个新的对象,既省时又省空间。
2023-04-03 00:54:31
83
1
原创 初学Java--制作简易的超市管理系统
对于初学Java者来说,这是个很有意思的现象,我们往往会不清楚输出行应该打在哪里,所以造成输出环境不同,结果也会截然不同,只要细致观察,多多尝试,发现规律,就可以汲取教训,更进一步。今天学Java,遇到了这样一类问题,为什么自己打的System.out.println()在不同行有着不同的运行结果。然后输出了900个结果,更加的不对劲,它在这一位置输出时,是在for循环下面引导的结果,每一次循环都会输出一次。输出结果是这样的,它会在每找到一个水仙花数的时候都会输出一次,这是if引导下的结果。
2023-03-23 20:22:38
214
1
原创 学习Java的一些收获,强制类型转换问题
如果我们用double 存储变量a,再强制转换为int类型,运行的结果是88.0,很奇怪为什么不是88,而是88.0,查阅资料发现当强制转换为int类型时,小数点后的有效数字都会自动归零,本来double类型可以使浮点型88.8输出,转为int类型时就不会管小数点后有些什么了。就直接会报错了,低到高的类型转换都是默认不允许的,这就相当于int a = 88.8,而int存储不了浮点型。我们先插入一段代码,然后试着运行。
2023-03-18 14:43:14
88
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人