java匿名方法
『壹』 java匿名类的方法
匿名类有类体,类里面一样可以声明方法。但只有覆盖父类的方法才能用,新写的方法用不了。多态性。也是父类引用指向子类对象这个原因。
『贰』 Java中匿名类的判断方法
匿名类和非匿名类很不一样啊,直接new一个类,而不用对象句柄去接受,只像调用处返回一个匿名对象的内存访问入口。 一般的类则要设置一个句柄,保证这个类或对象的有效访问。 例子可以参考knightzhuwei给处的例子。
『叁』 java内部匿名类如何调用外部类的方法
publicclassAnonymous{
publicvoidcctv(){
System.out.println("央视转播足球世界杯.....");
}
publicstaticvoidmain(String[]args){
newAnonymous().tv();
}
privatevoidtv(){
newObject(){
voidshow1(){
System.out.print("湖南卫视转播-->:");
cctv();
}
}.show1();
newObject(){
voidshow1(){
System.out.print("湖北卫视转播-->:");
cctv();
}
}.show1();
}
}
『肆』 JAVA匿名内部类怎么调用外部类的方法
并不清楚楼主代码需要如何实现。简短例子供参照,如有疑问可追问
publicclass${
publicstaticvoidmain(String[]args){
finalAa1=newA();
Aa=newA(newB(){
@Override
publicvoidtoDo(){
a1.getB();//调用final对象
A.test();//或尝试调用静态方法
//a.getB();//错误,a未完成初始化,无法被使用
}
});
}
}
classA{
Bb;
A(){}
A(Bb){
this.b=b;
}
staticvoidtest(){
}
publicBgetB(){
returnthis.b;
}
}
interfaceB{
publicvoidtoDo();
}
『伍』 Java中的匿名方法有什么用
Java中有匿名类,但没有匿名方法。
匿名类使代码更加简洁、紧凑,模块化程度更高
『陆』 JAVA匿名类问题
可以写新的方法,但这个方法只能在这个匿名类里面才可以调用,因为只有在匿名类里面才定义了。
『柒』 java匿名内部类对象,为什么可以调用匿名类的私有方法
在Java中,局部内部类的所有成员和方法(即使成员和方法是私有的)对于其所在的方法中来说回是可知的。答而匿名内部类(对象)是定义在一个类方法中的匿名子类对象,属于局部内部类。
因而,在inMethod方法中可以调用匿名子类对象的私有方法。
『捌』 JAVA匿名类是什么,怎么用
匿名类是一种特殊的内部类,它是在一个表达式内部包含一个完整的类定义。
内部类是在一个类的内部嵌套定义的类,它可以是其它类的成员,也可以在一个语句块的内部定义,还可以在表达式内部匿名定义。
匿名类与其他类的不同就在于匿名,也就是没有名称。
Java中允许创建子类对象时,除了使用父类的构造方法外,还可以用类体。 匿名类就是一个没有类申明的类体,因为没有名称,所有匿名类不可以申明对象,但却可以创建对象。 例如:
A是一个子类,那么下面的代码就是A的一个子类(匿名类)创建对象。
new A(){
匿名类的类体
};
由于匿名类是一个子类,所以和有一般子类的特征。可以继承父类的方法,同样也可以重写父类的方法。值得提醒的是,在使用匿名类时,一定是在某个类中直接用匿名类创建对象,因此匿名类必定是内部类,所以和其他匿名类一样可以访问外嵌类中的成员变量和方法,匿名类的类体中不可以什么。
static成员变量和static方法。
尽管匿名类没有申明的步骤,但可以在创建匿名对象时返回一个引用赋值给匹配参数。 匿名类的常用方式是向方法的参数传值。
具体方法如下:
abstractclassSpeak{
publicabstractvoidspeakHello();
}
classStudent{
voidf(Speaksp){
sp.speakHello();
}
}
publicclassAnonymousClassDemo{
publicstaticvoidmain(String[]args){
Speakspeak=newSpeak(){
publicvoidspeakHello(){
System.out.println("大家好,祝工作愉快!");
}
};
speak.speakHello();
Studentst=newStudent();
st.f(newSpeak(){
publicvoidspeakHello(){
System.out.println("Iamastudent,howareyou");
}
});
}
}
上面代码的抽象类改成接口同样适用。
『玖』 Java中如何使用匿名对象中的方法,当对象有多个方法如何调用呢
直接在匿名对象后调用该对象方法就可以了..要调用对象多个方法,你就要对该对象进行命名.匿名对象只能一次性使用.
『拾』 java 匿名类
abstract class Animal {
public abstract void cry();
}
class TestCry {
public void testCry(Animal animal) {
animal.cry();
}
}
public class Example{
public static void main(String[] args) {
TestCry cry = new TestCry () ;
cry.testCry(new Animal (){
public void cry() {
System.out.println("Cat is crying!");
}
});
cry.testCry(new Animal (){
public void cry() {
System.out.println("Dog is crying!");
}
});
// ... 省略其他
}
}
先看段伪代码
abstract class Father(){
....
}
public class Test{
Father f1 = new Father(){ .... } //这里就是有个匿名内部类
}
一般来说,new 一个对象时小括号后应该是分号,也就是new出对象该语句就结束了。
但是出现匿名内部类就不一样,小括号后跟的是大括号,大括号中是该new 出对象的具体的实现方法。
因为我们知道,一个抽象类是不能直接new 的,必须先有实现类了我们才能new出它的实现类。
上面的伪代码就是表示new 的是Father的实现类,这个实现类是个匿名内部类。
其实拆分上面的匿名内部类可为
class SonOne extends Father{
... //这里的代码和上面匿名内部类,大括号中的代码是一样的
}
public class Test{
Father f1 = new SonOne() ;
}