首页 / JAVA / Java嵌套类,内部类和外部类
Java嵌套类,内部类和外部类
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java嵌套类,内部类和外部类,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1748字,纯文字阅读大概需要3分钟。
内容图文
1.嵌套类,内部类
嵌套类是指被定义在一个类内部的类;
JAVA的嵌套类有很多种类:1.静态成员类;2.非静态成员类;3.匿名类;4.局部类;其中,除了静态成员类之外,其他的都是内部类,因为静态成员类更像是一个独立的类;
但是静态成员类,是外部类内部的一个成员,静态成员类的访问和其他的静态成员一样:1.通过外部类类名调用;2.如果静态成员类定义为私有,那么只能在外部类内部使用
JAVA 内部类可以很好的实现隐藏,并且内部类拥有外围类的所有元素的访问权限,可是实现多重继承,并且可以避免修改接口而实现同一个类中两种同名方法的调用。
内部类有以下特点:
1.内部类中如果有static的属性,或者方法,那么这个内部类必须是static class;
2.一个内部类是static内部类,可以有非static的方法和属性;
2.外部类和内部类
2.1. 外部类访问内部类的属性或方法
可以通过new 对象,外部类可以调用内部类的所有域的属性和方法;
public class Outer { private String name = "张三"; publicint age = 10; privatevoid outerMethod(){ Inner inner = new Inner(); int age = inner.innerAge; String name = inner.innerName; inner.innerMethod(); System.out.println("outer method"); } class Inner{ private String innerName = "Inner"; publicint innerAge = 14; publicvoid innerMethod(){ System.out.println("inner start"); System.out.println("inner end"); } }
2.2.内部类访问外部类的方法和属性
可以通过 外部类.this.内部类方法(属性)的方式调用所有域的属性和方法
public class Outer { private String name = "张三"; publicint age = 10; privatevoid outerMethod(){ System.out.println("outer method"); } class Inner{ publicvoid innerMethod(){ System.out.println("inner start"); Outer.this.outerMethod(); String name = Outer.this.name; int age = Outer.this.age ; System.out.println("inner end"); } } }
2.3 内部类调用内部类
和外部类调用内部类一样,用 new 对象的形式,可以访问另一个内部类的所有域属性和方法;
3.如何调用用一个类的内部类
一般通过两种方式:第一种:new outer().new inner();第二种:new outer().getInner();通过方法获取;
public class Outer { public Inner getInner(){ return new Inner(); }; class Inner{ private String innerName = "Inner"; publicint innerAge = 14; } } class Test{ publicstaticvoid main(String[] args) { Outer.Inner inner = new Outer().new Inner(); Outer.Inner inner1 = new Outer().getInner(); } }
参考资料:《effective java》
原文:https://www.cnblogs.com/perferect/p/12614322.html
内容总结
以上是互联网集市为您收集整理的Java嵌套类,内部类和外部类全部内容,希望文章能够帮你解决Java嵌套类,内部类和外部类所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。