- 博客(51)
- 收藏
- 关注
原创 GUI的Awt
gui中的awt Frame窗口 只有最后设置了监听,退出时点击右上角×可以关闭窗口 输出 实现多个并排多个窗口 选择继承的方式,就不用每定义一个窗口就重复写相同的方法 在下面定义好需要的参数,上面main方法中直接设置好数值就好。 panel面板 输出 布局管理 1.流式布局 设置流式布局时flowlayout,可以选择设置按钮的位置,center,left,right 把按钮添加到frame上来frame.add三个按钮 2.东西南北中 3.表格布局Grid 例: 画出下布局
2021-07-22 11:42:20
176
原创 TreeMap
TreeMap实现类 TreeMap存储结构也是红黑树,并且可以对key进行排序 TreeMap方法 1.添加元素 因为它是红黑树结构,每添加元素都要和根节点进行比较,如果不设定元素比较规则会报异常 所以student要实现一个Comparable接口,然后定制比较规则 然后就可以添加元素了 这就按照学号添加进来了,因为返回的n2, 如果new一个相同学号的认为是相同的,不能添加进来,把value覆盖了 2.删除元素 这两种都可以删掉,比的就是学号,所以认为是相同重复的就删掉了 3.遍历,判断操
2021-07-11 17:34:16
163
原创 HashMap
HashMap实现类 HashMap是基于哈希表的Map接口的实现,此实现提供所有可选的映射操作,并允许使用空值和空键null HashMap实现: 案例: 1.添加元素 说明: 在Student类里添加无参构造,有参构造,添加getset方法,重写tostring方法 添加元素时,students . put (key , value)中的 key不可以重复,重复是添加不进来的,但是value可以重复, 通过new的方式来添加元素也是可以添加进来的,因为新new出来的地址是不同的,如果不想让相同的元素
2021-07-11 16:07:19
197
原创 Map集合
Map接口 两个实现类:HashMap(重要)和TreeMap 特点: 1.存储任意键值对(一对数据),提供键映射至值的功能,每个键最多只能映射至一个值 2.键:无序无下标,不允许重复(是唯一的) 3.值:无序无下标,允许重复 常用方法 put(key,value) 1.put方法添加元素(关键字,值) 每一个键只对应一个值,在添加元素时,重复的key会把之前的给替换掉 2.删除,迭代操作 ...
2021-07-11 10:11:39
102
原创 List集合
List子接口 List接口是一个有序的collection,可以对列表中每个元素的插入位置进行更精准的控制 有序(添加的顺序和遍历获取的顺序一样) 有下标(可以通过下标访问,所以可以使用for循环) 元素可重复 方法使用: (除了包含collection的所有方法外还有自己特有的一些方法) 1.添加删除操作 add(int index,Object o) addAll(int index,Collection c) 输出 注意删除时List.remove(0),括号里的内容是要删除元素的角标,而不是元
2021-07-03 21:01:52
157
原创 集合框架Collection
集合: 对象的容器,实现了对对象常用的操作,类似数组功能 集合和数组都是容器,区别: 1.数组长度固定,集合长度不确定,可改变 2.数组可以存储基本类型和引用类型,集合只能存储引用类型 Collection体系集合 Collection是一个根接口,代表一组任意类型对象,成为“集合” 它的两个子接口List和Set List接口是一个有序的、有下标、元素可重复 Set接口无序、无下标、元素不可重复 这里的有序和无序 是指添加的顺序和遍历的顺序是否一致。 Collection父接口代表任意类型的对象,整体看
2021-07-03 10:25:19
93
原创 Arrays类、Random类、包装类
Arrays数组 常用方法 1.toString:返回指定数组内容的字符串表示形式。 输出 2.sort:对指定的类型数组按数字升序排序(自然排序和定制排序) 先用sort排序,然后打印出它 输出从小到大的排序 如果想输出从大到小可以使用sort里的一个规则 这个可以指定排序的规则是什么(从小到大,从大到小还是别的什么),通过Comparator实现定制排序 3.binarySearch:使用二分法来搜索指定类型数组,以获得指定的值。 4.fill: 将指定类型分配给指定类型数组的每个元素。 .
2021-07-02 15:25:46
180
1
原创 Math类
用于执行基本数学运算的方法,如初等指数,对数,平方根和三角函数 基本方法:均为静态方法 1.abs 绝对值 2.pow(a,b);a的b次幂 3.ceil() 向上取整 4.floor() 下取整 5.round() 四舍五入 6.sqrt 求开方 输出 7.random 随机数:返回的是 [0,1)之间的一个随机小数 输出 8. min,max返回最大值最小值 输出 ...
2021-07-02 09:48:55
114
原创 常用类 — String
String类 字符串常量,创建之后不可改变 字符串字面值存储在字符串池中可以共享。 定义一个name把huaji赋值给他,栈里面的name的地址指向字符串池的huaji,然后再把zhangsan赋值给他,这时并不是把huaji改为了zhangsan,而是在字符串池内重新开辟了一个空间zhangsan,如果原来的huaji没用的话就成垃圾了 可以看出,给字符串赋值时并没有修改数据,而是重新开辟了一个空间(不可变性) 在给字符串赋值时,他会在字符串池里找有没有对应的字符串,如果有就用,如果没有就重新开辟一
2021-07-01 22:42:43
106
原创 常用类 — Object
Object类 超类、基类,所有类的直接或间接父类,位于继承树的最顶层 任何类在没有显示继承了某个类时,都默认继承Object类。 Object类中所定义的方法是所有对象都具有的方法 Object类型可以存储任何对象 方法:getClass、hashCode、toString、equals、clone、notify、wait getClass()方法 返回当前对象的类类型,实际对象类型 应用于:判断两个引用中实际存储对象类型是否一致。 添加get、set方法,构造方法 hashCode()方法 用来返回对
2021-06-30 22:09:09
200
原创 内部类
· 内部类就是在一个类的内部再定义一个类,A中定义一个B类,那么B类相对于A类来说就称为内部类,A相对B来说就是被外部类。 1.成员内部类 2.静态内部类 3.局部内部类 4.匿名内部类
2021-06-30 16:38:40
95
原创 异常
Error和Exception Exception 异常指程序运行中出现的不期而至的各种状况,例外情况 异常发生在程序运行期间,它影响了正常程序执行流程 比如说: 输出一个9/0,但是因为分母不能为0,所以报了一个异常: 分类: 1.检查性异常 程序员无法预见,可能是用户错误或问题引起的 2.运行时异常 可以被避免的,编译时看不到 3.错误Error 错误不是异常,这是脱离程序员控制的问题 Error error类对象由Java虚拟机生成并抛出,大多数错误与代码所执行的操作无关;类定义错误,链接错误这些
2021-06-05 10:57:16
109
原创 反编译
在IDEA中进行反编译 1.点击 2.复制目录 3. 打开 这里面就是执行的class文件 不过打开之后的东西我们看不懂 4.直接将那个文件从文件夹层拷过去 打开文件夹: 直接将文件夹拖过来 此时idea里就有了 双击打开,就是反编译之后的文件 ...
2021-06-04 16:42:21
123
原创 switch
switch case语句判断一个变量与一系列值中某个值是否相等,每个值称为一个分支 一般形式: 变量类型可以是int型,char,byte,short还有String类型
2021-06-04 16:23:22
86
原创 接口interface
普通类只有具体实现 抽象类有具体实现和规范(抽象方法) 接口只有规范自己无法写方法 接口比抽象类还要抽象,专业的约束 约束和实现分离,面向接口编程 接口的本质是契约,就像法律,制定好后,大家都遵守 ...
2021-06-04 12:23:32
94
原创 抽象类
抽象类就是抽象的抽象 abstract来修饰类,它就是一个抽象类 在一个类上面使用abstract关键字它就是变成抽象类了 写一个方法 不写方法体: 这里只有方法的约束没有方法的名字 抽象方法只有方法的名字,没有方法的实现 定义一个类A,让它继承Action 报错,因为它必须实现子类,重写父类的方法 java中的类单继承,接口可以多继承 特点 1.抽象类不能new出来,只能靠子类去实现,是一个约束 2.抽象类中可以写普通方法 3.抽象方法必须在抽象类中 抽象类可以有构造方法 抽象类存在的意义:为
2021-06-03 21:34:48
87
原创 static关键字
1.静态属性 定义两个变量,年龄、属性 通过student对象可以直接调用 通过Student类也可直接调用 用类调用非静态的score报错了,非静态的不能这样调用 (如果是静态变量,推荐使用类名去 .变量 2.静态方法 定义两个方法 run();非静态 go();静态方法 在直接调用run时显示报错,是不能直接调用run方法的,只有在把student 给new出来才可以 对象 . 方法 在调用go方法时,可以直接调用 或者去掉Student也可以直接调用 加了static就是从属于这个类,
2021-06-03 19:21:22
90
原创 多态
多态:同一方法可以根据发送对象的不同而采用多种不同的行为方式 一个对象的实际类型是确定的 指向的引用类型是不确定的,父类的引用指向子类 可以通过父类new子类,Person和Object都是Student的父类 子类引用和父类引用指向的是不一样的,Student能调用的方法都是自己的或者继承父类的 Person是父类型,虽然可以指向子类,但是不能调用子类独有的方法 1.在父类写一个方法run 调用run方法 输出 虽然new的是Student但是依旧走了父类的方法,因为子类继承了父类的全部方法。
2021-06-01 19:01:10
102
原创 super
1.super是调用父类的构造方法,必须在构造方法的第一个 2.必须只能出现在子类的方法或构造方法中 3.super和this不能同时调用构造方法 super 代表父类对象的引用,调用父类的构造,只能在继承条件下使用 this 代表本身调用者这个对象,调用本类的构造,没有继承也能使用 子类调用父类属性: (左测试类 中子类 右父类) 这三种情况的name输出是不同的 第一个的name是左面main传递给它的参数,传递给它的名字垃圾 第二个this name是当前类的name 滑稽 第三个是super调用的
2021-05-30 18:28:44
74
原创 继承
继承的本质是对一批类的抽象,把类再次抽象 学生类,老师类都属于人类 人类是父类 学生类和老师类是子类(或派生类) 子类是父类的扩展(用extends来表示) 子类可以继承父类所有的方法
2021-05-30 15:52:00
60
原创 封装
封装 数据的隐藏,禁止直接访问一个对象中数据实际表示,应通过接口来访问。高内聚,低耦合 属性私有 封装主要是对于类中的属性的,对方法比较少 private:私有 属性私有起来 private String name;名字 private int id;学号 private char sex;性别 因为name是private私有的,所以不能直接调用,会报错 如果改成public就可以调用了 getset 因为那些被private的属性变得私有,new了对象但是不能用这些属性,所以getset提供一些方法
2021-05-28 22:08:10
108
原创 面向对象构造器
属性+方法就是一个类 面向对象编程的本质:以类的方式组织代码,以对象的形式封装数据 定义方法: 修饰符 返回值类型 方法名(){ //方法体 return 返回值; } 方法名:注意驼峰原则,见名知意 方法没有返回东西void时 public void hello(){ return; } break:跳出switch语句,循环结束 return:表示方法结束,返回一个结果,再sout输出语句也无法输出了。 参数列表: 参数类型,参数名 ...
2021-05-27 19:17:11
64
原创 冒泡排序
排序共有八大排序 冒泡排序是最为出名的排序算法之一 主要过程: 1.比较数组中相邻的两个元素,如果第一个数比第二个数大,则交换他们的位置 2.每次比较都会产生出一个最大或者最小的数字 3.下一轮则可以少一次排序 4.依次循环直到结束 ...
2021-05-23 10:58:09
72
原创 Arrays类
数组的工具类java.util.Arrays 打印数组元素 用一个to.String来打印 输出 如果直接输出a的话 输出 并不能输出a的内容,用一个to.String可以。 用for循环的话
2021-05-22 18:00:29
78
原创 多维数组
多维数组是数组的数组 二维数组: 形式int a [ ] [ ] = new int [2] [5]; 如果直接输出 输出的是这个 如果要查看数组里面的值 则用打印数组元素来输出 输出 如果 输出 长度输出为 套娃
2021-05-22 11:56:24
107
原创 数组初始化及小结
栈:存放基本变量类型(包含这个基本类型的具体数值) 堆:存放new的对象和数组 静态初始化: 创建+赋值 int[ ] a = {1,2,3,4,5,6};(大括号代表一个数组) 定义之后不可改变了,a的长度就确定了,元素个数不可改变 动态初始化: 包含默认初始化 int [ ] b = new int [10]; b[0]=10; 创建数组后,在赋值之前每个元素都有一个默认值0 没有被赋值的情况下也能输出0 默认初始化: 数组是引用类型,它的元素相当于类的实例变量,数组一经分配空间,其中的每个元素也被隐式
2021-05-20 09:33:19
163
原创 数组的声明创建
在程序中使用数组必须要先声明: 方法1. dataType[ ] arrayRefVar;//首选方法 (在类型后加一个中括号) 方法2. dataType arrayRefVar[ ];//效果相同,但不是首选 (在变量名后加一个中括号) 类型 名字 = 值 int [ ] nums;(一般java中使用)声明了一个数组 int nums2[ ];(一般c c++中) 这两种定义方式都可 int[ ] 表示 int 类型的数组 java中使用new操作符创建数组: 语法: dataType [ ]
2021-05-19 22:46:14
113
原创 递归
递归是自己调用自己 递归结构包括: 递归头:如果没有尽头将陷入死循环 递归体:什么时候需要调用自身方法 这个程序的递归头是1 ,也就是边界条件是1 java是栈机制,main方法在最底层,每调用一个方法就加一层,main方法执行完 基数比较小的时候用,能不用就不用 如果基数为1000那电脑可能就崩了,此时我们就要换一些其他算法来解决 递归的能力在于用有限的语句来定义对象的无限集合 套娃 ...
2021-05-18 11:14:54
73
原创 方法重载
在一个类中有相同的函数名称,但形参不同的函数 一个类里面有两个方法或多个,并且有相同的名字,只是它们的参数不同,参数类型不同 一个int型 一个double型,函数名都是max 重载方法可以让程序更加清晰易读 方法重载规则: 方法名称必须相同 参数列表必须不同(个数,或类型,或排列顺序不同) 方法的返回类型可以相同也可以不同 仅返回类型不同不足以成为方法的重载 ...
2021-05-17 14:56:44
108
原创 方法的定义和调用
· 方法是用来完成特定功能的代码片段 表示方式: 修饰符 返回值类型 方法名(参数类型 参数名){ ··· 方法体 ··· return 返回值; } 修饰符:可选的; 返回值类型 : int型返回一个数字,void:只是输出一句话,什么也不返回,表示在没有返回值的情况下用void表示空 方法名:方法的实际名称,随便取的,驼峰命名 参数类型:像是一个占位符,是可选的,方法可以不包含任何参数 实参:调用方法实际传递给方法的数据,一个实际的值 形参:去定义方法时随便编的参数,用来定义的 方法体:包含的具体方法语
2021-05-17 11:12:56
110
原创 用程序打印三角形
1.先打印一个倒三角形 说明:外层循环 i 表示的是第几行,表示循环几次 内层循环的 j 从第一个数字开始减小(54321) 输出顺序是从左到右的 i=1,(j=5,j=4,j=3,j=2,j=1)( j 减小一个输出一个*)循环完了,才开始i=2,(j=5,4,3…), i=3…,i=4… 输出 注意用print()输出,否则不是一行 2.打印第二部分正三角形 增加一个for循环,把第一个循环的输出为空, 增加一个正三角形,从小变大 输出 3.再在右边打印第三部分正三角形 增加一个for循环 输
2021-05-15 12:35:53
1727
原创 break和continue
break 用于强制退出循环,不执行循环中剩余的语句 continue 用于终止某次循环过程,即跳过循环体中尚未执行的语句,接着进行下一次是否执行循环的判定
2021-05-12 21:48:39
78
原创 Scanner
用户交互Scanner 通过Scanner类可以获取用户的输入 基本语法: Scanner s = new Scanner(System.in); System.in用来接收用户输入,并把它封装成了s 用完一定要记得关闭它,否则要一直占用资源 关闭的语句:scanner.close(); 程序基本操作 new Scanner回车 在括号内输入System.in后,alt+enter 这就是基本格式,最后不要忘记scanner.close(); 这就是基本格式 next()和nextLine()方法 通
2021-05-11 21:47:40
86
原创 JavaDoc
Java Doc命令 JavaDoc 命令是用来生成自己的API文档的 @author 作者名 @version 版本号 @since 指明需要最早使用的jdk版本 @param 参数名 @return 返回值情况 @throws 异常抛出情况 加注释:/ * * 回车 /** * */ 通过命令行来操作 回车后出来运行框 输入javadoc -encoding UTF-8 -charset UTF-8 Doc.java(这一串文字是防止生成的东西乱码) 回车后生成以下 而且源
2021-05-04 18:27:58
87
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅