JAVA菜鸟入门(13) outer class与inner class的之间能互相使用field或者method吗?
2015-05-01 04:44
441 查看
Nested classes are divided into two categories: static and non-static.
1. Nested classes that are declared static are called static nested classes.
2. Non-static nested classes are called inner classes.
outer class与inner class的之间能互相使用field或者method吗?
可以。
代码如下:
输出结果
Outer class uses Inner class field : frog, 20
Inner class: first = zebra, second = 25
Inner class uses outer class: first = zebra, second = 25
iphone10
1. Nested classes that are declared static are called static nested classes.
2. Non-static nested classes are called inner classes.
outer class与inner class的之间能互相使用field或者method吗?
可以。
代码如下:
package FFtest2; public class FFOuter { private String first; private int second; public FFOuter(String l, int r) { first = l; second = r; } public String addStringInteger(String first, int second) { return first + Integer.toString(second); } /** * test1 * Outter class has access to inner private field * Outter class has access to inner method */ public void outterPrint() { FFOuter.InnerDisplay temp = this.new InnerDisplay("frog", 20); System.out.println("Outer class uses Inner class field : " + temp.innerFirst + ", " + temp.innerSecond); temp.print(first, second); } private class InnerDisplay { private String innerFirst; private int innerSecond; public InnerDisplay() { this("Somebody", 0); } public InnerDisplay(String s, int i) { innerFirst = s; innerSecond = i; } public void print (String f, int s) { System.out.println("Inner class: first = " + f+ ", second = " + s); } /** * test 2 * Inner class has access to outer class private field */ public void print () { System.out.println("Inner class uses outer class: first = " + first+ ", second = " + second); } /** * test 3 * Inner class has access to outer class method. */ public String add(String first, int second) { return addStringInteger(first, second); } } public static void main (String [] args){ /** * test 4 * in main(), call outter method * */ FFOuter outter = new FFOuter("zebra", 25); outter.outterPrint(); /** * test 5 * in main(), call inner method */ InnerDisplay innerDisplay = outter.new InnerDisplay(); innerDisplay.print(); System.out.println(innerDisplay.add("iphone", 10)); } }
输出结果
Outer class uses Inner class field : frog, 20
Inner class: first = zebra, second = 25
Inner class uses outer class: first = zebra, second = 25
iphone10
相关文章推荐
- Java.lang.reflect 下的Class,Method,Field的使用实例
- JAVA菜鸟入门(15) static method/ field与normal method/field的相互调用关系
- java程序员菜鸟进阶(十六)linux基础入门(四)linux下VIM文本编辑器使用
- Json——使用Json jar包实现Json字符串与Java对象或集合之间的互相转换
- 使用Gson或者GsonBuilder实现JSON和Java对象之间的转换
- java使用安全的PreparedStatement操作mysql数据库(菜鸟入门级别的)
- Java学习--(四)新的数据类型:类(class);field,method
- java中使用字符串或者动态创建对象的三种方法(Class,Constructor,Proxy)
- Java深入(高新技术)(四):反射、Class、Constructor、Method、Field、数组的反射、JavaBean
- 当在程序中使用jasperreport加载模板时报class: groovy/runtime/metaclass/java/util/HashMapMetaClass, method: super$2$invokeMethod signature
- 当在程序中使用jasperreport加载模板时报class: groovy/runtime/metaclass/java/util/HashMapMetaClass, method:
- 浅谈Java中的反射机制以及Class、Constructor、Field、Method简单框架原理
- java入门学习(13)—枚举类定义及使用初步
- 使用JAVA 实现jpg/tif/bmp 等图片之间格式得互相转换
- ElasticSearch学习13_ElasticSearch RESTful搜索引擎_Java Jest使用入门
- 在一个程序中需要用到全局变量(在多个class之间共享数据),请问如何定义具有这种功能的变量?或者是否有其他的方法解决多个class之间的数据共享(尽量简单实现)。 首先应该明确 Java中没有全局变
- Thinking in java-13 类中的 Field和Method
- Caused by: java.lang.ClassNotFoundException: org.aopalliance.intercept.MethodInterceptor
- 范围在1~13之间的四个数的21点java版求法
- 使用lucene4.6进行排序时报错:java.lang.IllegalArgumentException: after must be a FieldDoc; got doc=411 score=1