Java连载58-静态内部类、成员内部类详解
2019-12-07 16:03:05来源:博客园 阅读 ()
一、内部类的分类:
(1)静态内部类(2)成员内部类(3)局部内部类(4)匿名内部类
二、静态内部类
1.静态内部类可以等同的看做是静态变量
内部类的重要作用:可以访问外部类中的私有数据
2.静态内部类可以直接访问外部类的静态变量,静态方法,无法直接访问成员变量和成员方法。
package com.bjpowernode.java_learning; ? public class D58_1_OuterClass { //静态变量 static String s1 = "A"; //成员变量 private String s2 = "B"; //静态方法 private static void m1() { System.out.println("static m1 method execute"); } //成员方法 private void m2() { System.out.println("m2 method execute"); } //静态内部类 //可以访问控制权限的修饰符修饰 //public,protected.private.缺省 static class InnerClass58{ //静态方法 public static void m3() { m1(); System.out.println(s1); // m2(); // System.out.println(s2); } //成员方法 public void m4() { } } public static void main(String[] args) { //执行m3 D58_1_OuterClass.InnerClass58.m3(); //执行m4 InnerClass58 inner = new InnerClass58(); inner.m4(); } }
二、成员内部类
1.成员内部类可以等同的看醉哦成员变量
2.成员内部类中不允许存在静态变量、静态方法、只能有成员变量和成员方法?。
3.成员内部类可以有外部类的成员变量、成员方法、静态变量和静态方法。
4.?注意点:?内部类对象的创建方式:
需要先创建一个外部类的对象,然后利用外部类的对象再来创建内部类的对象?,例如:
D58_2_MemberInnerClass d1 = new D58_2_MemberInnerClass(); InnerClass58_1 i1 = d1.new InnerClass58_1();//外部类对象加点的方式进行创建 i1.m4();
举一个完整的例子:
package com.bjpowernode.java_learning; ? public class D58_2_MemberInnerClass { //静态变量 static String s1 = "A"; //成员变量 private String s2 = "B"; //静态方法 private static void m1() { System.out.println("static m1 method execute"); } //成员方法 private void m2() { System.out.println("m2 method execute"); } //成员内部类 //可以访问控制权限的修饰符修饰 //public,protected.private.缺省 class InnerClass58_1{ //静态方法编译错误,不能使用这个方法 // public static void m3() { // m1(); // System.out.println(s1); // // m2(); // System.out.println(s2); // // } //成员方法 public void m4() { m1(); System.out.println(s1); m2(); System.out.println(s2); } } public static void main(String[] args) { D58_2_MemberInnerClass d1 = new D58_2_MemberInnerClass(); InnerClass58_1 i1 = d1.new InnerClass58_1(); i1.m4(); } }
三、源码:
D58_1_OuterClass.java
D58_2_MemberInnerClass.java
地址:
https://github.com/ruigege66/Java/blob/master/D58_1_OuterClass.java
https://github.com/ruigege66/Java/blob/master/D58_2_MemberInnerClass.java
2.CSDN:https://blog.csdn.net/weixin_44630050(心悦君兮君不知-睿)
3.博客园:https://www.cnblogs.com/ruigege0000/
4.欢迎关注微信公众号:傅里叶变换,个人公众号,仅用于学习交流,后台回复”礼包“,获取大数据学习资料
原文链接:https://www.cnblogs.com/ruigege0000/p/12001390.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:JavaFX 井字棋游戏
下一篇:Tomcat详解|乐字节
- 国外程序员整理的Java资源大全(全部是干货) 2020-06-12
- 2020年深圳中国平安各部门Java中级面试真题合集(附答案) 2020-06-11
- 2020年java就业前景 2020-06-11
- 04.Java基础语法 2020-06-11
- Java--反射(框架设计的灵魂)案例 2020-06-11
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash