java类 (二):内部类
如果一个类要被声明为static的,只有一种情况,就是静态内部类。如果在外部类声明为static,程序会编译都不会过。在一番调查后个人总结出了3点关于内部类和静态内部类(俗称:内嵌类)
1.普通内部类:注意调用的方法【外部类不能是抽象类和接口】
//外部类
class Out {private int age = 12;//内部类class In {public void print() {System.out.println(age);}}
}public class Demo {public static void main(String[] args) {Out.In in = new Out().new In();in.print();}
}
2.匿名内部类:注意结构======>注意 这个父类构造器可以是 抽象类
new 父类构造器(参数列表)|实现接口() { //匿名内部类的类体部分 }
匿名内部类调用两种方式
package lianxi;public class Lianxi {public static void main(String[] args) {/*====>这种构造方法可以实现父类中没有的方法实现调用* new Dongwu() {public void xiuxi() {System.out.println("看看这个地方");};public void xiuxi1() {System.out.println("看看这个那地方");};}.xiuxi1();*/Dongwu d = new Dongwu() {//这种方法只能对外类的方法进行重写 不然调用的时候会报错public void xiuxi() {System.out.println("看看这个地方");};};d.xiuxi();}
}abstract class Dongwu{public static int age = 10;public void chi() {System.out.println("吃肉");}abstract void xiuxi();
}class Dog extends Dongwu{public void xiuxi() {System.out.println("娱乐项目"+Dongwu.age);}public void wan() {System.out.println("娱乐玩项目"+Dongwu.age);}}
3.静态内部类=====>注意调用方法
class Out {private static int age = 12;static class In {public void print() {System.out.println(age);}}
}public class Demo {public static void main(String[] args) {Out.In in = new Out.In();in.print();}
}
4.方法内部类(局部内部类)====》了解 就可 据说不常用
方法内部类 中不能用限制符修饰(如 public)
class Out {private int age = 12;public void Print(final int x) {class In {public void inPrint() {System.out.println(x);System.out.println(age);}}new In().inPrint();}
}public class Demo {public static void main(String[] args) {Out out = new Out();out.Print(3);}
}
5.
在上面的代码中,我们将内部类移到了外部类的方法中,然后在外部类的方法中再生成一个内部类对象去调用内部类方法
如果此时我们需要往外部类的方法中传入参数,那么外部类的方法形参必须使用final定义
至于final在这里并没有特殊含义,只是一种表示形式而已【这个地方我没遇到过,以后遇到再说【自己测试过几次反正不用final】】
6.内部内传值同样是给内部类定义一个方法 间接改变其他参数
new ActionListener(){private String innerStr;@Overridepublic void actionPerformed(ActionEvent arg0) { jl.setText(innerStr);}public ActionListener accept(String str) {this.innerStr = str;return this;}}.accept(innerString);
转载于:https://www.cnblogs.com/ordinaryk/p/8143777.html
java类 (二):内部类相关推荐
- java类二次加载_深入理解java之类加载器
一.类与类加载器 类加载器:实现加载阶段的第一步,通过一个类的全限定名来将这个类的二进制字节流加载进jvm. 类与类加载器:任意一个类唯一性都是由它本身和加载它的类加载器确定,两个类是否相等在它们是由 ...
- Java学习笔记二十:Java中的内部类
Java中的内部类 一:什么是内部类: (1).什么是内部类呢? 内部类( Inner Class )就是定义在另外一个类里面的类.与之对应,包含内部类的类被称为外部类. (2).那为什么要将一个类定 ...
- java嵌套类与内部类
一.嵌套类(Nested Classes) 使用嵌套类减少了命名冲突,一个内部类可以定义在一个类中,一个方法中甚至一个表达式中. (1)定义 A nested(嵌套) class is any cla ...
- Java中的内部类和匿名类
内部类 Java中的类有两种重要的成员,即成员变量和方法.其实Java还允许类有一种成员,即在一个类中声明另一个类,这就是内部类,而包含内部类的类叫做外嵌类. 内部类和外嵌类之间的关系如下: 1.内部 ...
- java 为什么有匿名类_全面了解Java中的内部类和匿名类
Java内部类(Inner Class),类似的概念在C++里也有,那就是嵌套类(Nested Class),乍看上去内部类似乎有些多余,它的用处对于初学者来说可能并不是那么显著,但是随着对它的深入了 ...
- 【java开发系列】—— 嵌套类与内部类
嵌套类与内部类在java中使用的很广泛,为了避免难以理解,这里用了几个小例子,说明它的用法. 嵌套类与内部类的结构如下图 静态嵌套类 静态嵌套类,是一种在类之外声明的嵌套类,由于是静态的,所以不经过初 ...
- java类作用域标识符_java入门 (二) 标识符、数据类型、类型转换、变量、常量、作用域...
java入门(二) 标识符 数据类型 类型转换 变量.常量.作用域 本次笔记引用B站:狂神说,虽然早就会了,现在回头来敲下基础,加深印象 1.标识符: java所有的组成部分都需要名字.类名丶变量名丶 ...
- java类修饰词和内部类详解
java类修饰词和内部类详解 控制属性: 同一类内 同一包内 子类 所有类 public 可 可 可 ...
- java/c++中内部类、匿名类
1.java中的内部类: class Outside{private String nameString ;private int age;Outside(){}Outside(String str_ ...
- Java 线程 - 基础及工具类 (二)
Java 并发系列文章 Java 线程 - 并发理论基础(一) Java 线程 - 基础及工具类 (二) Java 线程 - 并发设计模式 (三) Java 线程(二) 通用的线程生命周期 Java ...
最新文章
- 当DiscuzNT遇上了Loadrunner(中)
- 使用mybatis向oracle数据库插入数据异常
- Struts自定义拦截器拦截器工作原理
- Kuroni and Impossible Calculation CodeForces - 1305C(鸽巢原理)
- android菜鸟学习笔记13----Android控件(二) 自定义控件简单示例
- 配置ISCSI客户端(LINUX)
- 中标麒麟共享win7打印机_Win7系统添加网络共享打印机
- python的paramiko模块
- linux服务器备份,Linux服务器上如何备份
- flash builder java_如何在具有Java 1.7的OSX上运行FlashBuilder 4.7
- 数据分析法、数据分析方法论总结
- 浅谈软件需求分析中的参与者
- 洛谷【P1195】口袋的天空
- mysql参数之max_connect_errors
- 微信小程序——天气查询
- 对不起,我们公司不招35岁的人
- Vue子传父详细教程
- 【戴嘉乐】IPFS伴侣:一个对IPFS资源管理更加便捷的浏览器插件
- python自动化之excel文件操作
- java怎么创建二进制文件_如何为Java应用程序创建本机二进制文件?
热门文章
- 必备9种能力、9种手段、9种心态
- UCenter密码算法规则和生成方法
- 如何借助log4j把日志写入数据库中
- 判断给定的IP地址是否是内网IP
- NGINX配置之二: nginx location proxy_pass 后面的url 加与不加/的区别.
- Javascript如何深拷贝对象
- vue路由(router)设置:父路由默认选中第一个子路由,切换子路由让父路由高亮不会消失
- Process Explorer 进程管理利器常用功能(中)
- 微服务学习之01父工程创建【Hoxton.SR1版】
- linux设置r镜像,一劳永逸,R的个性化默认配置