JAVA从入门到精通之3种类内部的用法(成员,局部,匿名)
沉沙 2019-07-17 来源 : 阅读 426 评论 0

摘要:本篇文章探讨了JAVA从入门到精通之3种类内部的用法(成员,局部,匿名),希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

本篇文章探讨了JAVA从入门到精通之3种类内部的用法(成员,局部,匿名),希望阅读本篇文章以后大家有所收获,帮助大家对相关内容的理解更加深入。

JAVA从入门到精通之3种类内部的用法(成员,局部,匿名)

"

 1 package Inner; 2 /** 3  * 测试内部类的使用 4  * @author 小王同学 5  * 1.成员内部类 ①非静态内部类    ②静态内部类 6  * 2.局部内部类 7  * 3.匿名内部类 8  * 总结: 内部类不只是普通的类,还可以是接口(Interface)默认static abstract修饰 ,抽象类(abstract) 9  *         使用方法内部类时,一定要在内部类中调用一下内部类中的方法否则无法使用.  列如:new Inner3().test();10  *         成员内部类就是类的一个成员变量. 
11  *         静态内部类只能使用外部类的静态成员. 普通内部类可以调用外部类的任何方法和属性,私有的也可以.12  *         普通内部类就是方法的方法的一个局部变量,作用域只限于方法体中.13  *         匿名内部类就是用来实现抽象方法或者是接口的抽象方法的.14  *         使用匿名内部类实现抽象类的方法时,必须要抽象类声明为静态的(static)才行,因为在main方法中不能直接调用非静态方法.15  */16 public class Outer {17     private String name;18     private static  int age;19     //1.测试成员内部类  20     class Inner{21     }22     static class Inner2{23          void run(){24             System.out.println(age);//静态内部类只能使用外部类的静态成员。25         }26         }27     //2.测试方法内部类28         void testxx(){29         int a =10;30             class Inner3{31                 public void test(){//内部累的方法,可以和外部类的方法重名.32                     System.out.println(""这是方法内部类"");33                     System.out.println(""这是外部方法的局部变量:a=""+a);34                     System.out.println(""这是外部方法的成员变量:age=""+name);35                 }     
36              37     }38 39                 new Inner3().test();//方法内部类在这里调用,不然在外界没有办法访问到40     }41     //3.测试匿名内部类42         interface  Inter { //接口和抽象方法也可以充当内部类使用43             void show();44         }45          static abstract class Inner4{ //这里不加static的话,在使用匿名内部类时,就无法46              abstract void  jump();47         }48         public static  void main(String[] args) {49         //1.成员内部类 50         /**两种定义非静态内部类的方法 */51         Inner n1 =new Outer().new Inner();52         Outer o1 =new Outer();53         Inner n2 =o1.new Inner();54         /**定义静态类的方法 */55         Inner2 n3 =new  Outer.Inner2();//直接使用new 外部类.内部类();56         //2.方法内部类57         /**调用方法内部类的方法 */58         new Outer().testxx();59         //3.匿名内部类60         /**这是实现接口的抽象方法*/61         Inter t1= new Inter(){62             @Override63             public void show() {64                 System.out.println(""这是匿名内部类噢噢噢噢"");        
65             }66         };67         t1.show(); //调用匿名内部类68         /**实现抽象类的抽象方法 */69         Inner4 in4 =new Inner4() {70             @Override71             void jump() {72                 // TODO Auto-generated method stub73                 74             }75         };76 }77 }

"      本文由职坐标整理发布,学习更多的相关知识,请关注职坐标IT知识库!

本文由 @沉沙 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程