Java学习day10
前面总结:JVM内存空间分为三块,分别为方法区、堆区、栈区
方法区包含:class文件、静态变量
堆区包含:对象、对象中的实例变量
栈区包含:方法、方法中的局部变量
方法区最先有数据,垃圾回收器针对堆区(没有引用指向它时),栈区最活跃
封装:最主要的目的是把复杂的问题简单化,把复杂的结构封装,只留有简单的操作入口
其次,安全,可移植性好
实现:属性私有化,并提供set、get方法,set中可以进行安全控制。
.......
===================================================================================
day10-课堂笔记
1、this关键字
【Customer】
【理解:由于对象是不唯一的,是动态的,因而实例方法不需要static(静态)关键字】
【上面的this可以省略(多数情况都可以)】
【CustomerTest】
【this不能使用在带有static的方法当中,结合上面4条共6条规则】
【怎么在Static中访问实例变量?创建对象!】
【在类体中直接定义的是实例变量,在主方法和方法体之间的是成员变量,在方法体中定义的是局部变量,待定】
【ThisTest】
【this最终结论】
【this不能省略的情况】
【生成有参无参构造方法】
【在弹出窗口选择参数】
【this用在无参构造方法内调用有参构造方法】
【this可以用在哪里】
【作业】
【把上面最后的部分放到最前面,如下】
【完美做对】
============================================================================================================
2、static关键字
【带有static的方法或变量,既可以采用类名 . 的方式去访问也可以采用引用 . 的的方法去访问】
【对象的相同特征可采用static来节省内存空间】
【使用static之前】
【测试】
【使用static之后】
【测试】
【static小结】
【再次强调】
============================================================================================================
【使用static定义静态代码块】
================================================================================================
【小知识点】
【实例语句块:只在对象初始化时机执行】
只有在创建对象时才会执行实例语句块,main方法执行时实例语句不执行
==============================================================================================
【主程序入口的意义main方法语句各部分的意义】
【方法什么时候定义为静态的?】
【深度理解:静态方法面向类,是统一的集体的动作,而实例方法和变量是面向具体的对象,
因此静态方法想要访问实例变量或者调用实例方法,在必须先创建具体的对象,才能进行访问和调用】
【为方便使用,工具类方法一般都是静态的】
==================================================================================================
3、继承
【面试题】【继承的作用:有了继承才会有方法的覆盖、多态....代码复用】
【ExtendsTest】
因为要访问实例变量所以要创建对象
【Account】
继承之后,普通账户中有而信用账户中没有的方法也可以在创建的信用账户中使用
即使是账户中私有化的实例变量,也可以被间接访问,从而使得信用账户拥有普通账户的相关属性和方法
【CreditAccount】
【查找类快捷键(Open Type):Ctrl + Shift + T,查找的是class文件】
【查找资源(Open Resource):Ctrl + Shift + R,查找的是java文件】
4、方法的覆盖
【方法重写就写在子类中,按照第三条,实现方法的子类“个性化”】【重写可以复制粘贴也可以自动生成(在下面)】
【先能继承才可以覆盖】
====================================
【在创建子类时,可以指定父类】
【代码生成】
然后
【代码生成】
--------总结自B站动力节点教育集团
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 使用C#创建一个MCP客户端
· ollama系列1:轻松3步本地部署deepseek,普通电脑可用
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 按钮权限的设计及实现