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

Java学习进程5

Java学习进程5

递归

递归:
1.方法调用自己本身
2.设置递归的退出条件(使用递归时一定要有出口)
example
实现斐波拉契数列(到100的和)。

packagecom.yw.oop0606;/** * @author YAN * @date 2026/6/6 19:07 * @description */publicclassdigui{//递归方法:实现斐波那契数列publicstaticintf(intn){//递归出口if(n==1||n==2){return1;}//f(n)=f(n-1)+f(n-2)returnf(n-1)+f(n-2);}publicstaticvoidmain(String[]args){//输出前100项for(inti=1;i<=100;i++){System.out.print(f(i)+" ");}}}
类的继承
继承基础知识

继承的格式

publicclass子类(派生类)extends父类(基类,超类)implements接口,接口,,,{}

注:先写继承再写接口(关于接口的内容见Java学习进程2)
继承后的作用:(同包下)子类会继承父类中所有的非private的属性和方法,但私有属性和方法不能直接调用。
继承的特点:
1.Java中每个类都会默认继承 Object。
2.方法:
(1)定义set方法,设置属性;
(2)定义get方法,获取属性。
3.Java 是单继承语言,一个子类只能直接继承一个父类。
... extends A,B是错误的
4.可继承权限如下:(权限从高到低)
修饰符 本类 同包类 子类 任意类
public ✅ ✅ ✅ ✅
protected ✅ ✅ ✅ ❌
默认(不写) ✅ ✅ ❌ ❌
private ✅ ❌ ❌ ❌
5. 构造方法不能被继承
6.子类创建对象时,优先执行父类构造方法(super访问父类方法)

方法重写(Override)

作用:当前父类中的方法不能满足当前子类的需求
条件:

  • 有继承关系的两个类之间
  • 访问修饰符大于等于父类,返回值类型,方法名,参数类型(个数,顺序)完全一样
    example
// 父类 StudentpublicclassStudent{privateStringname;protectedvoidsetName(Stringn){name=n;}publicStringgetName(){returnname;}publicvoidprintName(){System.out.println("名字:"+name);}publicvoidstudy(){System.out.println(name+"正在学习!");}}// 子类 UNStudent 继承 StudentpublicclassUNStudentextendsStudent{@OverridepublicvoidprintName(){// 保留父类原有功能super.printName();// 子类新增功能System.out.println("这是子类重写后的名字输出!");}@Overridepublicvoidstudy(){// 保留父类中原有的功能,调用父类方法//super 表示当前类的父类对象super.study();// 子类新增功能System.out.println("大学生还在自学编程!");}}
super关键字
  1. 属性:访问父类成员变量
  2. super.方法():调用父类成员方法,即保留父类原有功能
  3. super():调用父类构造方法,必须放在子类构造第一行
  4. 在子类的调用方法中一定要调用一次父类的构造方法(子类默认调用父类的构造方法)
final和static
  1. static静态变量(类变量)不需要通过对象访问
  2. final类不能被继承(绝育类)方法不能被重写
关于转型

1.自动转型(向上转型)
父类 对象变量名 = new 子类()
继承后子类可以是父类类型
自动转型问题:转型后只能调用子类中的方法

2.强制转型(向下转型)
要求:该对象先进行了自动转型
父类不能强制转为子类

http://www.cnnetsun.cn/news/3628853.html

相关文章:

  • 一文读懂 SHA-1:原理、图解、代码实现
  • 【湿法-萃取工艺20】---MSP废水处-四大核心技术深度细化
  • 系统配置仪表板_diverga
  • 如何快速掌握EZCard:面向桌游设计师的终极卡牌批量生成指南
  • AI 导出鸭实操教程:腾讯元宝文档怎么导出,多渠道导出方法全覆盖
  • 如何安全突破60帧限制:原神帧率解锁工具深度解析
  • MaaDebugger:可视化调试 MaaFramework Pipeline、识别与任务执行
  • 天线原理-1.引论
  • 留学生网申遇到了填写期待薪资?用区间锚定法避免提前亮出底牌「蒸汽求职分享」
  • 认知伙伴:普通人+AI为什么不等于高级人才
  • 3步掌握ImageGlass:颠覆传统的开源图片浏览器
  • WaveTools终极指南:如何解锁《鸣潮》120FPS并优化游戏性能
  • 告别暗黑3重复操作:D3KeyHelper自动化工具让游戏体验升级
  • 如何快速掌握Reloaded-II:跨平台游戏模组管理框架的终极指南
  • CMake 实战:创建并使用静态库(MinGW + clangd)
  • 如何在Windows上创建完美虚拟显示器:Parsec VDD终极指南
  • 揭秘信创合规深水区:如何用流式脱敏+国密SM2防篡改,把国产库审计验收从“踩雷”变“满分”的4个血泪教训!
  • Formality:使用机器学习驱动的分布式处理(DPX)
  • ncmdumpGUI:Windows下一键解密网易云音乐NCM文件的完整指南
  • 终极简单指南:3分钟让Figma界面全中文化,设计师效率翻倍
  • 宝塔+雷池WAF部署
  • 页面路由导航:Router与Navigation组件的跳转传参(7)
  • 【claude code实践】Hooks 调试方法:让自动化流程稳定可靠
  • 高并发内存池 - central cache 结构设计
  • Cpp2IL完整指南:如何分析和理解Unity IL2CPP编译后的应用
  • 英雄联盟智能助手Seraphine:免费开源的终极战绩查询与BP辅助工具
  • Betaflight Configurator终极指南:5步打造完美无人机飞控系统
  • HarmonyOS开发实战:小分享-@ohos.net.http 网络请求封装进阶
  • F429-HAL-I2C读取AT24C02(2026/7/24)
  • ADC12DJ3200 JESD204B接口实战:报警寄存器与高速PCB布局设计