- 博客(48)
- 收藏
- 关注
原创 GUI编程
GUI是什么? 它怎么玩 该如何去在我们平时运用 组件: 窗口 弹窗 面板 文本框 列表框 按钮 图片 监听事件 鼠标 键盘事件 破解工具 1.简介Guid的核心技术:Swing 和 AWTGui被淘汰的原因:1.界面不美观2.需要jre环境(jre内存大)为什么需要学习Gui:1.是MVC架构的基础,了解MVC架构了解监听2.可以写出...
2022-03-28 15:10:20
530
原创 自定义异常
使用Java内置的异常类可以描述在编程时出现的大部分异常情况。除此之外,用户还可以自定义异常。用户自定义异常类,只需继承Exception类即可 在程序中使用自定义异常类,大体可分为以下几个步骤: 1.创建自定义异常类 2.在方法中通过throw关键字抛出异常对象 3.如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作 ...
2022-03-28 15:08:34
1415
原创 异常捕获和抛出异常
异常处理机制: 抛出异常 捕获异常 异常处理五个关键字 1.try:监控区域 catch:捕获异常 finally:处理善后工作 throw:制造异常 throws:抛出异常 try catch是遇到错误也能运行运行,throw 和 throws 是运行的时候给你抛出异常 //异常代码package exception;public class Text { public st..
2022-03-28 15:06:13
729
原创 异常机制:Exception
简单分类: 1.检查性异常:最具代表性的检查性异常是用户错误或者问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单得忽略 2.运行时异常:运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略 3.错误 ERROR:错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如:当栈溢出时,一个错误就发生了,它们在编译也检查到的 异常处理架构:异常体系结构 Java把异常当做对象
2022-03-28 14:59:46
84
原创 内部类
内部类package oop.Demo13;public class Outer { private int id=10; public void out(){ System.out.println("这是一个外部方法"); } //内部类 就是在类里面创建类 public class Inner{ public void in(){ System.out.println("这是一个内部类"); ...
2022-03-28 14:57:40
301
原创 接口
声明类的关键字是class,声明接口的关键字是interface作用: 1.Java的接口是约束 2.定义一些方法,让不同的人实现 3.接口中默认的方法都是 default 4.接口中的常量都是 public static final 5.接口不能被实例化,接口中没有构造方法 6.implements 可以实现多个接口 7.必须要重写接口中的方法创建第一个UserService接口:package oop.Demo12;//interface ...
2022-03-28 14:53:04
689
原创 抽象类
abstract关键字用于修饰类:public abstract class Action { //abstract,抽象方法,只有方法名字,没有方法的实现(没有方法体)! public abstract void doSomething();//抽象方法 doSomething();}抽象类的特点: 1.不能new这个抽象类,只能靠子类去实现它 2.抽象类中可以写普通的方法 3.抽象方法必须在抽象类中 抽象的抽象:约束思考:1.抽象类既然不...
2022-03-28 14:45:28
261
原创 final关键字概念与四种用法
含义:final关键字代表最终的、不可改变的常见的四种用法:① 可以用来修饰一个类 ② 可以用来修饰一个方法 ③ 可以用来修饰一个局部变量 ④ 可以用来修饰一个成员变量1.final关键字用于修饰类:格式如下:public final class 类名称 { ... }作用:使用当前这个类不能有任何子类(“太监类”),例如被final修饰过后的父类,子类将不再能进行继承举例://父类public final class Father {//添加f
2022-03-22 16:42:25
3893
原创 Static详解
静态属性静态变量可以以 类名.变量 的格式进行直接调用public class Student { private static int age;//静态的变量 多线程常用到 private double score;//非静态的变量 public static void main(String[] args) { Student s1 = new Student(); //静态变量建议用 类名.变量 System.o...
2022-03-22 16:40:36
71
原创 instanceof和转换类型
import oop.Demo009.Preson;import oop.Demo009.Student;import oop.Demo009.Teacher;public class Application { public static void main(String[] args) { //等级 //Object > String //Object > Preson > Teather //Obje...
2022-03-22 16:36:45
71
原创 多态
多态的定义: 即同一方法可以根据发送对象的不同而采用多种不同的行为方式 一个对象的实际类型是确定的,但可以指向对象的引用的类型有很多(引用的类型一般为父类或者有关系的类) 多态存在的条件: 有继承关系 子类重写父类方法 父类引用指向子类对象 package oop.Demo008;public class Person { public void run(){ System.out.println("preson"); ...
2022-03-21 09:39:21
67
原创 方法的重写
方法与方法的定义因为静态方法是类的方法,而非静态是对象的方法有static时,b调用了B类的方法,因为b是用b类定义的没有static时,b调用的是对象的方法 ,而b是用A类new的即b是A new出来的对象,因此调用了A的方法静态方法和非静态方法的区别1.静态方法package oop.Demo07;//重写就是方法的重写,和属性无关public class B { public static void text(){ System.out.pri...
2022-03-21 09:37:41
102
原创 Super详解
Super注意点:1.super调用父类的构造方法,必须在构造方法的第一个2.super必须只能出现在子类的方法或者构造方法中3.super 和 this 不能同时调用构造方法!它们都要确保自己在第一位,所有会报错对比 this:1.代表的对象不同(1)this:本身调用者这个对象(2)super:代表父类对象的引用2.使用前提:this:没有前提也可以使用super:只能在继承条件下才可以使用3.构造方法的区别:this(); 默认调用 本类的构造s
2022-03-18 14:51:10
88
原创 Java快捷键
ctrl+d 快速复制当前行ctrl+/ 快速注释选定内容快捷键:alt+inser 自动生成构造器 已经设置了属性的话,点击OK直接生成有参构造器 设置了属性的情况下,点击Select None生成无参构造器 没有设置属性点击OK直接生成无参构造器 快捷键:alt+insert 点击getter setter直接生成get、set方法快捷键:Ctrl+H 父类子类关系表...
2022-03-18 09:06:26
317
原创 面向对象09:什么是继承
继承 继承的本质是对某一批类的抽象,从而实现对现实世界更好的建模 extends的意思是“扩展”,子类是父类的扩展 Java中类只有单继承,没有多继承,例如:一个son只能有一个father,但一个father可以有多个son 继承是类和类之间的一种关系,除此之外,类和类之间的关系还有依赖、组合、聚合等 继承关系的两个类,一个为子类(派生类),一个为父类(基类)。子类继承父类,使用关键字extends来表示 子类和父类之间,从意义上讲应该具有“is
2022-03-18 08:49:22
83
原创 面向对象08:封装的详解
封装封装的定义: 该露的露,该藏的藏: 1.我们程序设计要追求"高内聚,低耦合"。高内聚就是类的内部数据操作细节自己完成,不允许外部干涉;低耦合:仅暴露少量的方法给外部使用 封装(数据的隐藏) 1.通常,应禁止直接访问一个对象中数据的实际表示,而应通过操作接口来访问,这称为信息的隐藏 记住这句话就够了:属性私有,get/set 例如:高聚合package oop.Demo004;//类 private:私有public class Student .
2022-03-18 08:47:31
78
原创 面向对象07:类与对象的小结
类与对象的小结什么是类与对象:1.类与对象 类(抽象)是一个模板,对象(具体)是一个具体的实例 2.方法 先定义,然后进行调用 3.对象的引用 引用类型: 基本类型(八个:int、long、short、boolean、doulean、float、byte、char) 对象是通过引用来进行操作的:栈---->堆 4.对象的属性:字段Field 或者叫做 成员变量 默认初始化:(1)数字:0或者0.0 (2)char:u0000 (3)boolean:
2022-03-18 08:44:54
72
原创 构建对象内存分析
package oop.Dome003;public class Pet { //设置一个public public的权限比较高 public String name; public int age; //无参构造 public void shout(){ System.out.println(name+"叫了一声"); }}package oop.Dome003;public class Application { .
2022-03-18 08:43:30
63
原创 面向对象05:构造器详解
构造器详解 使用new关键字创建的时候,除了分配内存空间之外,还会给创建好的对象进行默认的初始化以及对类中构造构造器的调用 类的中构造器也称之为构造方法,是在进行创建对象的时候必须要调用的。并且构造器有以下两个特点: 1.必须和类的名字相同2.必须没有返回类型,也不能写void *构造器必须要掌握好 无参构造器的使用public class perso02 { String name; //一个类即使什么都没写,它也会存在一个方法 //显示的定...
2022-03-18 08:41:38
108
原创 面向对象04:类与对象的关系
类与对象的关系类是一种抽象的数据类型,它是对某一类事物整体描述/定义,但并不能代表某一个具体的事物 动物、植物、手机、电脑..... person类、pet类、Car类等,这些类都是用来描述/定义某一类具体的事物应该具备的特点和行为 对象是抽象概念的具体事例 张三就是人的一个具体实例,张三家里的旺财就是狗的一个具体实例 能够体现出特点,展示出功能的是具体的实例,而不是一个抽象的概念 创建与初始化对象 使用new关键字创建对象 使用new
2022-03-17 14:55:36
96
原创 面向对象02:回顾方法的定义
回顾方法及加法方法的定义 修饰符 返回类型 //Dome01类public class Dome01 { //main方法 public static void main(String[] args) { } /* 修饰符 返回值 方法名(...){ //方法体 return 返回值; } */ public String sayhello(){ retu...
2022-03-17 14:53:43
437
原创 面向对象
面向对象Java的核心思想就是oop 面向过程思想 1.步骤清晰简单,第一步做什么,第二步做什么..... 2.面对过程合适处理一些较为简单的问题 面向对象思想 1.物以类聚,分类的思维模式,思考问题首先会解决问题需要哪些分类,然后对这些分类进行单独思考。最后,才对某个分类下的细节进行面向过程的思考2.面向对象适合处理复杂的问题,适合处理需要多人协作的问题 对于描述复杂的事物,为了从宏观上把握、从整体上合理分析,我们需要使用面向对象的思路来分析整个系统。但是,
2022-03-17 14:51:39
42
原创 稀疏数组
稀疏数组 当一个数组中大部分元素为0,或者为同一个值的数组时,可以使用稀疏数组来保持该数组 当稀疏数组的处理方式是: 1.记录数组一共有几行几列,有多少个不同值2.把具有不同值的元素和行列及值记录在一个小规模的数组中,从而缩小程序的规模 如下图:左边是原始数组,右边是稀疏数组 行 列 值 [0] 6(行) ...
2022-03-17 14:50:33
44
原创 冒泡排序
冒泡排序 冒泡排序无疑是最为出名的排序算法之一,总共有八大排序 冒泡的代码还是相当简单的,两层循环,外层冒泡轮数,里层依次比较,江湖人尽皆知 我们看到嵌套循环,应该立马就可以得出这个算法的时间复杂度为0(n2) import java.util.Arrays;public class ArraysDome14 { public static void main(String[] args) { /*冒泡排序 1.比较数组中,两个相邻的...
2022-03-17 14:48:54
52
原创 Java:Arrays类
Arrays类 数组的工具类import java.util.Arrays 由于数组对象本身并没有什么方法可以供我们调用,但API中提供了一个工具类Arrays供我们使用,从而可以对数据对象进行一些基本的操作 查看JDK帮助文档 Arrays类中的方法都是static修饰的静态方法,在使用的时候可以直接使用类名进行调用,而“不用”使用对象来调用(注意:是“不用”而不是“不能") 具体有以下常用功能: 给数组赋值:通过fill方法 对数组排序:通过s
2022-03-17 14:47:50
748
原创 多维数组定义
多维数组可以看成是数组的数组,比如二维数组就是一个特殊的一堆数组,其每一个元素都是一个一堆的数组 二维数组 int a[][]=new int[2][5]; 解析:以上二维数组a可以看成一个二行五列的数组 public static void main(String[] args) { //相当于创建了一个2行三列的数组 //array[0] array[1] array[2] // 1 2 ...
2022-03-17 14:46:45
516
原创 数组的使用
For-Each 循环 数组作方法入参 数组作返回值 public static void main(String[] args) { int[] arrays = {1, 2, 3, 4, 5, 6}; //打印全部元素 进阶 没有下标 for (int array : arrays) { System.out.println(array); } //调用print...
2022-03-17 14:45:20
330
原创 Java内存分析
Java内存: 堆 1.存放new的对象和数组2.可以被所有的线程共享,不会存放别的对象引用 栈 1.存放基本变量类型(会包括这个基本类型的具体数值)2.引用对象的变量(会存放这个引用在堆里面的具体地址) 方法区 1.可以被所有的线程分析2.包括了所有的class和static变量声明的数组名存放在栈里,创建数组的值存放在堆里。buy:java.lang.ArrayIndexOutOfBoundsException 数组下标越界三种初始化
2022-03-17 14:42:10
444
原创 数组的声明和创建
数组NUT_Prince数组的定义 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数组的元素,每个数组元素可以通过一个下标来访问它们 数组的特点 其长度是确定的。数组一旦被创建,它的大小就是不可以改变的 其元素必须是相同类型,不允许出现混合类型 数组中的元素可以是如何数据类型,包括基本类型和引用类型 数组变量属引用类型,数组也可以看成是对象,数组中的每一个元
2022-03-17 14:40:18
286
原创 数组的声明和创建
数组 数组是相同类型数据的有序集合 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成 其中,每一个数据称作一个数组元素,每歌数组元素可以通过一个下标来访问它们 数组的声明和创建变量的类型 变量的名字 = 变量的值 首先必须声明数组变量,才能在程序中使用数组。下面是声明数组变量的语法: int[] nums; //首选的方法或int nums[]; //效果相同,但不是首选方法 Java语言使用new操作符来创建数组,语法如下:
2021-12-11 00:18:31
380
原创 重点:递归
递归 A方法调用B方法,我们和容易理解! 递归就是:A方法调用A方法!就是自己调用自己 利用递归可以用简单的程序来解决一些复杂的问题。它通常把有大型复杂的问题层层转化为有与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。递归的能力在于用有限的语句来定义对象的无限集合。 递归结构包括两个部分: 1.递归头:什么时候不调用自身方法。如果没有头,将陷入死循环。 2.递归体:...
2021-12-10 22:27:35
55
原创 命令行传参和可变参数
命令行传参 有时候你希望运行一个程序时候再传递给它消息。这要靠传递命令行参数给mian()函数实现。 package com.kaung.method;public class Demo03 { public static void main(String[] args) { //args.length 数组长度 for (int i=0;i< args.length;i++){ System.out.println("ar...
2021-12-10 21:54:06
57
原创 java方法的重载
方法的重载 重载就是在一个类中,有相同的函数名称,但形参不同的函数 方法的重参的规则: 1.方法名称必须相同2.参数列表必须不同(个数不同、或类型不同、参数排列顺序不同等)3.方法的返回类型可以相同也可以不同4.仅仅返回类型不同不足以成为方法的重载 实现理论: 方法名称相同时,编译器会根据调用方法的参数个数、参数类型等去逐个匹配,以选择对应的方法,如果匹配失败,则编译器报错。 public static void main(Stri...
2021-11-10 18:21:47
60
原创 什么是方法以及方法的定义和调用
什么是方法以及方法的定义和调用 System.out.println(),它是 类+对象+方法 Java方法是语句的集合,它们在一起执行一个功能 1.方法是解决一类问题的步骤的有序组合 2.方法包含类或对象中 3.方法在程序中被创建,在其他地方被引用 设计方法的原则:方法的本意是功能块,就是实现某个功能的语句块的集合。我们设计方法的时候,最好保持方法的原子性,就是一个方法只完成1个功能,这样利于我们后期的扩展。 public class NEWScanner {.
2021-11-10 17:58:52
182
原创 打印三角形
打印三角形public static void main(String[] args) { //打印三角形 5行 for (int i=1;i<=5;i++){ for (int j=5;j>=i;j--){//打印左上角空白半三角 System.out.print(" "); } for (int j=1;j<=i;j++){ ...
2021-11-10 15:33:43
201
原创 加强for循环、break、comtinue、goto
加强for循环 java5 引入了一种主要用于数组或集合的增强型for循环 java 增强 for 循环语法格式如下: for(声明语句:表达式){ //代码句子} 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。 表达式:表达式是要访问的数组名,或者是返回值为数组的方法 public static void main(String[] args) { ...
2021-11-10 01:02:50
453
原创 加强for循环
加强for循环 java5 引入了一种主要用于数组或集合的增强型for循环 java 增强 for 循环语法格式如下: for(声明语句:表达式){ //代码句子} 声明语句:声明新的局部变量,该变量的类型必须和数组元素的类型匹配。其作用域限定在循环语句块,其值与此时数组元素的值相等。 表达式:表达式是要访问的数组名,或者是返回值为数组的方法 public static void main(String[] args) { ...
2021-11-09 00:45:16
47
原创 while、do...while、for循环
循环结构 while 循环 do...while 循环 for 循环 在Java5中引入了一种主要用于数组的增强型for循环while 循环 while循环是最基本的循环,它的结构为: while(布尔表达式){ //循环内容} 只要布尔表达式为true,循环就会一直循环下去 我们大多数情况是会让循环停止下来的,我们需要一个让表达式失效的方式来结束循环 少部分情况需要循环一直执行,比如服务器的请求响应监听等 循...
2021-11-09 00:23:32
117
原创 JAVA选择结构01
顺序结构 Java的基础结构就是顺序结构,除非特别指明,否则就按照顺序一句一句执行 顺序结构是最简单的算法结构 语句与语句之间,框与框之间是按从上到下的顺序进行的,它是由若干个依次执行的处理步骤组成的,它是任何一个算法都离不开的一种基本算法结构 选择结构 if单选结构 if双选结构 if多选结构 嵌套的if结构 switch多选择结构 if单选择结构 我们很多时候需要去判断一个东西是否可行,然后我们才去执行,这样一个过
2021-11-02 16:10:57
61
原创 用户交互Scanner
用户交互ScannerScanner对象 Java给我们提供了一个工具类,我们可以获取用户的输入。java.util.Scanner是Java5的新特征,我们可以通过Scanner类获取用户的输入 基本语法: ```javaScanner s=new Scanner(System.in);``` 通过Scanner类的next()与nextLine()方法获取输入的字符串,在读取前我们一般需要使用hasNext()与hasNextLine()判断是否还有输入的数...
2021-11-02 00:36:37
53
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人