内部类
来源:互联网 发布:java excel 小数 4位 编辑:程序博客网 时间:2024/06/01 12:46
内部类:
把类A定义在类B的内部,类A就被称为内部类。
访问特点:
(代码验证只要编译通过说明就是没有问题的)
A:内部类可以直接访问外部类的成员,包括私有。
B:外部类要访问内部类的成员,必须创建对象。
**内部类分类:** 成员位置:成员内部类 局部位置:局部内部类
成员内部类:
外界如何创建对象
外部类名.内部类名 对象名 = 外部类对象.内部类对象;
局部内部类:
A:可以直接访问外部类的成员,包括私有
B:在成员方法中创建局部内部类的对象,调用局部内部类的功能
- 练习:
需求:请补齐代码,在控制台输出30,20,10 */ class Outer { public int num = 10; private class Inner { public int num = 20; public void show() { int num = 30; System.out.println(?); System.out.println(?); System.out.println(?); } } public void method() { Inner i = new Inner(); i.show(); } } class InnerClassTest { public static void main(String[] args) { Outer o = new Outer(); o.method(); } }
解答:
System.out.println(?);//num
System.out.println(?);//this.num
System.out.println(?);//new Outer().num或者Outer.this.num
第一个在方法内被定义,直接调用即可;
第二个在内部类中定义,可使用this.来调用。
第三个在外嵌类中定义,而num不是被static修饰的,所以不能用类名.num来调用,应该用new Outer().num。
匿名内部类
没有名字的局部内部类,就是内部类的简化写法
前提:
存在一个类或者接口
这里的类可以是具体类也可以是抽象类。格式:
new 类名或者接口名() {
重写方法;
};本质:
是一个继承了类或者实现了接口的子类匿名对象。
练习:
按照要求,补齐代码 要求在控制台输出”HelloWorld” */ interface Inter { void show(); } class Outer { //补齐代码 } class InnerClassTest { public static void main(String[] args) { Outer.method().show(); } }
解答:
class Outer { //补齐代码 public static Inter method(){ return new Inter(){ public void show() { System.out.println("HelloWorld"); } }; } }
0 0
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- 内部类
- Golang 学习之路一:开发环境搭建
- Linux--RH124---unit 14 linux中设备的访问
- IMWeb训练营作业】作业
- Assert()
- 在Servlet中使用getParameter()方法获取get请求中的中文参数乱码解决方法
- 内部类
- 预习(二)strlen sizeof staic extern 的定义理解与区别
- JSP中的9大内置对象和作用、用法。
- IDEA配置项目及启动(web.xml引mybatis配置文件总是出现错误)
- IMWeb训练营作业
- hdu/3717//UVALive
- EasyUI富客户端
- servlet的入门(1)
- 收集编程网址