导航:首页 > 编程语言 > java内部类方法调用

java内部类方法调用

发布时间:2022-05-04 03:25:20

java 匿名内部类中的成员变量和成员方法如何调用

使用匿名内部类课使代码更加简洁、紧凑,模块化程度更高。内部类能够访问外部内的一切成员变量和方法,包括私有的,而实现接口或继承类做不到。然而这个不是我说的重点,我说的很简单,就是匿名内部类的两种实现方式:第一种,继承一个类,重写其方法;第二种,实现一个接口(可以是多个),实现其方法。
public class TestAnonymousInterClass{
public static void main(String args[]){
TestAnonymousInterClass test=new TestAnonymousInterClass();
test.show();
}
//在这个方法中构造了一个匿名内部类
private void show(){
Out anonyInter=new Out(){// 获取匿名内部类实例

void show(){//重写父类的方法
System.out.println("this is Anonymous InterClass showing.");
}
};
anonyInter.show();// 调用其方法
}
}

// 这是一个已经存在的类,匿名内部类通过重写其方法,将会获得另外的实现
class Out{
void show(){
System.out.println("this is Out showing.");
}
}
程序运行的输出结果为:

this is Anonymous InterClass showing.

所以在这里看出,匿名内部类有了自己的实现。其实很简单,使用匿名内部类是因为我这地方需要有点什么特殊的实现,所以我就在这地方把具体实现也给了出来了。然后我就在这地方获取它的实例,调用它的方法。
接口的方式,只要把父类换成接口就行了,没必要给出代码了。

使用匿名内部类时我们不要忘了我们的目的,我们只是在这地方想对某个类有特殊的实现。而不要想得太多,在匿名内部编写其它的方法。在匿名内部类中编写的自己的方法是不可见的。此种做法是毫无意义的,当然一般也不会这么做。在这里只是告诉初学者对于匿名内部类不要想的太多,而要这么想:匿名内部类就是重写父类或接口的方法。

匿名内部类是没有名字的,所以我们没办法获得其类型,而只能把它当作超类或接口类型来使用。

㈡ java外部类怎样调用内部类方法

你这里面有两个错:
1、Leis内部类是非静态类,不能在静态方法里初始化,即第三行Leis x=new Leis();报错,可以把Leis类改成静态类,即
public static class Leis{
......
}

2、Leis()是Leis类的构造函数,不能在第4行x.Leis()显示调用

一句话:静态方法里不能访问非静态内部类。但你可以在外部类的一个成员方法里访问非静态内部类,然后你再在静态方法里初始化外部类,通过外部类来访问非静态内部类。

㈢ Java内部类怎么直接调用外部类啊

publicclassOuter{
intx;
Strings="hello";
publicvoidtest(){
System.out.print("test");
}
publicclassInner{
ints=20;
publicvoidtestInner(){
//可以直接使用外部类的成员变量和成员方法
x=0;
test();
//如果外部类的成员变量和内部类变量重名,可以这样调用外部类的变量
Outer.this.s="test";
//当然你可以new外部类对象这也是没问题的
Outero=newOuter();
o.x=30;
o.test();
}
}
}

㈣ Java在外界如何调用局部内部类

  1. 内部类和成员变量一样,通过外部类的实例调用内部类。

  2. 可以先创建外部类实例。

  3. 用外部类实例调用内部类构造方法创建内部类实例。

  4. 再用这个内部类实例调用内部类成员方法。

Aa=newA();
A.Bb=a.newB();
b.do1();//do是关键字,所以这里在do后面加了个1,否则无法编译

㈤ java怎么调用另一个类中的方法中的内部类中的方法

class Hello {
public static void pt(){
new A().ppt();
class A {
void ppt(){//ppt()方法不能在其他类中调用,只能在pt()方法中被调用
System.out.println("hello word");
}
}
}
}
public class Test {
public static void main(String[] args){
Hello.pt();
}
}

㈥ java 内部类怎么调用外部类的函数

你好!
方法1:定义内部类的一个对象,用该对象调用外部类的成员函数
方法2:直接用语句:this.外部类的成员函数名。
仅代表个人观点,不喜勿喷,谢谢。

㈦ java内部调用内部方法的问题

Java内部调用内部方法主要是通过内部类实现。Java内部类分两种,成员内部类和方法内部类。

代码如下:

1.成员内部类
/**
*成员内部类
*/
publicclassOuter{
privateintouter=1;

classInner{
publicvoidshow(){
System.out.println("outer="+outer);
}
}

publicstaticvoidmain(String[]args){
Outer.Innerin=newOuter().newInner();
in.show();

}

}

2.方法内部类
/**
*方法内部类
*
*/
publicclassOuter2{
privateintouter=1;

publicvoidshowOut(){

classInner{
publicvoidshow(){
System.out.println("outer="+outer);
}
}
newInner().show();
}

publicstaticvoidmain(String[]args){
Outer2in=newOuter2();
in.showOut();

}

㈧ Java 内部类如何被外部类调用

服了你了,能把程序写成这样。一个java文件里可以有多个类,但只能有一个public类,而且这个类必须是外部类,不能是内部类。而且你在Test里实例化inner的方法也不对,inner的类型始终是Outer.Inner,不会因为Outer实例化而变成outer.Inner,只不过编译器还没有报出那里的错误而已。写成这样:

class Outer{
private int size=10;
class Inner{
public void doStuff(){
System.out.println(++size);
}
}
}

public class Test{
public static void main(String [] args){
Outer outer=new Outer();
Outer.Inner inner=outer.new Inner();
inner.doStuff();
}
}

㈨ java内部类中的调用规则

一般来说,外部类调用内部类的方法分为以下几种情况:
1.使用static可以声明一个内部类, 可以直接在外部调用

// 定义外部类
class Outer
{
// 定义外部类的私有属性
private static String info = "hello world";
// 使用static定义内部类
static class Inner
{
// 定义内部类的方法
public void print()
{
// 直接访问外部类的私有属性
System.out.println(info);
}
}
// 定义外部类的方法
public void fun()
{
// 通过内部类的实例化对象调用方法
new Inner().print();
}
}

public class InnerClassDemo03
{
public static void main(String args[])
{
// 通过Outer.Inner创建内部类的实例,并调用它的print方法
new Outer.Inner().print() ;
}
}
2.不使用statc声明一个内部类 ,使外部调用

//定义外部类
class Outer
{
//定义外部类的私有属性
private String info = "hello world";
//定义内部类
class Inner
{
//定义内部类的方法
public void print()
{
//直接访问外部类的私有属性
System.out.println(info);
}
};
//定义外部类的方法
public void fun()
{
//通过内部类的实例化对象调用方法
new Inner().print();
}
};
public class InnerClassDemo04
{
public static void main(String args[])
{
//外部类实例化对象
Outer out = new Outer();
//实例化内部类对象
Outer.Inner in = out.new Inner();
//调用内部类的方法
in.print();
}
}
3.在方法中定义内部类 ,使外部调用

//定义外部类
class Outer
{
//定义外部类的私有属性
private String info = "hello world";
//定义外部类的方法
public void fun(final int temp)
{
//在方法中定义的内部类
class Inner
{
//定义内部类的方法
public void print()
{
//直接访问外部类的私有属性
System.out.println("类中的属性:" + info);
System.out.println("方法中的参数:" + temp);
}
}
//通过内部类的实例化对象调用方法
new Inner().print();
}
}

public class InnerClassDemo05
{
public static void main(String args[]){
//调用外部类的方法
new Outer().fun(30);
}
}

㈩ Java如何调用内部类的方法

在其他类中创建内部类的对象时,必须要使用外部类的实例来创建。比如类B是类A的内部类,则语句A.B=new A.B()将是错误的。正确的方法是先创建一个类A的对象,比如A ma=new ma();然后再用这个对象来创建内部类的实例,比如A.B mab=ma.new B();这里要注意后面的语法ma.new B()。也可以把这两步合为一步,比如A.B mab=new A().new B();注意,这里使用了两个new运算符,如果只有一个将是错误的,比如A.B mab=new A().B();是错误的,new A().B()语句JAVA会理解为创建一个无名的引用,然后由这个引用调用类A中的B()函数。如果需要调用的构造函数不是默认的,则可以这样创建比如A.B mab=new A(2).new B();或者分为两步A ma=new A(2); A.B mab=ma.new B();

而且我也怕是不是会重新建个棋盘,那就不行了!
这个你可以放心,不会创建两个棋盘,下面举例验证

public class A2 extends JFrame {
public static void main(String[] args) {
A ma=new A(); //可以看到在这里并没有创建内部类,也就是说内部类中的bbb并没有输出
A.A1 ma1=ma.new A1(); //调用内部类的方法,当然内部类如果有带参数构造函数,则还应在内部类中加上参数。
ma1.f();
}}

class A{
A(){System.out.println("aaa");}
class A1{
A1(){System.out.println("bbb");}
public void f(){System.out.println("kkk");}}

}

阅读全文

与java内部类方法调用相关的资料

热点内容
fibonacci数列算法 浏览:775
产品经理要和程序员吵架吗 浏览:252
grub2命令行 浏览:618
无法获取加密卡信息 浏览:774
云服务器网卡充值 浏览:509
编程就是软件 浏览:49
服务器如何添加权限 浏览:437
引用指针编程 浏览:851
手机加密日记本苹果版下载 浏览:63
命令行括号 浏览:176
java程序升级 浏览:490
排序算法之插入类 浏览:227
gcccreate命令 浏览:73
海尔监控用什么app 浏览:64
系统盘被压缩开不了机 浏览:984
linuxredis30 浏览:541
狸窝pdf转换器 浏览:696
ajax调用java后台 浏览:905
活塞式压缩机常见故障 浏览:614
break算法 浏览:731