JavaSE进阶
8.3 练习
1、
声明Week枚举类,其中包含星期一至星期日的定义;
在TestWeek类中声明方法中printWeek(Week week),根据参数值打印相应的中文星期字符串。
提示,使用switch语句实现。
在main方法中从命令行接收一个1-7的整数(使用Integer.parseInt方法转换),分别代表星期一至星期日,打印该值对应的枚举值,然后以此枚举值调用printWeek方法,输出中文星期。
2、
(1).编写一个Person类,使用Override注解它的toString方法
(2).自定义一个名为“MyTiger”的注解类型,它只可以使用在方法上,带一个String类型的value属性,然后在第1题中的Person类上正确使用。
3、判断输出结果为何?
public class Test {
public Test() {
Inner s1 = new Inner();
s1.a = 10;
Inner s2 = new Inner();
s2.a = 20;
Test.Inner s3 = new Test.Inner();
System.out.println(s3.a);
}
class Inner {
public int a = 5;
}
public static void main(String[] args) {
Test t = new Test();
Inner r = t.new Inner();
System.out.println(r.a);
}
}
4、扩展题
答案:
public class TestAnonymous2 {
public static void main(String[] args) {
Test.function().method();
}
}
interface Inter{
void method();
}
class Test{
public static Inter function(){
return new Inter(){
@Override
public void method() {
System.out.println("测试");
}};
}
}
5、我没有指定父类,也没有实现接口,还能不能写匿名内部类。
答案:
new Object(){
void fun(){}
}.fun();
6、对成员内部类的继承说明
public class Test1 extends WithInner.Inner {
Test1(WithInner w){
w.super();
}
}
class WithInner{
class Inner{
}
}