电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術(shù)文章
文章詳情頁

Java中超詳細(xì)this與super的概念和用法

瀏覽:7日期:2022-08-17 11:59:53

前言:理論代碼必須結(jié)合起來才能真正的掌握

一、this

概念:this代表著當(dāng)前對(duì)象的引用,也是當(dāng)前函數(shù)所屬對(duì)象的引用。直白的說,哪個(gè)對(duì)象調(diào)用了當(dāng)前函數(shù),this就代表哪個(gè)對(duì)象。

常見的用法(理論不理解就先參考下面案例)

最常見的情況是是對(duì)象的一個(gè)屬性或被構(gòu)造器的參數(shù)屏蔽時(shí),如果需要調(diào)用屏蔽的屬性,this就代表哪個(gè)對(duì)象 this只能在方法內(nèi)使用,表示正在調(diào)用方法的那個(gè)對(duì)象,但是,如果在方法內(nèi)調(diào)用同一個(gè)類的另一個(gè)方法,就不必使用this,直接調(diào)用即可,this關(guān)鍵字是能省則省 this和static的關(guān)系: static方法是類方法,依附于類而不依賴與任何對(duì)象,static屬性是指該屬性是類中所有對(duì)象所共享的,static方法是類方法,先于任何實(shí)例(對(duì)象)存在,static在類加載時(shí)就已經(jīng)存在了,但對(duì)象是在創(chuàng)建時(shí)才生成;方法中使用this關(guān)鍵字它的值是當(dāng)前對(duì)象的引用,只能用它調(diào)用屬于當(dāng)前對(duì)象的屬性和方法和。但是,this可以調(diào)用static類型的屬性,舉個(gè)例子:一個(gè)父親是不可能向他還未出生的孩子借錢的,但孩子出生后完全可以找他父親去借錢; 對(duì)于一個(gè)類中的this,不一定單指這個(gè)的對(duì)象,也可能是這個(gè)類的子類的對(duì)象(抽象類里面的this只能是實(shí)際調(diào)用中它的派生類的實(shí)例化對(duì)象); 總之:如果new 父類對(duì)象的話,父類方法的this指向的是父類,如果new 子類,那么父類方法的this指向的是子類 this關(guān)鍵字也可以用于在構(gòu)造函數(shù)中調(diào)用其他構(gòu)造函數(shù)。但是,只能定義在構(gòu)造函數(shù)的第一行,因?yàn)槌跏蓟瘎?dòng)作要先執(zhí)行

this使用案例

class Student extends Person{ public Student(String name, int age, String nation) { super(name); }}public class Person{ private String name; private int age; private static String nation = 'chinese'; public Person(String name) { this.name = name; } public Person(String name, int age) { //初始化方法必須放到第一行 this(name); this.age = age; } //局部變量name和age屏蔽了name和age屬性,用this進(jìn)行標(biāo)識(shí) public Person(String name, int age,String nation) { this.name = name; this.age = age; //this可以調(diào)用到靜態(tài)屬性 this.nation = nation; } public void test(){ System.out.println('測試'); } public static void test2(){ //靜態(tài)方法內(nèi)不能出現(xiàn)this或super System.out.println('測試'); } public void print(){ //調(diào)用類內(nèi)部的方法(toString已重寫)加不加this都行 this.toString(); } @Override public String toString() { return 'Person{' + 'name=’' + name + ’’’ + ', age=' + age + ’}’; } public static void main(String[] args) { //這個(gè)this代表的student對(duì)象 Student student = new Student('wzh',20,'chinese2'); System.out.println(student.toString()); //這個(gè)this代表的是person對(duì)象 Person person = new Person('wzh2',20,'chinese3'); System.out.println(student.toString()); //擴(kuò)展,全局變量nation的值最后是chinese3 System.out.println(Person.nation); }}

結(jié)果:

Java中超詳細(xì)this與super的概念和用法

二、super

概念:super可以理解為“父類的”,super可以在子類中調(diào)用父類的屬性,方法,構(gòu)造器,super關(guān)鍵字和this一樣能省就省;

注意點(diǎn):1、this和super很像,this指向的是當(dāng)前對(duì)象的調(diào)用,super指向的是當(dāng)前調(diào)用對(duì)象的父類2、類加載完畢,創(chuàng)建對(duì)象,父類的構(gòu)造方法會(huì)被調(diào)用

父類如果重寫了無參構(gòu)造器或者父類中沒有有參構(gòu)造器,那么子類的構(gòu)造方法第一行就是super(),可以省略

class Student extends Person{ //這是默認(rèn)的構(gòu)造器內(nèi)容,寫出來是為了幫大家理解 public Student(){ super(); }}public class Person{ private String name; private int age;}

如果父類中定義了有參構(gòu)造器但沒有顯示寫出無參構(gòu)造器,那么必須通過super調(diào)用父類的有參構(gòu)造函數(shù),如果父類中定義了多個(gè)有參構(gòu)造區(qū),那么用super調(diào)用其中一個(gè)有參構(gòu)造器即可

class Student extends Person{ public Student(String name, int age) { //任選一個(gè)父類有參構(gòu)造 //super(name, age); super(name); }}public class Person{ private String name; private int age; public Person(String name, int age) { this.name = name; this.age = age; } public Person(String name) { this.name = name; }}

3、子類相應(yīng)構(gòu)造創(chuàng)建了一個(gè)子類對(duì)象,該子類對(duì)象還包含了一個(gè)父類對(duì)象。該父類對(duì)象在子類對(duì)象內(nèi)部(正如子類的構(gòu)造器無論如何都要通過super調(diào)用父類構(gòu)造器一樣,子類的對(duì)象被成功構(gòu)造,那么它的內(nèi)部就會(huì)包含父類的對(duì)象),證明如下

子類重寫父類的方法后可以通過super調(diào)用到父類的方法

class Student extends Person { private String name = 'wzh2'; @Override public String getName() { return '子類' + name; } public String getParentName(){ //調(diào)用父類的方法 return super.getName(); } public static void main(String[] args) { Student student = new Student(); System.out.println(student.getName()); System.out.println(student.getParentName()); }}public class Person{ //protected意味著子類和同一包中可以訪問 protected String name = 'wzh'; protected int age = 20; public String getName() { return '父類' +name; }}

輸出結(jié)果

Java中超詳細(xì)this與super的概念和用法

子類獲取到父類的變量

class Student extends Person{ public void parentDisplay(){ System.out.println(super.age + super.name); } public static void main(String[] args) { new Student().parentDisplay(); //輸出結(jié)果:20wzh }}public class Person{ //protected意味著子類和同一包中可以訪問 protected String name = 'wzh'; protected int age = 20;}

調(diào)用父類的構(gòu)造器不再舉例

4、this super只能在有對(duì)象的前提下使用,不能在靜態(tài)上下文使用5、如果一個(gè)類沒有基礎(chǔ)任何父類,super還有用嗎?肯定有用,可以調(diào)用Object中的方法

public class Person{ private String name; private int age; public void display(){ //通過this或super調(diào)用到了Object的toString(); System.out.println(super.toString()); } public static void main(String[] args) { new Person().display(); //輸出為Person@452b3a41 }}

到此這篇關(guān)于Java中超詳細(xì)this與super的概念和用法的文章就介紹到這了,更多相關(guān)javathis與super的概念和用法內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 插针变压器-家用电器变压器-工业空调变压器-CD型电抗器-余姚市中驰电器有限公司 | 生态板-实木生态板-生态板厂家-源木原作生态板品牌-深圳市方舟木业有限公司 | 沈阳真空机_沈阳真空包装机_沈阳大米真空包装机-沈阳海鹞真空包装机械有限公司 | 宁夏活性炭_防护活性炭_催化剂载体炭-宁夏恒辉活性炭有限公司 | 高柔性拖链电缆-聚氨酯卷筒电缆-柔性屏蔽电缆厂家-玖泰电缆 | _网名词典_网名大全_qq网名_情侣网名_个性网名 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 结晶点测定仪-润滑脂滴点测定仪-大连煜烁 | 英思科GTD-3000EX(美国英思科气体检测仪MX4MX6)百科-北京嘉华众信科技有限公司 | 光谱仪_积分球_分布光度计_灯具检测生产厂家_杭州松朗光电【官网】 | 钢绞线万能材料试验机-全自动恒应力两用机-混凝土恒应力压力试验机-北京科达京威科技发展有限公司 | 石英砂矿石色选机_履带辣椒色选机_X光异物检测机-合肥幼狮光电科技 | 软文发布平台 - 云软媒网络软文直编发布营销推广平台 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 双相钢_双相不锈钢_双相钢圆钢棒_双相不锈钢报价「海新双相钢」 双能x射线骨密度检测仪_dxa骨密度仪_双能x线骨密度仪_品牌厂家【品源医疗】 | 网站seo优化_seo云优化_搜索引擎seo_启新网络服务中心 | 手术示教系统-数字化手术室系统-林之硕医疗云智能视频平台 | 专业的新乡振动筛厂家-振动筛品质保障-环保振动筛价格—新乡市德科筛分机械有限公司 | 苏州伊诺尔拆除公司_专业酒店厂房拆除_商场学校拆除_办公楼房屋拆除_家工装拆除拆旧 | 热闷罐-高温罐-钢渣热闷罐-山东鑫泰鑫智能热闷罐厂家 | 西安微信朋友圈广告投放_微信朋友圈推广_西安度娘网络科技有限公司 | 818手游网_提供当下热门APP手游_最新手机游戏下载 | 风电变桨伺服驱动器-风电偏航变桨系统-深圳众城卓越科技有限公司 | 沈阳庭院景观设计_私家花园_别墅庭院设计_阳台楼顶花园设计施工公司-【沈阳现代时园艺景观工程有限公司】 | 河南卓美创业科技有限公司-河南卓美防雷公司-防雷接地-防雷工程-重庆避雷针-避雷器-防雷检测-避雷带-避雷针-避雷塔、机房防雷、古建筑防雷等-山西防雷公司 | 锂电池生产厂家-电动自行车航模无人机锂电池定制-世豹新能源 | 联系我们老街华纳娱乐公司官网19989979996(客服) | ALC墙板_ALC轻质隔墙板_隔音防火墙板_轻质隔墙材料-湖北博悦佳 | 可程式恒温恒湿试验箱|恒温恒湿箱|恒温恒湿试验箱|恒温恒湿老化试验箱|高低温试验箱价格报价-广东德瑞检测设备有限公司 | 手持式线材张力计-套帽式风量罩-深圳市欧亚精密仪器有限公司 | UV-1800紫外光度计-紫外可见光度计厂家-翱艺仪器(上海)有限公司 | 亚克隆,RNAi干扰检测,miRNA定量检测-上海基屹生物科技有限公司 | 工业淬火油烟净化器,北京油烟净化器厂家,热处理油烟净化器-北京众鑫百科 | 滤芯,过滤器,滤油机,贺德克滤芯,精密滤芯_新乡市宇清流体净化技术有限公司 | 掺铥光纤放大器-C/L波段光纤放大器-小信号光纤放大器-合肥脉锐光电技术有限公司 | 2025黄道吉日查询、吉时查询、老黄历查询平台- 黄道吉日查询网 | 混合反应量热仪-高温高压量热仪-微机差热分析仪DTA|凯璞百科 | EPK超声波测厚仪,德国EPK测厚仪维修-上海树信仪器仪表有限公司 | 冷藏车厂家|冷藏车价格|小型冷藏车|散装饲料车厂家|程力专用汽车股份有限公司销售十二分公司 | 珠宝展柜-玻璃精品展柜-首饰珠宝展示柜定制-鸿钛展柜厂家 | 搪瓷搅拌器,搪玻璃搅拌器,搪玻璃冷凝器_厂家-淄博越宏化工设备 |