黑马程序员技术交流社区
标题:
【记录】代码练习-匿名内部类
[打印本页]
作者:
Kevin.Kang
时间:
2015-7-2 13:51
标题:
【记录】代码练习-匿名内部类
package com.kxg;
interface Inner
{
public abstract void show();
}
class Outer5
{
public Inner method()
{
return
new Inner()//返回一个Inner接口的匿名实现类的对象
{
public void show()
{
System.out.println("匿名内部类重写接口方法");
}
};
}
public void method2()//method2里面是Inner接口实现类的对象调用实现类重写接口的方法
{
new Inner()
{
public void show()
{
System.out.println("匿名内部类重写接口方法");
}
}.show();
}
}
public class InnerDemo5 {
public static void main(String[] args)
{
Outer5 o = new Outer5();
o.method().show();//o.method()是一个对象
o.method2();
}
}
复制代码
作者:
Kevin.Kang
时间:
2015-7-2 14:19
package com.kxg;
interface Inner2
{
public abstract void show();
public abstract void show2();
}
class Outer6
{
public void method()
{
new Inner2()
{
public void show()
{
System.out.println("show");
}
public void show2()
{
System.out.println("show2");
}
}.show();
new Inner2()
{
public void show()
{
System.out.println("show");
}
public void show2()
{
System.out.println("show2");
}
}.show2();
//利用多态,用接口类型接收一个接口实现类
Inner2 i = new Inner2()
{
public void show()
{
System.out.println("show");
}
public void show2()
{
System.out.println("show2");
}
};
i.show();
i.show2();
}
}
public class InnerDemo6
{
public static void main(String[] args)
{
Outer6 o = new Outer6();
o.method();
}
}
复制代码
作者:
Kevin.Kang
时间:
2015-7-2 14:34
package com.kxg;
interface Person
{
public abstract void study();
}
class PersonDemo
{
public void method(Person p)
{
p.study();
}
}
class Student implements Person
{
public void study()
{
System.out.println("学习");
}
}
public class InnerDemo7
{
public static void main(String[] args)
{
//需要创建一个接口类的具体实现类
PersonDemo p = new PersonDemo();
Student s = new Student();
p.method(s);
//不需要创建具体实现类,直接利用匿名内部类创建匿名对象
p.method(new Person()
{
public void study()
{
System.out.println("学习知识");
}
});
}
}
复制代码
作者:
Kevin.Kang
时间:
2015-7-2 15:25
/*
按照要求,补齐代码
interface Inter
{
void show();
}
class Outer{补齐代码}
class Outer
{
public static void main (String [] ages)
{
Outer.method().show();
}
}
要求在控制台输出“Hello World”
分析:
1.Outer.method().show()
从这里可以看出只有Outer.method()返回值是一个对象,才可以完成后面调用show()方法
2.method()方法可以直接被类名调用,说明method()方法被静态修饰
*/
package com.kxg;
interface InterTest
{
void show();
}
class OuterTest
{
public static InterTest method()
{
return
new InterTest()
{
public void show()
{
System.out.println("Hello World");
}
};
}
}
class OuterDemo
{
public static void main (String [] ages)
{
OuterTest.method().show();
}
}
复制代码
作者:
javazhang
时间:
2015-7-2 16:08
表示怎么获得这种格式的文本?
作者:
javazhang
时间:
2015-7-2 22:23
谢谢。。。。。。。。。。
作者:
javazhang
时间:
2015-7-2 22:28
javazhang 发表于 2015-7-2 16:08
表示怎么获得这种格式的文本?
class Array2Demo{
public static void main(String[] args){
int[][] arr = new int[3][2];
//直接打印二维数组
System.out.println(arr);
//直接打印二位数组中的角标为0的一维数组
System.out.println(arr[0]);
//直接打印二维数组中的角标为0的一维数组的角标为0的元素
System.out.println(arr[0][0]);
}
}
复制代码
像这种没有那种1,2,3,4,5那种排列的样子
作者:
luorenyu
时间:
2015-7-2 22:47
看不懂,努力修行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2