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{

}

}