当前位置: 首页 > news >正文

周学习总结

这周继续学习了Java的知识点,还写了考查递归、递推与贪心的算法题。

算法小结

递归与递推一般是观察观察题干,分析题目的规律,可能还会用到分治算法,推导出一个合理的表达式,再使用函数递归来进行求解。

贪心在求解时,一步步寻找当下的最优解,而非全部的最优解(目光短浅)。

Java知识小结

多态

多态是同种类型对象的不同表现形式

表现形式一般为:父类类型 对象名称 = 子类类型

多态的前提:

1.有继承关系

2.有父类对象引用指向子类对象

3.有方法重写

多态调用成员的特点

变量调用:编译看左边,运行也看左边

即先在父类中寻找看有没有这个变量,没有就报错,有的话就使用父类中的变量

方法调用:编译看左边,运行也看右边

即先在父类中寻找看有没有这个方法,没有就报错,有的话就使用子类中的方法

如果一个方法要接收很多种子类对象,就可以将其父类类型作为形参,用多态来进行接收。

但是多态也有弊端,不能使用子类的特有功能

我们可以通过自动类型转换和强制类型转换,将父类类型转换为真正的子类类型,从而调用子类的独有功能。

包就是文件夹,用来管理不同功能的Java类

一般采用公司域名反写+包的作用来对包命名,需要注意包的名字要全部英文小写,见名知意。

使用同一个包和java.long中的类时,不需要导包,其他情况都需要导包,如果同时使用两个包中的同名类,则需要使用全名类,对同名类加以区分。

final

final修饰的方法为最终方法,不可以重写,

final修饰的类为最终类,不可以被继承,

final修饰的变量为最终变量,不可以被修改。

基本数据类型:变量的值不能被修改,

引用数据类型:地址值不能修改,内部的属性值可以修改

权限修饰符

权限修饰符:是用来控制一个成员能够被访问的范围的。

可以修饰成员变量,方法,构造方法,内部类。

作用范围由小到大依次为:

private<空着不写<protected<public

private只能被同一个类中的访问

空着不写的能被同一个包中的其他类访问

protected能被不同包下的子类访问

publi可以被不同包下的无关类访问

抽象类和抽象方法

如果抽取共性时无法确定方法体,就可以把方法定义为抽象的,强制让子类按照某种格式重写。

抽象方法所在的类必须是抽象类,而抽象类中不一定有抽象方法。

抽象类没有方法体

继承抽象类时要么重写抽象类中的所有抽象方法,要么子类也是抽象类

接口

接口是一种规则,是对行为的抽象,不能实例化。

接口中的成员的特点

成员变量只能是常量

没有构造方法

成员方法可以是抽象方法、有方法体的方法和私有方法

接口和类是实现关系,用implements关键字表示,可以是单实现,也可以是多实现。

内部类

内部类是写在一个类里面的类,对于哪些本身是别的类中的一部分,但单独存在没有意义的类,就可以用内部类来表示,分为成员内部类,静态内部类,局部内部类,匿名内部类四种。

成员内部类;写在成员位置,属于外部类的成员

静态内部类:是一种特殊的成员内部类,用static关键字修饰

局部内部类:是定义在方法中的内部类,类似于方法里面的局部变量,无法在外界直接调用。

匿名内部类:是隐藏了名字的内部类,可以写在成员位置,也可以写在局部位置

如果实现类只要使用一次,就可以用匿名内部类来进行简化

图形化界面

JFrame:最外层的窗体

JMenuBar:最上层的菜单

JLabel:管理文字和图片的容器

菜单创建:先创建JMenuBar,再创建JMenu和JMenuItem,再把JMenuItem放进JMenu里,最后把JMenu放进JMenuBar里。

添加图片需要注意先添加的图片在上面,后添加的图片在下面

事件

让类实现对应接口,实现监听

分为鼠标监听,键盘监听和动作监听

当事件被触发后,就会执行本类中的对应代码

API

math

是一个可以帮助我们用于数学计算的工具类

私有化构造方法,所有方法都是静态的

System

也是一个工具类,提供了一些与系统相关的方法

可以对数组进行拷贝;计算程序的运行时间来判断效率;退出虚拟机

Object

是一个工具类,提供了一些方法去完成一些功能,如判断对象是否为空

BigInteger

可以处理很大,以至于超出long的范围的数。

可以获取随机大整数,获取指定大整数,获取指定进制大整数

BIgDecima

用于小数的精确运算

用来表示很大的小数

在Java中小数的运算容易失真,就可以用BIgDecima来对小数进行运算

正则表达式

用来校验字符串是否满足一定的规则,并用来校验数据格式的合法性

\:转义字符,改变后面那个字原本的含义

用两个\\表示一个\,我的理解是,在Java中\也有特殊含义,所以需要用两个\\来表示一个\,前者是对后面的\进行转义,后者才能对其后面的那个字进行转义(不知道对不对)。

相关文章:

  • 本地后台运行redis服务
  • SpringMVC 拦截器(Interceptor)
  • 渗透测试:登录页面的测试-弱口令思路和实战
  • 计算机网络知识汇总
  • 【水印】水印识别的算法方案思考
  • 机器学习的一百个概念(5)数据增强
  • 习题2.2
  • 06-02-自考数据结构(20331)- 查找技术-动态查找知识点
  • C#: 输入(Console.ReadLine())和输出(Console.WriteLine())
  • Java-拼图小游戏跟学笔记
  • 前端各种for 循环
  • 算法:二维单调队列-P2216 [HAOI2007] 理想的正方形题解
  • 作文笔记16 点面结合
  • Trae AI 使用 APIkey 配置 Anthropic Claude BaseURL , gpt-4o,deepseek等大模型代理指南
  • c#使用forms实现屏幕截图
  • 在MFC中使用Qt(六):深入了解QMfcApp
  • flutter框架中文文档,android智能手机编程答案
  • 第十一章 VGA显示图片(还不会)
  • pod之间访问不通怎么排查?
  • 音视频开发---常用工具
  • 正能量网站ip/新乡搜索引擎优化
  • 免费模板建设网站/关于软文营销的案例
  • 烟台网站建设优化/白帽seo
  • 赣州网站建设.com/无代码网站开发平台
  • 太原做网站公司5大建站服务/快速排名优化
  • 山东广饶建设银行网站/推广平台网站