【Java基础篇】基础知识易错集锦(二)

news2024/9/24 22:25:39

我们同样用几道例题来回顾相对应的基础知识; 


 

 解析:

    首先我呢区分一下实例变量和局部变量;

  • 局部变量:定义在方法内部的变量;
  • 实例变量:定义在类中但在任何方法之外,你也可以理解为全局变量;
  • 普通变量被static修饰之后就变成静态变量;

用static修饰的静态变量与普通变量的区别

        假若在定义一个类的过程中,定义了一个static修饰的变量,那么这个类在被加载的同时,被static修饰的变量就存在于内存当中了,这样一来就独立于该类的所有对象,被该类所有对象共享,将对象相关的变成了类相关,即此静态变量也可以称之为类变量。

被static修饰的方法、变量的特殊点就是可以在不创建任何对象的前提下就可以调用它(使用域名调用法直接调用)


 解析:

首先我们回顾以下概念:

  • 形式参数(形参):含参函数声明时出现,不占空间,只有在程序执行过程中调用了函数,形参才有可能得到具体的值(实参—>形参),并参与运算求得函数值;
  • 实际参数(实参):含参函数调用时出现,占内存空间,在调用函数时,实参将赋值给形参;
  • 字段修饰符:(字段也就是属性)Java中的修饰符分为类修饰符,字段修饰符,方法修饰符。根据功能的不同,主要分为以下几种:
  1. *权限访问修饰符:(可以用来修饰类、方法和字段)public、protected、default、private

  2. *final修饰符:       final的意思是不可变,可以修饰类、字段、方法。修饰类后类不能被扩展(extends),也就是不能被继承。修饰字段后字段的值不能被改变,因此如果有final修饰字段,应该对字段进行手动初始化。修饰方法后该方法不能被改变,也就是重写。

  3. *abstract修饰符:abstract是抽象的意思,用来修饰类和方法,修饰类后,该类为抽象类,不能被实例化,必需进行扩展。修饰方法后,该方法为抽象方法必须被子类重写(override)。

  4. *static修饰符:    static用来修饰内部类,方法,字段。修饰内部类说明该内部类属于外部类而不属于外部类的某个实例。修饰字段说明该字段属于类而不属于类实例。修饰方法说明该方法属于类而不属于类实例


解析:这道题不难,我是想通过这道题来回顾关于this关键字的知识;

什么情况下我们会使用到this关键字呢?

  1. 当局部变量和成员变量重名的时候,在方法中使用this表示成员变量以示区分
  2. this关键字把当前对象传递给其他方法
  3. 当需要返回当前对象的引用时,就常常在方法写return this
  4. 在构造器中调用类的其他构造器需要使用this,一个类有许多构造函数,有时候想在一个构造函数中调用其他构造函数,以避免代码重复,可以使用this关键字。

说道this就很容易联想到super关键字了,下面我们回顾一下:

一、理解super关键字

        super理解为:父类的
        super可以用来调用:属性、方法、构造器
二、super调用属性和方法

        我们可以在子类的方法或构造器中。通过使用"super.属性"或"super.方法"的方式,显式的调用父类中声明的属性或方法。但是,通常情况下,我们习惯省略"super."。
当子类和父类中定义了同名的属性时,我们要想在子类中调用父类中声明的属性,则必须显式的使用"super.属性"的方式,表明调用的是父类中声明的属性。
当子类重写了父类中的方法以后,我们想在子类的方法中调用父类中被重写的方法时,则必须显式的使用"super.方法"的方式,表明调用的是父类中被重写的方法。
三、super调用构造器

        我们可以在子类的构造器中显式的使用"super(形参列表)"的方式,调用父类中声明的指定的构造器。
        "super(形参列表)"的使用,必须声明在子类构造器的首行。
        我们在类的构造器中,针对于"this(形参列表)"或"super(形参列表)"只能二选一,不能同时出现。
        在构造器的首行,没有显式的声明"this(形参列表)“或"super(形参列表)”,则默认调用的是父类中空参的构造器:super()。
        在类的多个构造器中,至少有一个类的构造器中使用了"super(形参列表)",调用父类中的构造器。

其他有关super关键字的知识可参考:

关于java中子类调用父类构造函数super();一些问题_南斋孤鹤的博客-CSDN博客_java子类构造函数super超全知识: 关于java中子类调用父类构造函数super();https://blog.csdn.net/m0_64231944/article/details/125355864?spm=1001.2014.3001.5502

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/78809.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

16.C预处理器和C库

文章目录C预处理器和C库16.1翻译程序的第一步16.2明示常量:#define16.3在#define中使用参数16.3.1用宏参数创建字符串:#运算符16.3.2预处理器黏合剂:##运算符16.3.3变参宏:...和__VA_ARGS__16.4宏和函数的选择16.5文件包含&#x…

NCTF2022 calc题目复现

calc(环境变量注入getshell) 经典计算器题目,看着有点眼熟,没错,就是buu三月赛的一道题目。由于那时候web可能都算不上入门,所以也就没有复现。比赛时就网上看了看三月赛的wp,但是没有什么用&a…

IEEE 二进制浮点数的表示

今天,我来将 IEEE 二进制浮点数的表示方式进行一个简单的介绍。 浮点数 在 C 语言中,有两种存储浮点数的方式,分别是 float 和 double ,当然了还有long double。这几种浮点型所容纳的长度不同,当然它们存储的精度也就…

[附源码]JAVA毕业设计新型药物临床信息管理系统(系统+LW)

[附源码]JAVA毕业设计新型药物临床信息管理系统(系统LW) 项目运行 环境项配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 …

p5.第一章 Python基础入门 -- 运算符、优先级和表达式 (五)

1.2.3.2.11 False等价 False等价布尔值,相当于bool(value) 空容器 空集合set空字典dict空列表list空元组tuple空字符串None0# bool(value)是布尔函数# In: bool(1), bool(0) # Out: (True

离散数学·支配集、覆盖集、独立集和匹配

支配集 简而言之——V-支配集后剩下的点,都能在支配集中找到相邻的点 支配数的符号是γ0(有关点的集,下标为0) 例 右下角相同颜色的为同一个支配集 要注意极小性 整个V就是支配集(所以说支配集找极大没有意义&#xf…

测试员凡尔赛,工作三年晒出11月工资条,直言加班太累了

最近有工作3年的测试员晒出自己11 月份的工资条,并直言加班太累了。 从工资条上可以看到,这个收入确实不算低,才3年时间,月工资就已经到了二万五了,这个工资已经可以击败绝大多数行业了。 不过二万五只是税前工资&am…

第二证券|系统性稳地产政策加力 租购并举制度加快建立

在房地产职业深度调整期,下一年方针走向备受关注。虽然日前召开的中心政治局会议没提及房地产,可是从其对经济方针的表述能够预见,作为经济支柱产业的房地产职业,下一年将在稳经济中发挥更重要的效果,国家将持续出台系…

[附源码]Python计算机毕业设计SSM基于的装修公司运营管理管理系统(程序+LW)

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

一文彻底搞懂ssh的端口转发

文章目录背景什么是端口转发?本地端口转发本地端口转发的语法场景1场景二ssh -L参数解释ssh 远程端口的安全问题远程端口转发远程端口转发的语法场景一远程端口转发和本地端口转发要在哪台服务器上执行场景二ssh -R 参数解释端口转发的选项端口转发需要修改哪些ssh配…

fastdfs部署详解

fastdfs部署 官方github支持 官方解释:FastDFS 是一个开源的高性能分布式文件系统。它的主要功能包括:文件存储、文件同步和文件访问(文件上传和文件下载),它可以解决高容量和负载均衡问题。FastDFS应该能满足图片分享…

10 款开源工具

1. JIRA 2. Git 3. Jenkins 4. Selenium 5. Groovy 6、Spock 7. Maven 8. Gradle 9. Docker 10. Linux 本文主要介绍Java程序员应该在2019年学习的一些基本和高级工具。如果你是一位经验丰富的Java开发人员,你可能对这些工具很熟悉,但如果不是&…

Java 并发编程<13>-ThreadPoolExecutor的springboot应用

Java 并发编程<13>-ThreadPoolExecutor的springboot应用 Java并发编程<10>安全集合 ...... Java 并发编程<1>-线程实现的方式 线程池简介 a .为什么使用线程池 降低系统资源消耗&#xff0c;通过重用已存在的线程&#xff0c;降低线程创建和销毁造成的消…

基于Surf+GTM的图像配准和拼接算法matlab仿真

目录 1.算法描述 2.仿真效果预览 3.MATLAB核心程序 4.完整MATLAB 1.算法描述 SIFT采用的是DoG图像&#xff0c;而SURF采用的是Hessian矩阵&#xff08;SURF算法核心&#xff09;行列式近似值图像。在数学中&#xff0c;Hessian矩阵是一个自变量为向量的实值函数的二阶偏导数…

计算机网络(自顶向下)学习笔记——传输层

第三章—传输层 传输层位于应用层和网络层之间&#xff0c;是分层的网络体系结构中重要的部分&#xff0c;该层为运行在不同主机上的应用进程提供直接的通信服务起着至关重要的作用。在这里我们将讨论两个大的问题&#xff1a;将网络层在不同端系统之间的通信服务扩充到运行在…

机器学习-PCA主成份分析详细解说及代码实现

本站原创文章&#xff0c;转载请说明来自《老饼讲解-机器学习》ml.bbbdata.com 目录 一. PCA主成分分析思想介绍 1.1 主成份分析思想 1.2 什么是主成份 二. PCA主成分分析的数学描述 2.1 主成份分析的数学表达 2.2 主成份系数矩阵A的约定 2.3 主成份分析需要输出什么 三…

Linux网络编程(一)——基础篇

目录 一、网络结构模式 &#xff08;一&#xff09;C/S结构 &#xff08;二&#xff09;B/S结构 二、MAC地址 三、IP地址 &#xff08;一&#xff09;IP地址编址方式 A类IP地址 B类IP地址 C类IP地址 D、E类IP地址 特殊的网址 IP分类的优缺点 &#xff08;二&#x…

解决org.apache.jasper.JasperException: 无法为JSP编译类

1.问题描述 org.apache.jasper.JasperException: 无法为JSP编译类: 在运行java web项目时&#xff0c;启动tomcat服务器报这样的操作&#xff0c;一般就是tomcat版本跟jdk版本不兼容的问题。我用的是jdk17&#xff0c;经过查阅相关资料得出一般使用jdk8就可以解决此类问题 2.…

微信小程序 | 小程序配置和架构

&#x1f5a5;️ 微信小程序 专栏&#xff1a;小程序配置和架构 &#x1f9d1;‍&#x1f4bc; 个人简介&#xff1a;一个不甘平庸的平凡人&#x1f36c; ✨ 个人主页&#xff1a;CoderHing的个人主页 &#x1f340; 格言: ☀️ 路漫漫其修远兮,吾将上下而求索☀️ &#x1f44…

JavaScript:cookie和storage

cookie 用于客户端存储会话信息。在浏览器中会对cookie做一些限制&#xff1a; ❑ 不超过300个cookie&#xff1b; ❑ 每个cookie不超过4096字节&#xff1b; ❑ 每个域不超过20个cookie&#xff1b; ❑ 每个域不超过81920字节。 每个域能设置的cookie总数也是受限的&#xf…