`

java 调用内部类

    博客分类:
  • Java
阅读更多

调用内部类的某个方法,需要用new关键字创建外部类,然后在通过外部类去调用内部类。

代码如下:

public class OuterInnerClass {

	private String name;
	private String age;
	class innerClass{
		innerClass(){
			System.out.println("oox");
		};
	}
	public innerClass ooxx(){
		return new innerClass();
	}
	
	public static void main(String[] args) {
		OuterInnerClass out = new OuterInnerClass();
		OuterInnerClass.innerClass in = out.ooxx();
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

}

 突然好奇如何调用内部类的某个属性:

public class OuterInnerClass {

	private String name;
	private String age;
	class innerClass{
		private String innername="test";
		innerClass(){
			System.out.println("oox"+this.innername);
		}
		public String getInnername() {
			return innername;
		}
		public void setInnername(String innername) {
			this.innername = innername;
		};
		
	}
	public innerClass ooxx(){
		return new innerClass();
	}
	
	public static void main(String[] args) {
		OuterInnerClass out = new OuterInnerClass();
		OuterInnerClass.innerClass in = out.ooxx();
		in.setInnername("mixian");
		System.out.println(in.getInnername());
		//OuterInnerClass out1 = OuterInnerClass.innerClasss();
	}

	public String getName() {
		return name;
	}

	public void setName(String name) {
		this.name = name;
	}

	public String getAge() {
		return age;
	}

	public void setAge(String age) {
		this.age = age;
	}

}

 


 结果为:ooxtest  mixian

或者:OuterInnerClass outer = new OuterInnerClass();
  OuterInnerClass.innerClass inner = out.new innerClass();初始化结果是一样的

ps说明:

师傅说:内部类可以声明为static的,但此时就不能再使用外部类的非static的成员变量和非static的成员方法;
非static的内部类中的成员不能声明为static的,只有在
层类或static的内部类中才可声明static成员
理解:
也就是说内部类和外部类,在变量和方法的调用的时候,必须都是static 或者是非static
ps:
    内部类定义为静态的可以声明静态的变量,
    一个非静态的内部类不可以声明静态变量。
   静态内部类里面不可以应用外部的非静态变量
分享到:
评论
1 楼 锅巴49 2010-08-15  
Outer outer=new Outer();
Outer.Inner inner=outer.new Inner();

相关推荐

    java 匿名内部类的使用规范

    java 匿名内部类的使用规范 java 匿名内部类的使用规范 java 匿名内部类的使用规范

    java调用C/C++全过程

    java调用C/C++全过程 JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。  JAVA通过JNI调用本地...

    java调用C和C++

    JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了...通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。

    java调用一个URL接口的方法类

    WebServices接口可以调用,但在有些地方只需要简单的调用,比如调用一个URL接口,传几个参数,就可以使用这个方法直接调用,详细见“调用接口.jsp”可以很容易改写成一个java类

    JAVA类的方法调用和变量

    JAVA类的方法调用和变量 一、类的分类: 1、普通类 2、抽象类(含有抽象方法的类) 3、静态类(不需要实例化,就可以使用的类) 二、方法的分类: 1、私有方法(只有类的内部才可以访问的方法) 2、保护方法(只有...

    使用Java匿名内部类实现一个简单的线程池.txt

    这段代码实现了一个简单的线程池ExecutorService,其中使用了Java的匿名内部类。在类的构造方法中,首先创建了一个固定大小为5的线程池。然后通过循环提交了10个任务到线程池中执行。每个任务都是一个匿名内部类实现...

    java调用c代码:AVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件形式 )。通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法

    JAVA通过JNI调用本地方法,而本地方法是以库文件的形式存放的(在WINDOWS平台上是DLL文件形式,在UNIX机器上是SO文件...通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法

    java怎么调用C语言

    JAVA通过JNI调用本地C语言方法 JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了它的功能。解决JAVA对本地操作的一种方法就是JNI。

    计算机后端-Java-Java核心基础-第15章 面向对象07 27. 成员内部类中调用外部类的结构.avi

    计算机后端-Java-Java核心基础-第15章 面向对象07 27. 成员内部类中调用外部类的结构.avi

    java内部类的使用

    其对象就拥有了与外部类对象之间的一种关系,这是通过一个特殊的this reference形成的,当内部类的成员方法中访问某个变量/方法时,如果在该方法和内部类中都没有定义过这个变量,调用就会被传递给内部类中保存的...

    把wsdl文件转换成java类 使用wsdl2Java工具

    把wsdl文件转换成java类 使用wsdl2Java工具

    java调用动态链接库dll

    事实上,很多Java 核心代码内部就是使用JNI 实现的。这些Java 功能实际上是通过原 生函数提供的。 但是,使用JNI 对Java 开发者来说简直是一场噩梦。 如果你已经有了原生函数,使用JNI,你必须使用C 语言再编写一个...

    Java 调用Http Rest接口 例子说明2

    Java 调用Http Rest接口 例子说明2

    Java 调用C/C++程序

    JAVA以其跨平台的特性深受人们喜爱,而又正由于它的跨平台的目的,使得它和本地机器的各种内部联系变得很少,约束了...通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。

    java的JNI本地调用

    JNI(java native interface)java本地接口,主要为了是实现java对本地函数的调用, 通过调用本地的库文件的内部方法,使JAVA可以实现和本地机器的紧密联系,调用系统级的各接口方法。

    Swift匿名内部类像java那样的功能改.zip

    使用swift匿名内部类,实现jave匿名内部类功能,java中的匿名内部类,可以做到的是,就是想要重写一个类中的方法,并且执行,但是不想重新定义一个类,因为只调用一次,或者调用多次,但是每次调用的实现过程都不同,这时候就...

    java微信公众号调用手机摄像头拍照和本地相册

    java微信公众号调用手机摄像头拍照和本地相册,上传服务器,java微信公众号内部调用本地摄像头,web项目

    jni简单使用

    生成HelloWorld.h文件(若提示找不到HelloWorld类文件,Java代码中不要写package) 有package时,在包所在目录下打开终端,输入命令javah -jni com.gjl.jnitest.HelloWorld (com.gjl.jnitest为包名) 生成 ...

    03.第三节-使用匿名内部类的形式调用接口.mp4

    即使是升级到JDK1.8了,但是很多开发者依然是停留在1.8之前的开发方式,使用的也是非常老旧和过时的API,遇到函数式接口也是依然使用匿名内部类解决。 本系列课程从Lambda表达式、方法的引用、Stream API三处着手...

    Spring Boot中Controller间的调用

    因为大部分情况下,调用应该都是限于对业务逻辑层或者数据库层,并不会涉及Controller之间的调用。 本文是讨论Controller A必须调用Controller B的情况。 Controller A可以返回redirect和forward指令来进行跳转...

Global site tag (gtag.js) - Google Analytics