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

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

淺談Java內(nèi)部類——靜態(tài)內(nèi)部類

瀏覽:2日期:2022-08-26 13:39:44

今天來說說Java中的最后一種內(nèi)部類——靜態(tài)內(nèi)部類

所謂的靜態(tài)內(nèi)部類,自然就是用static修飾的內(nèi)部類,那用static修飾過后的內(nèi)部類,跟一般的內(nèi)部類相比有什么特別的地方呢?

首先,它是靜態(tài)的,這就意味著它的創(chuàng)建不依賴于外部類,創(chuàng)建內(nèi)部類的實(shí)例不需要像普通內(nèi)部類一樣先創(chuàng)建外部類實(shí)例才能創(chuàng)建。

其次,有優(yōu)勢必然有劣勢,它不能像普通內(nèi)部類一樣無限制的訪問外部類的方法和成員變量,只能訪問靜態(tài)成員變量和靜態(tài)方法。

話不多說,先來看個(gè)栗子:

public class StaticInnerClass { //外部類的非靜態(tài)成員 private int numA = 1; //外部類的靜態(tài)成員 private static int numB = 2; //靜態(tài)內(nèi)部類 static class Inner { //內(nèi)部類的非靜態(tài)成員 private int numC = 3; //內(nèi)部類的靜態(tài)成員 private static int numD = 4; public void printInner(){ System.out.println('printInner'); System.out.println(numB);//訪問外部類的靜態(tài)成員 System.out.println(numC);//訪問內(nèi)部類的非靜態(tài)成員 System.out.println(numD);//訪問內(nèi)部類的靜態(tài)成員 } } //外部類的普通成員方法 public void printOuter(){ System.out.println('printOuter'); } public static void main(String[] args) { StaticInnerClass outer = new StaticInnerClass(); outer.printOuter(); Inner inner = new StaticInnerClass.Inner(); inner.printInner(); System.out.println(StaticInnerClass.numB); System.out.println(Inner.numD); }}

輸出如下:

printOuterprintInner23424

看起來,內(nèi)部類跟外部類的使用上是差不多的,更像是一個(gè)暫存在外部類中的一個(gè)類,跟外部類并沒有什么太多本質(zhì)上的聯(lián)系,但是創(chuàng)建的時(shí)候需要使用Outer.Inner的方式來定義,就像給類加了一個(gè)命名空間一樣。

再舉個(gè)栗子來看看靜態(tài)內(nèi)部類和非靜態(tài)內(nèi)部類的區(qū)別:(知乎上看到的一段話,覺得比喻比較形象)

如果把類比喻成雞蛋,內(nèi)部類為蛋,,外部類是蛋殼。那么靜態(tài)類相當(dāng)于熟雞蛋,就算蛋殼破碎(外部類沒有實(shí)例化),蛋黃依然完好(內(nèi)部類可以實(shí)例化);而非靜態(tài)類相當(dāng)于生雞蛋,蛋殼破碎(無實(shí)例化),蛋黃也會(huì)跟著xx(不能實(shí)例化)。

至于原因?其實(shí)就是因?yàn)榉庆o態(tài)內(nèi)部類中保存有外部類的指針,所以可以無限制訪問外部類的所有屬性,而靜態(tài)內(nèi)部類則沒有,所以靜態(tài)內(nèi)部類無法訪問外部類的非靜態(tài)成員和方法,僅僅是借用一下它的殼而已。

再來看一個(gè)栗子:

public class Caculate { //定義一個(gè)pair類來將兩個(gè)數(shù)捆綁 static class Pair{ private int first; private int second; public Pair(int first, int second) { this.first = first; this.second = second; } public int getFirst() { return first; } public int getSecond() { return second; } } //獲取一個(gè)int數(shù)組中的最大和最小值 public static Pair getMaxMin(int[] values){ int max = Integer.MIN_VALUE; int min = Integer.MAX_VALUE; for (int i:values){ if (min > i) min = i; if (max < i) max = i; } return new Pair(min,max); } public static void main(String[] args){ int[] list = {1,3,5,2,77,23,25}; Caculate.Pair pair = Caculate.getMaxMin(list); System.out.println(pair.getFirst()); System.out.println(pair.getSecond()); System.out.println(pair.first); System.out.println(pair.second); }}

這里getMaxMin里需要一次返回兩個(gè)值,所以用了一個(gè)Pair類來將兩個(gè)數(shù)捆綁到一起,而因?yàn)檫@個(gè)類只在Caculate類中使用,而且兩者并沒有依賴關(guān)系,所以這里使用靜態(tài)內(nèi)部類是最合適的。

靜態(tài)內(nèi)部類還有很多適用的場景,這就需要大家在今后的使用中慢慢體會(huì)了。

至此,本篇講解完畢,歡迎大家繼續(xù)關(guān)注。

以上就是淺談Java內(nèi)部類——靜態(tài)內(nèi)部類的詳細(xì)內(nèi)容,更多關(guān)于Java 靜態(tài)內(nèi)部類的資料請關(guān)注好吧啦網(wǎng)其它相關(guān)文章!

標(biāo)簽: Java
相關(guān)文章:
主站蜘蛛池模板: 玻璃瓶厂家_酱菜瓶厂家_饮料瓶厂家_酒瓶厂家_玻璃杯厂家_徐州东明玻璃制品有限公司 | 炒货机-炒菜机-炒酱机-炒米机@霍氏机械 | 长沙发电机-湖南发电机-柴油发电机供应厂家-长沙明邦智能科技 | 3d打印服务,3d打印汽车,三维扫描,硅胶复模,手板,快速模具,深圳市精速三维打印科技有限公司 | 主题班会网 - 安全教育主题班会,各类主题班会PPT模板 | 骨灰存放架|骨灰盒寄存架|骨灰架厂家|智慧殡葬|公墓陵园管理系统|网上祭奠|告别厅智能化-厦门慈愿科技 | 北京租车公司_汽车/客车/班车/大巴车租赁_商务会议/展会用车/旅游大巴出租_北京桐顺创业租车公司 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司 | 上海刑事律师|刑事辩护律师|专业刑事犯罪辩护律师免费咨询-[尤辰荣]金牌上海刑事律师团队 | Type-c防水母座|贴片母座|耳机接口|Type-c插座-深圳市步步精科技有限公司 | 六维力传感器_六分量力传感器_模腔压力传感器-南京数智微传感科技有限公司 | 密集架-密集柜厂家-智能档案密集架-自动选层柜订做-河北风顺金属制品有限公司 | 山东齐鲁漆业有限公司【官网】-工业漆专业生产厂家 | 热回收盐水机组-反应釜冷水机组-高低温冷水机组-北京蓝海神骏科技有限公司 | 「钾冰晶石」氟铝酸钾_冰晶石_氟铝酸钠「价格用途」-亚铝氟化物厂家 | 玉米深加工机械,玉米加工设备,玉米加工机械等玉米深加工设备制造商-河南成立粮油机械有限公司 | 青岛代理记账_青岛李沧代理记账公司_青岛崂山代理记账一个月多少钱_青岛德辉财税事务所官网 | 环讯传媒,永康网络公司,永康网站建设,永康小程序开发制作,永康网站制作,武义网页设计,金华地区网站SEO优化推广 - 永康市环讯电子商务有限公司 | 香蕉筛|直线|等厚|弧形|振动筛|香蕉筛厂家-洛阳隆中重工 | 深圳诚暄fpc首页-柔性线路板,fpc柔性线路板打样生产厂家 | 断桥铝破碎机_铝合金破碎机_废铁金属破碎机-河南鑫世昌机械制造有限公司 | 编织人生 - 权威手工编织网站,编织爱好者学习毛衣编织的门户网站,织毛衣就上编织人生网-编织人生 | 杭州中央空调维修_冷却塔/新风机柜/热水器/锅炉除垢清洗_除垢剂_风机盘管_冷凝器清洗-杭州亿诺能源有限公司 | 一体化预制泵站-一体化提升泵站-一体化泵站厂家-山东康威环保 | 啤酒设备-小型啤酒设备-啤酒厂设备-济南中酿机械设备有限公司 | 温州食堂承包 - 温州市尚膳餐饮管理有限公司| 办公室家具_板式办公家具定制厂家-FMARTS福玛仕办公家具 | 低温柔性试验仪-土工布淤堵-沥青车辙试验仪-莱博特(天津)试验机有限公司 | 深圳宣传片制作_产品视频制作_深圳3D动画制作公司_深圳短视频拍摄-深圳市西典映画传媒有限公司 | 水平垂直燃烧试验仪-灼热丝试验仪-漏电起痕试验仪-针焰试验仪-塑料材料燃烧检测设备-IP防水试验机 | 医学动画公司-制作3d医学动画视频-医疗医学演示动画制作-医学三维动画制作公司 | 范秘书_懂你的范文小秘书 | 企业彩铃制作_移动、联通、电信集团彩铃上传开通_彩铃定制_商务彩铃管理平台-集团彩铃网 | 发电机价格|发电机组价格|柴油发电机价格|柴油发电机组价格网 | Jaeaiot捷易科技-英伟达AI显卡模组/GPU整机服务器供应商 | 科昊仪器超纯水机系统-可成气相液氮罐-美菱超低温冰箱-西安昊兴生物科技有限公司 | 海日牌清洗剂-打造带电清洗剂、工业清洗剂等清洗剂国内一线品牌 海外整合营销-独立站营销-社交媒体运营_广州甲壳虫跨境网络服务 | 鹤壁创新仪器公司-全自动量热仪,定硫仪,煤炭测硫仪,灰熔点测定仪,快速自动测氢仪,工业分析仪,煤质化验仪器 | 机床导轨_导轨板_滚轮导轨-上海旻佑精密机械有限公司 | 阿里巴巴诚信通温州、台州、宁波、嘉兴授权渠道商-浙江联欣科技提供阿里会员办理 | 北京开源多邦科技发展有限公司官网|