- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1、在局部内部类前不能用public、protected和private,只允许是abstract、final或不加。 2、可以定义与外部类同名的变量。 3、不可以定义静态变量和方法。 4、可以访问外部类的局部变量,但是变量必须是final的。 5、可以访问外部类的所有成员。 * * class Outter { String str=abc; int a=10; ? public void sample1() { final int b=12; String str3=123; ? class Inner { // 不能用public、protected和private修饰类 int a=12; ? // static String str3=aaa; 内部类中不能定义STATIC变量。 public void sample2() { System.out.println(b); //局部常量b System.out.println(str); //外部类成员变量str System.out.println(Outter.this.a);//外部类成员变量a System.out.println(a); //内部类成员变量a // 不能引用另一方法中定义的内部类中非终态变量 str3 // System.out.println(外部类成员变量str3的值+str3); } } new Inner().sample2(); } } public class Test { public static void main(String[] args) { Outter outter=new Outter(); outter.sample1(); } } 4.6.3 匿名类 有时仅仅为了在程序中定义一个对象而定义类,而且这个对象的唯一作用就是将它作为实参传递给方法。在这种情况下,只要类扩展已存在的类或者实现接口,就可以选择将其作为匿名类。 匿名类没有名字,类的定义和一个实例的创建同时进行,也就是说定义实际上是写在new的代码中,而不是拥有class关键字;匿名类不能有修饰符,也不能定义构造方法。 * 定义匿名内部类的格式: new 父类名(父类型的构造方法的调用参数列表){ 类体 } * 例1: interface A { void print(); } ? public class Test { public static void main(String args[]) { A a=new A() { public void print() { System.out.println(匿名类); } }; ? a.print(); } } * 例2 * public class Test { JFrame frame=new JFrame(测试窗口); //窗口 JPanel panel=new JPanel(); //面板 private JLabel label=new JLabel(没有操作); //标签 private JButton button=new JButton(确定); //按钮 public Test(){ panel.add(label); //将标签加到面板中 panel.add(button); //将按钮加到面板中 frame.add(panel); //将面板加到窗口中 button.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { label.setText(点击了按钮); } }); 4.7 泛型类 泛型是JDK5.0后出现的新概念,泛型的本质是参数化类型,也就是所操作的数据类型被指定为一个参数。当这种参数类型用在类中时,该类就被称为泛型类。 泛型类定义的格式: [类修饰符] class类名类型参数列表 [extends 父类名] [implement 接口名列表]{ 类体 } * 类型参数的定义方式有以下三种: 类型变量标识符 类型变量标识符 extends 父类名 类型变量标识符 extends 父类名1 父类名2 ... * 泛型在使用中的一些规则和限制 泛型的类型参数可以有多个。 泛型的类型参数只能是类类型(包括自定义类),不能是简单类型。 在static方
文档评论(0)