• 《java入门第一季》之面向对象匿名内部类面试题


    面试题一:

    /*
            按照要求,补齐代码
                interface Inter { void show(); }
                class Outer { //补齐代码 }
                class OuterDemo {
                    public static void main(String[] args) {
                          Outer.method().show();
                      }
                }
                要求在控制台输出”HelloWorld”
    */

    interface Inter { 
    	void show(); 
    	//接口中的抽象方法,默认格式:public abstract
    }
    
    class Outer { 
    	//补齐代码
    	public static Inter method() {
    		//子类对象 -- 子类匿名对象
    		Inter i = new Inter() {//返回值类型是一个引用类型接口类型Inter
    			public void show() {
    				System.out.println("HelloWorld");
    			}
    		};
    		return i;
    		/*
    		上面代码等价与下面:
    		return new Inter(){
    			public void show(){
    				System.out.println("hello word!");
    			}
    		};
    		*/
    	}
    }
    
    class OuterDemo {
    	public static void main(String[] args) {
    		Outer.method().show();//返回一个对象。x.show();
    		/*
    			1:Outer.method()可以看出method()应该是Outer中的一个静态方法。
    			2:Outer.method().show()可以看出method()方法的返回值是一个对象。因为show()应该被对象调用
    				又由于接口Inter中有一个show()方法,所以我认为method()方法的返回值类型是一个接口。
    		*/
    	}
    }



    面试题二:

    /*
        面试题:
            要求请填空分别输出30,20,10。
            
        注意:
            1:内部类和外部类没有继承关系。
            2:通过外部类名限定this对象
                Outer.this
    */

    class Outer {
        public int num = 10;
        class Inner {
            public int num = 20;
            public void show() {
                int num = 30;
                System.out.println(填写代码);
                System.out.println(填写代码);
                System.out.println(填写代码);
            }
        }
    }
    class InnerClassTest {
        public static void main(String[] args) {

              填写代码。
        }    
    }


    class Outer {
    	public int num = 10;
    	class Inner {
    		public int num = 20;
    		public void show() {
    			int num = 30;
    			System.out.println(num);
    			System.out.println(this.num);
    			System.out.println(Outer.this.num);
    		}
    	}
    }
    class InnerClassTest {
    	public static void main(String[] args) {
    		//外部类名.内部类名 对象名 = 外部类对象.内部类对象;
    		Outer.Inner oi = new Outer().new Inner();
    		oi.show();
    	}	
    }


  • 相关阅读:
    MySQL如何监测是否命中索引? mysql执行计划解读
    mysql修改用户密码的方法及命令
    php7 安装rabbitmq 扩展 amqp扩展
    HAProxy的高级配置选项-Web服务器状态监测
    HAProxy 配置SSL
    nginx request_body 为空 没有参数 ;关于client_max_body_size client_body_buffer_size配置
    mysql 存储过程 函数的 导入导出
    postman设置客户端证书
    python字符串和列表之间相互转换
    python 发邮件 带附件 给多人发邮件
  • 原文地址:https://www.cnblogs.com/wanghang/p/6299841.html
Copyright © 2020-2023  润新知