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

Java基础——面向对象进阶复习知识点3

一、static的注意事项

1.1 代码角度解释

在非静态方法中,虚拟机会自动赋值一个this,谁调用当前的方法,那么就是谁的地址值。

通过打印地址值来验证一下:

平时因为局部位置,方法里面没有跟成员位置重名,所以我们可以省略this.name的方式打印。

平常我们在方法里面调用其他的方法,比如图下的show2();其实也是隐含有this.

然而在静态中强行加入this. 那么编译器会报错。

静态中不能访问非静态的方法和变量。在静态方法中调用成员变量和成员方法都会报错。

而非静态的方法可以调用静态的根本原因就是它隐含有this关键字。非静态的方法和变量通常都会创建对象或者供对象使用方法。静态一般都是共享的,共享的方法就不需要this来特意指明是谁调用的它,或者它调用谁。

1.2  内存角度解释

静态和非静态的数据加载到内存的时机是不一样的。比如我们成员变量name,通常是创建对象的时候才会有值。

只要我不创建对象,那么非静态的方法和变量是不会加载到内存当中的。而静态的数据通常伴随着字节码文件.class()类文件率先加载到内存。从这个角度来说,也能说明静态是无法调用非静态的

调用method()方法之后,它去静态区找到了teacherName(),但是却找不到name!因为它不是静态的,根本就不在静态区。那么我们就能得出结论1:静态方法不能调用非静态成员变量。

我们假设静态方法中能调用非静态方法,方法通常加载到栈内存,一般都有调用者xxx.调用次方法,但是之前我们说过静态方法中不会有this,也就是说show()方法根本就不知道是谁调用了它。

所以得出结论2:静态方法不能调用非静态成员方法。

二、重新认识main()方法

如何让程序接受数据?(了解即可)

数据之间要用空格隔开!

声明:

以上均来源于B站@ITheima的教学内容!!!

本人跟着视频内容学习,整理知识引用​​​​​​​

http://www.dtcms.com/a/495563.html

相关文章:

  • wordpress资讯站模板网站建设 智能建站
  • NoSQL介绍
  • 【实时Linux实战系列】FPGA 与实时 Linux 的协同设计
  • 可以做翻译兼职的网站wordpress icp链接
  • 【系统分析师】高分论文:数据库集群技术及应用
  • 西安知名高端网站建设服务企业郑州做系统集成的公司网站
  • 基于Matlab实现双目图计算深度图
  • sysctl -w net.ipv4.ip_forward=1 是一个Linux系统命令,用于开启IP转发功能
  • 信息检索4
  • 简述建设电子商务网站步骤苏州住房与城乡建设网站
  • 437路径总和III(dfs+前缀和)
  • 国内直连 Cursor:Remote SSH 无配置设置教程
  • Claude Code 使用手册
  • 网站开发需求书模板接软件开发项目的平台
  • 【源码深度 第1篇】LinkedList:双向链表的设计与实现
  • Git安装与环境配置教程
  • 关于Java项目构建/配置工具方式(Gradle-Groovy、Gradle-Kotlin、Maven)的区别于选择
  • Making decisions: Policies in reinforcement learning|做出决策:强化学习中的策略
  • 河北省建设注册中心网站首页品牌网站建设黑白H狼
  • 阿里最新开源!轻量级视觉模型Qwen3-VL-4B8B-Instruct本地部署教程:小参数媲美顶尖模型
  • 第20讲:自定义类型:结构体
  • 《FastAPI零基础入门与进阶实战》第21篇:告别 /path/ vs /path:静默斜杠修正中间件
  • Sherpa 语音识别工具链安装指南(Linux CPU 版)
  • 布林带中轨斜率的计算方法并判断趋势强度
  • 【小白笔记】torch.Tensor 类的实例
  • 俄语网站开发登录信产部网站
  • 学院门户网站建设自己在线制作logo免费生成器
  • 操作系统——进程管理
  • 在docker运行ros及其可视化
  • Python使用 pandas操作Excel文件并新增列数据