- 博客(23)
- 问答 (1)
- 收藏
- 关注
原创 Java:流过滤器
接上节在上节中,我们只能往文件中读写二进制的数据,FileOutputStream和FileInputStream都只能进行单个字节的读写,可如果我们要写一些int类型类型的数据到文件中(4个字节),那我们就需要用到过滤器了。通过增加过滤器DataOutputStream可以处理基本数据类型结果在工作目录下生成一个a.dat文件,里面会以二进制得形式存储你输入的数据控制台结果:当我们要处理(输入输出)人可以读的文本,可以使用Reader/Writer现在我们的文本一般都不是unicode的编码,就
2022-06-29 17:58:11 959
原创 Java:流(Stream)
流(Stream),也有小溪的意思,系统中的流也可以用小溪来理解:单方向的,有位置的。像一开始的“hello world”程序中,System是一个类,out是System类的一个静态成员,println是out成员可以做的一些事情(方法),out这个成员是做输出的一个流。Java中,所有输出都基于OutputStream,所有输入都基于InputStream这个类,这两个类都是抽象的,我们能用它们具体的子类,我们可以参考来得知可以使用的方法(如out除了println还可以使用什么方法)结果输出
2022-06-28 17:48:52 463
原创 Java:异常
当你不确定一段代码会不会抛出异常时,可以用try把这段代码包起来,用catch区分抛出的宜昌的类型执行对应的操作以下是上述代码的命令执行顺序图
2022-06-12 20:32:07 324
原创 Java:内部类
内部类就是指一个类定义在另一个类的内部,从而成为外部类的一个成员。因此一个类中可以有成员变量、方法,还可以有内部类。实际上Java的内部类可以被称为成员类,内部类实际上是它所在类的成员。所以内部类也就具有和成员变量、成员方法相同的性质。比如,成员方法可以访问私有变量,那么成员类也可以访问私有变量了。也就是说,成员类中的成员方法都可以访问成员类所在类的私有变量。内部类最重要的特点就是能够访问外部类的所有成员。结果:...
2022-06-09 20:33:04 75
原创 Java:MVC设计模式
View做的事情是当被通知数据被修改了,就从Model获得数据把整个窗口重新画一遍。Model做的事情是当数据修改了,Model会通知View数据被修改了,并提供给View数据。Control会检测用户是否修改了数据,如在表格中输入了数据,如果数据被修改了,则调用Model提供的接口来修改Model中的数据。在上面的设计模式种很重要的一点是View和Control是没有关系的,用户在界面上的操作不直接修改界面上的数据,而是要经过Model,由它来调用View重绘窗口,使数据显示在窗口中。这样做的好处
2022-06-08 20:30:18 426
原创 Java:控制反转
Java中自带的函数或对象都是编写软件的时候写的,当它需要调用你自己编写的数据的时候,它如何又不知道你定义的类(对象)是什么,里面有什么成员,它无法调用你的代码,这个时候就需要用到控制反转了。简单来说,控制反转是java编写时留的一个接口,它可以通过这个接口来调用你自己写的代码。如下代码是控制反转的一个示例,代码定义了一个按钮,将按钮添加进窗口中,当点击时触发addActionListener(控制反转)JButton类是很早就写好的,在编写时不可能想到后面我写了“test”类,它就需要进行控制反转。
2022-06-07 12:29:36 963
原创 Java:Swing
当你将数据放入Swing的窗口(容器)时候,Swing会自动处理其中的数据,将其调整到合适的大小,以适配不同的机器(如手机和电脑)你可以在使用JFrame对象(frame)的add函数的时候传递第二个参数给它如:frame.add(bnt3, BorderLayout.SOUTH);如果你不设置数据的位置Swing窗口会将数据默认设置为居中,如果连续两次不设置,第二次输入会覆盖掉第一次。import java.awt.BorderLayout;import javax.swing.JButton
2022-05-31 20:04:39 187
原创 Java:接口(狐狸和兔子)
狐狸和兔子:细胞自动机升级版包:foxandrabbit主程序(FoxAndRabbit)包:field数据处理(Field)图形绘制(View)存储移动位置(Location)包:Cell接口(Cell)包:animal动物类[父类](Animal)狐狸[子类](Fox)兔子[子类](Rabbit)包:foxandrabbit主程序(FoxAndRabbit)package foxandrabbit;import java.util.ArrayList;import javax.swing.
2022-05-28 14:45:38 1025
原创 Java:抽象类
抽象抽象(abstract):一个类中如果有一个抽象函数或者抽象变量,那么这个类也必须是抽象的(abstract)。你可以将抽象理解为这是一个声明,如果子类继承父类,必须要实现父类的抽象函数或变量,除非子类也定义成抽象函数。抽象函数是没有对象的,抽象类只是一个概念。就像定义一个鸟类,“鸟”是一个概念,没有实体。只有定义它的子类,如:麻雀,才可以有具体的对象。同时麻雀必须实现“鸟”类的所有抽象的概念,否则自己也得是抽象的。还有一种情况:父类是抽象函数,子类不实现父类的抽象函数,同时定义自己也是抽象类,
2022-05-28 13:42:52 229
原创 Java:重写Object类的tostring和euqals方法
Object类的tostring和euqals方法toStringequalsJava中所有类默认继承Object类,Object中toString和euqals这两个方法是我们常用的(我只学了这两个*-*)toString当对象对应的类没有定义自己的toString函数时,会调用Object的toString函数,输出结果为【包名.类名@对象的地址】public class Main{ public static void main(String[] args){ Test t = new
2022-05-07 15:21:22 863
原创 Java:多态变量和向上造型
接上文:Java:继承多态变量我们定义了一个类出来,就是定义了一个新的类型,这个新的类型可以用来定义变量,可以制造类的对象存入定义的变量中(变量是管理者)。类定义了类型,DVD类所创建的对象的类型就是DVD。类可以有子类,所以由那些类定义的类型可以有子类型。在下面的例子中,DVD类型就是Item类型的子类型。**子类型类似于类的层次,类型也构成了类型层次。**子类所定义的类型是其超类的类型的子类型。当把一个对象赋值给一个变量时,对象的类型必须与变量的类型相匹配,如: Car myCar =
2022-05-06 17:47:13 977
原创 Java:继承
继承概念说明实例说明关系图解继承中类的声明(public)概念说明概念:面向对象程序设计有三大特性:封装、继承和多态性。继承是面向对象语言的重要特性之一,没有继承的语言只能被称为“使用对象的语言”。继承是非常简单而强大的设计思想,它提供了我们重用和程序组织的有力工具。类是规则,用来制造对象的规则。我们不断的定义类,用定义的类制造一些对象。类定义类对象的属性和行为,就像图纸决定了房子要盖成什么样子。解释:一张图纸可以盖很多的房子,它们都是相同的房子,但坐落在不同的地方,会有不同的人住在里面。假如现
2022-05-06 15:09:59 161
原创 Java:散列表(Hash)
可以将HashMap(散列表)理解为Python中的字典,一个键对应一个值,键是唯一的,如果键重复,后输入的键对应的值会覆盖前面的值。import java.util.HashMap;import java.util.Scanner;public class Main { private HashMap<Integer, String> coinnames = new HashMap<Integer, String>(); //必须Integer,int报错,容器中的数
2022-05-03 18:55:18 1508
原创 原码和补码的定义和运算
在一般算术表示中使用“+”和“-”来表示正数和负数,而在计算机中使用“0”和“1”来表示正数和负数。用“+”或“-”表示正负的数叫真值,用“0”或“1”表示正负的数叫机器数,在本文中可以理解为原码。带符号的机器数可以用原码、补码、反码三种不同的码制来表示。一般计算机中大多使用补码表示。原码二进制数的最高为表示符号,0为正,1为负。数值部分用二进制绝对值表示。补码补码的定义原码补码的转换正数的原码和补码相同,下面主要讲负数的变换。补码数的范围补码的加减运算运算实例注:正数的补
2022-05-03 12:21:06 518
原创 Java:集合容器(set)
集合就是数学中的集合的概念:所有的元素都具有唯一性,元素在其中没有顺序。package test;import java.util.ArrayList;import java.util.HashSet;class Value{ private int i; public void set(int i) {this.i = i;} public int get() {return i;} public String toString() {return ""+i;} //当直接调用对象
2022-05-01 12:47:29 332
原创 Java:String数组(对象)、for-each循环
String变量当String变量没有初始值的时候,默认为null,输出也为null,String类型的数组也一样。public static void main(String[] args) { int[] ia = new int[10]; String[] a = new String[10]; System.out.println(ia[0]+2); System.out.println(a[0]+2); System.out.println(a[0].length());
2022-05-01 11:15:23 6091
原创 Java:顺序容器
所谓容器,就是“放东西的东西”。数组可以看作是一种容器,但是数组的元素个数一旦确定就无法改变,这在实际使用中是很大的不足。一般意义上的容器,是指具有自动增长容量能力的存放数据的一种数据结构。在面向对象语言中,这种数据结构本身表达为一个对象。所以才有“放东西的东西”的说法。Java具有丰富的容器,Java的容器具有丰富的功能和良好的性能。熟悉并能充分有效地利用好容器,是现代程序设计的基本能力。本章讲的是顺序容器,即放进容器中的对象是按照指定的顺序(放的顺序)排列起来的,而且允许具有相同值的多个对象存在。
2022-04-30 17:06:49 219
原创 Java:包(package)
如图,在eclipse中,在项目中文件夹下的就是包。这个(clock)包中有3个.java文件。在资源管理器中的表现形式。新建一个包,将Main函数移动到新的包中文件不在一个包中,代码也要做一些修改:在package的声明下面加入下面两句话(要确保Clock和Display类是public的)import clock.Clock;import clock.Display;以下代码目的是模拟时钟。//Main的代码package test;import clock.Clock;
2022-04-29 16:44:56 123
空空如也
csdn上传图片水印怎么去除
2022-04-29
TA创建的收藏夹 TA关注的收藏夹
TA关注的人