Java(二) this 和super 详解

ENVI SARscape安装全攻略:从下载到汉化一步到位(附最新试用申请链接) 本文提供ENVI SARscape从下载安装到汉化的完整指南,特别针对InSAR(合成孔径雷达干涉测量)分析环境搭建。详细介绍了系统要求、分步安装流程、汉化优化方法及硬件加速配置,并分享数据处理验证和常见问题解决方案,帮助用户高效搭建遥感数据分析平台。 阅读详情

老忘记的一些理论知识,发现这篇文章比较详细,先保存下来,以后还会完善。


--------------------------------------------------------------------------------------------------------

this和super的区别

No.

区别

this

super

1

操作属性

this.属性:表示调用本类中的属性,如果本类中的属性不存在,则从父类查找

super.属性:表示调用父类中的属性

2

操作方法

this.方法():表示调用本类中的方法,如果本类中的方法不存在,则从父类查找

super.方法():表示调用父类中的方法

3

调用构造

this()调用本类中的其他构造方法

super():由子类调用父类中的构造方法

4

查找范围

先从子类中查找,如果没有从父类中查找

不查子类直接查找父类

5

特殊

当前对象

-

既然this和super都可以调用构造,那么这两者绝对不能同时出现,因为只要是调用构造,就必须将语句放在构造方法的首行,而且以后开发的时候建议明确的写出“this.方法”或者“super.方法()”,这样便于代码的维护。

--------------------------------------------------------------------------------------------------------



[plain]  view plain copy print ?
  1. 最好把super和this放在一起,对比着理解。  
  2. super指向父类,用于引用父类的构造方法。  
  3. this指向本类,用于引用本类中的其他方法。  
  4. 这么说太抽象,下边是一个很经典的例子,完全体现了super和this的用法和区别,请花几分钟把它读完:  
  5. class Person {  
  6.     public static void prt(String s) {  
  7.        System.out.println(s);  
  8.     }  
  9.   
  10.     Person() {  
  11.        prt("A Person.");  
  12.     }//构造方法(1)  
  13.    
  14.     Person(String name) {  
  15.        prt("A person name is:" + name);  
  16.     }//构造方法(2)  
  17. }  
  18.    
  19. public class Chinese extends Person {  
  20.     Chinese() {  
  21.        super(); // 调用父类构造方法(1)  
  22.        prt("A chinese.");// (4)  
  23.     }  
  24.    
  25.     Chinese(String name) {  
  26.        super(name);// 调用父类具有相同形参的构造方法(2)  
  27.        prt("his name is:" + name);  
  28.     }  
  29.    
  30.     Chinese(String name, int age) {  
  31.        this(name);// 调用具有相同形参的构造方法(3)  
  32.        prt("his age is:" + age);  
  33.     }  
  34.    
  35.     public static void main(String[] args) {  
  36.        Chinese cn = new Chinese();  
  37.        cn = new Chinese("kevin");  
  38.        cn = new Chinese("kevin", 22);  
  39.     }  
  40. }  
  41. 执行结果为:  
  42. A Person.  
  43. A chinese.  
  44. A person name is:kevin  
  45. his name is:kevin  
  46. A person name is:kevin  
  47. his name is:kevin  
  48. his age is:22  
  49.   
  50. 下边总结一下super和this的异同:  
  51. 1)super(参数):调用父类的构造方法 。  
  52. 2)this(参数):调用本类的其他构造方法。  
  53. 3)都必须放在构造方法的第一行。  
  54. 3)super:引用父类中的成员,当子类和父类中的方法重名时,这样用。  
  55. 4)this:代表当前对象名(在程序中易产生二义性之处,应使用this来指明当前对象;如果函数的形参与类中的成员数据同名,这时需用this来指明成员变量名)。  
  56. 5)this()和super()都指的是对象,所以,均不能在static环境中使用。包括:static变量,static方法,static语句块。  
  57. 6)从本质上讲,this是一个指向本对象的指针, 然而super是一个Java关键字。  

--------------------------------------------------------------------------------------------------------

(十分感谢)转自: http://blog.youkuaiyun.com/tanyit/article/details/6946443

相关文章: http://www.jb51.net/article/44589.htm

http://zhangjunhd.blog.51cto.com/113473/20531/

手把手教你用Nangate 45nm开源工艺库搞定数字电路仿真(附FreePDK资源) 本文详细介绍了如何使用Nangate 45nm开源工艺库进行数字电路仿真,包括环境搭建、关键文件解析、仿真环境配置及低功耗设计等实战内容。特别推荐FreePDK资源,帮助读者快速掌握从理论到实践的全流程操作,适用于学术研究和小规模数字电路设计。 阅读详情

相关推荐

Rider高效调试UE引擎:无需编译源码的符号配置指南

本文提供了一份详尽的Rider高效调试UE引擎指南,核心在于无需编译源码即可配置调试符号。通过Epic启动器下载官方PDB文件,并在Rider中正确配置外部符号服务器路径,开发者能在10分钟内实现对引擎内部代码(如AActor::Tick)的源码级断点调试、变量查看和调用堆栈分析,极大提升问题排查效率。

weixin_29011239的博客 341

Java中super关键字及super()的使用

Java中super关键字及super()的使用:1、super的使用:(1)super是一个关键字。(2)super和this很类似,我们对比着学习。2、先复习一下this关键字的使用。(1)this能出现在实例方法和构造方法中; (2)this的语法是“this.”和“this()”; (3)this不能出现在静态方法中; (4)this大部分情况下是可以省略的; (5)this.什么时候不能省略呢? 在区分局部变量和实例变量时不能省略。例如: (6)this()只能出现在构造方法的第一行,通过当前的构

m0_67401055的博客 6719

【首份】2023年30米分辨率土地利用遥感监测数据

为了恢复和重建我国土地利用变化的现代过程,更好地预测、预报土地利用变化趋势,地球资源数据云以美国陆地卫星Landsat 遥感影像数据作为主信息源,结合Sentinel系列数据,通过人工目视解译和机器学习方法,建立了国家尺度1:10 万比例尺多时期土地利用/土地覆盖遥感监测数据库(CNLUCC)因早期Landsat数据时空覆盖缺失,1972-1977年合成第一期数据,1978-1985年合成第二期数据,1986年起每年度生成一期数据。投影:Albers正轴等面积双标准纬线圆锥投影南标准纬线:25°N。

地球资源数据云的官方博客 3683

关于Java中super的应用

    super( )的用法            大白话解释一下super( ) : super( )其实就相当于一个指向基类的指针,(Java中没有指针,但是可以这样理解)。至于用法有一下三种形式:                    1. super.XXX( 这里的XXX指的是父类的成员变量名即父类的属性,或者对象名)                    2. super.XXX( ...

My_name_is_ZwZ的博客 1万+

Realsense D435i运行ORB-SLAM3

【代码】Realsense D435i运行ORB-SLAM3。

MAX_Hope的博客 2563

运行后选择GDB/LLDB出现这样的窗口:launch: program ‘输入程序名称,例如 D:\Desktop\新建文件夹\a.exe‘ does not exist...如何解决?

🏆本文收录于 《全栈 Bug 调优(实战版)》 专栏。专栏聚焦真实项目中的各类疑难 Bug,从成因剖析 → 排查路径 → 解决方案 → 预防优化全链路拆解,形成一套可复用、可沉淀的实战知识体系。无论你是初入职场的开发者,还是负责复杂项目的资深工程师,都可以在这里构建一套属于自己的「问题诊断与性能调优」方法论,助你稳步进阶、放大技术价值 。

**My Coding Family** 1130

Java中super关键字的用法

在Java中,当子类的方法与父类的方法具有相同的名称和参数时,子类的方法会覆盖(override)父类的方法。这样,子类可以扩展或修改父类的方法行为,但在需要时仍然保留对原始方法的访问。关键字的主要作用是用于访问和调用父类的成员(字段和方法),并调用父类的构造器。关键字可以用来调用父类中的方法,这在子类重写了父类的方法时特别有用。这确保了父类的构造器在子类的构造器执行之前正确初始化了父类的部分。尤其是在复杂的继承链中,频繁使用。在Java中,子类的构造器在执行前必须调用父类的构造器。

Flying_Fish_roe的博客 3065

创建 Qt Quick 项目

来看看如何使用 Qt Creator 创建 Qt Quick 项目!

青春不老,奋斗不止! 1万+

java super()方法的作用

5.3. 编译器会自动插入super()调用:如果子类的构造方法没有显式地调用super()方法,编译器会在子类构造方法的第一行自动插入super()语句,以调用父类的无参构造方法。5.1. super()方法必须在子类的构造方法的第一行调用:在子类的构造方法中,如果需要调用父类的构造方法,必须使用super()方法,并且该语句必须放在子类构造方法的第一行。子类构造方法重载的作用是可以根据不同的情况选择不同的构造方法来初始化子类自己的成员变量,并调用父类的构造方法来初始化父类的成员变量和属性。

hitpter的专栏 5264

19、CATIA V5:参数化建模与零件目录创建全解析

本文详细解析了在CATIA V5中通过设计表实现参数化建模及零件目录创建的完整流程。以支撑块和钩形夹为例,介绍了参数识别、设计表创建与关联、配置管理以及零件目录的构建方法。同时,提供了实际操作建议和注意事项,帮助设计师高效创建和管理零件族,提升设计效率和质量。

raspberrypi5的博客 449

第7章: MMU notifier在AMD GPU驱动中的应用

AMD GPU驱动利用MMU Interval Notifier机制实现共享虚拟内存(SVM)和异构内存管理(HMM)。通过分析AMDGPU内存架构(VRAM、GTT、Userptr)和Buffer Object设计,重点探讨了Userptr零拷贝机制如何依赖MMU notifier保持CPU/GPU内存一致性。HMM框架进一步实现统一地址空间和透明页面迁移,AMDGPU通过amdgpu_hmm.c实现两种invalidate回调(GFX和HSA模式),处理不同场景下的内存失效同步问题。

图形/计算GPU的驱动与虚拟化技术分享园地 2473

super()_Java中,super()在Java中

super()调用没有参数的父构造函数。它也可以用于参数。 即super(argument1) ,它会调用接受参数1types的argument1 (如果存在)的构造函数。也可以用来从父级调用方法。 ie super.aMethod()更多信息和教程在这里1. super()用于调用直接父对象。2. super()可以用于实例成员,即实例variables和实例方法。3.可以在构造函数中使用su...

weixin_32516271的博客 1637

遗传算法(Genetic Algorithm)详解与实现

遗传算法(Genetic Algorithm, GA)是受自然进化原理启发的一系列搜索算法。通过模仿自然选择和繁殖的过程,遗传算法可以为涉及搜索、优化和学习的各种问题提供高质量的解决方案。同时,它们类似于自然进化,因此遗传算法可以克服传统搜索和优化算法遇到的一些障碍,尤其是对于具有大量参数和复杂数学表示形式的问题。

盼小辉丶的博客 24万+

Java关键字(二):this 和 super

Java关键字(二):this 和 super前言一、“ this ”关键字的使用1. 概述2. 作用3. 使用3.1 修饰属性和方法3.2 调用构造器3.3 返回当前对象二、“ super ”关键字的使用1. 概述2.使用3.使用3.1 调用属性和方法3.2 调用构造器三、this和super的区别四、子类对象实例化的全过程 前言 本博主将用优快云记录软件开发求学之路上亲身所得与所学的心得与知识,有兴趣的小伙伴可以关注博主! 也许一个人独行,可以走的很快,但是一群人结伴而行,才能走的更远!让我们在成

weixin_52533007的博客 6957

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

Java 中 this 和 super 的用法详解

这两个关键字的用法,作为一名Java程序员,我觉得基础是最重要的,因为它决定了我们的上限,所以我的文章大部分还是以分享Java基础知识为主,学好基础,后面的知识我想学起来就变得简单。通过打印结果看到我们在创建子类对象的时候,首先调用了父类的构造方法,接着调用子类的构造方法,也就是说在创建子类对象的时候,首先创建了父类对象,与前面我们猜想的一致。,那说明我们使用的时候只能在子类中使用,既然是对象的引用,那么我们也可以用来调用成员属性以及成员方法,当然了,这里的 super 关键字还能够调用父类的构造方法。

初念初恋的博客 3831

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

详解:this和super的区别

作用对象this引用当前对象,super引用当前对象的直接父类。用途this主要用于解决成员变量与局部变量名冲突、调用另一个构造器、返回当前对象的引用;super主要用于访问父类的成员(字段和方法)、调用父类的构造器。使用场景this通常用于当前类内部,super通常用于子类内部访问父类。在继承关系的条件下,如果子类没有和父类一样的非私有属性和方法(访问修饰是默认、protected或public的),子类可以通过this或super调用父类的属性和方法。

阿鹏的博客 1521

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java中super和this关键字的使用

在使用super和this关键字时, 以下描述正确的是() A. 在子类构造方法中使用super()显示调用父类的构造方法, super()必须写在子类构造方法的第一行, 否自编译不通过 B. super() 和 this() 不一定要放在构造方法内的第一行 C. this() 和 super() 可以同时出现在一个构造函数中 D. this() 和 super() 可以在static 环境中使用...

weixin_43235210的博客 5987

Java中的this和super详解

this的本质就是“创建好的的对象的地址”, 由于在构造方法调用前,对象已经创建, 因此在构造方法中使用this代表“当前对象”。 this表示对正在执行构造方法的对象的引用。 this(参数):调用本类中另一种形式的构造函数(应该为构造函数中的第一条语句)。

sc179的博客 3094

Java中this和super的用法

一、this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对象,但是这个对象并不是完全由构造器负责创建,创建一个对虾对象分为如下四步: 分配对象空间,并将对象成员变量初始化为0或者null 执行属性值的显示初始化 执行构造方法 返回对象的地址给相关变量 this的本质就是“创建好的对象的地址”,由于在构造方法调用之前,对象已经创建。因此,在构造方法中也可以使用this代表“当前对象”。 书上对于this的描述: this表示一个对象的引用,它指向正在执行方

1669

JAVA中this和super用法与区别详解

<一>. this的用法 构造方法是创建java对象的重要途径,通过new关键字调用构造器时,构造器返回该类的对象,但是这个对手并不是完全由构造器负责创建. 创建一个对象分为如下四步: a. 分配对象空间,并将对象成员变量初始化为0或者null b. 执行属性值的显式初始化 c. 执行构造方法 d. 返回对象的地址给相关变量 this的本质就是“创建好的的对象的地址”, 由于在构造方法...

qq_44620773的博客 1660

java基础之this、super关键字详解

java基础之this、super详解一、this关键字二、super关键字 一、this关键字 this关键字相信大家都很熟悉,在实际使用中主要有以下三个用途: 1.调用类中的成员变量; 2.调用类中的其他方法; 3.构造方法中调用类的其他构造方法(注意只能调用一个且必须位于首行)。 当我们平时开发中经常使用this之后,你有没有想过this是从哪里来的?this的数据类型是什么?为什么在static方法和static块中无法使用this? 接下来,我将对这些问题一个一个进行剖析,本节主要通过class来

ransijing的博客 2091

Java中super与this的深入解析

this和superthis是对象的 “自我认知”,让实例能清晰访问自身成员、复用构造逻辑,并支撑链式调用等优雅设计;super是子类对父类的 “继承契约”,确保父类初始化优先,同时提供访问父类成员的安全通道,是继承与多态的基础。深入理解二者的关键,在于看透其背后的内存模型与执行机制 ——this指向对象整体,super指向对象中的父类部分,二者共同构成了 Java 对象的完整逻辑。

2401_83675559的博客 1536

this和super的区别

一、this this是自身的一个对象,代表对象本身,可以理解为:指向对象本身的一个指针。 this的用法在java中大体可以分为3种: 1、普通的直接引用 this相当于是指向当前对象本身。    2、形参与成员名字重名,用this来区分: public Person(String name, int age) { > this.name = name; > this.age = age; } 3.引用本类的构造函数 class Person{ private

qq_41288473的博客 3878

Java中this与super的区别

关键字可以用于在一个构造方法中调用同一个类中的其他构造方法,这种用法称为构造方法的“重载”调用。关键字可以用于在子类的构造方法中调用父类的构造方法,这是在继承结构中确保父类的初始化逻辑被执行的重要机制。可以用于在方法中返回当前对象的引用,特别是在方法链(method chaining)中非常有用。可以用来引用当前对象的属性,特别是在方法参数的名字与对象的属性名字相同时,关键字主要用于引用当前对象的实例,调用当前对象的方法或构造方法。关键字也可以用于在类的一个方法中调用同一对象的其他方法。

Flying_Fish_roe的博客 1338

this和super理解

this跟instanceof都是判断——引用指向的类型instanceof关键字判断——引用所指向的对象是否属于某个类,这个和引用本身的类型是没有关系的。使用instanceof运算符来判断一个所属的类,是不是某个类或者某个类的子类。

要旅游的每一天的博客 1070

java中this和super的区别

this关键字: 一.this是什么? this是一个引用类型, 在堆中的每一个java对象上都有this,this保存内存地址指向自身。 二.this及this()能用在哪些地方? this可以用在成员方法中. this()可以用在构造方法中.语法: this(实参); 通过一个构造方法去调用另一个构造方法。 目的:代码重用。 this(实参);必须出现在构造方法的第一行。 应用实例: publ...

qq_43623447的博客 8786
上一篇: Java(一)权限修饰符
下一篇: Java(三) Socket编程
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值