zoukankan      html  css  js  c++  java
  • 《java编程思想》P160-P180(第八章部分+第九章部分)

    1.什么是多态?

    多态的定义指允许不同类的对象对同一消息做出响应。即同一消息可以根据发送对象的不同而采用多种不同的行为方式。(发送消息就是函数调用)

    现实中,关于多态的例子不胜枚举。比方说按下 F1 键这个动作,如果当前在 Flash 界面下弹出的就是 AS 3 的帮助文档;如果当前在 Word 下弹出的就是 Word 帮助;在 Windows 下弹出的就是 Windows 帮助和支持。同一个事件发生在不同的对象上会产生不同的结果。


    2. 接口中的方法默认是public的(即使没有进行声明),当要实现一个接口时,在接口中定义的方法必须是public的. 

    3.接口为什么能够解耦?

    因为方法的多态,所以接口的调用者只需要调用接口,具体的业务交给接口的实现者去实现即使用接口,可以避免接口调用方直接参与业务逻辑实现,所以能避免接口调用与业务逻辑实现紧密关联,即解耦 

    4.使用接口的核心原因:1.能向上转型为多个基类 2.防止客户端程序员创建该对象

    5.内部类中,如果要生成外部类对象的引用,可以使用外部类的名字后面紧跟圆点和this.

    6.用某个外部类对象去创建它的某个内部里对象时,可以用外部类对象的引用后面跟上.new语法. 

    public class test {
    
    	class A{
    		public A()
    		{
    			print();
    		}
    		void print()
    		{
    			System.out.println("A");
    		}
    	}
    	public class B extends A{
    		public B()
    		{
    			print();
    		}
    		void print()
    		{
    			System.out.println("B");
    		}
    	}
    	
    	public static void main(String[] args) {
    		
    		test t = new test();
    		A a = t.new B();
    	}
    }

    7.在拥有外部类对象之前是不可能创建内部类对象的.这是因为内部类对象会暗暗连接到创建它的外部类对象上.但是如果使用嵌套类(静态内部类),那么就不需要对外部对象的引用. 

    8.如果定义一个匿名内部类,并且希望它使用一个其外部定义的对象,那么编译器会要求其参数引用是final的. 

    9.匿名内部类没有构造函数(因为它没有名字),但是可以用构造代码块(类里用大括号括起的代码,与静态块就差个static)来为它进行初始化. (感觉什么用,穿进来的参数还是得写成final)

    10.找到不把参数设成final就可以传进内部类的办法(因为要设final是因为匿名内部类里用了,但只要把这件事交给构造器干就没事了)

    public class test {
    
    	class A{
    		int a;
    		public A(int c)
    		{
    			a=c;
    		}
    	}
    
    	public static void main(String[] args) {
    		test t = new test();
    		A a = t.getA(666);
    	}
    
    	private A getA(int c) {
    		c=777;
    		return new A(c)
    		{
    			{
    				System.out.println(a);
    				
    			}
    		};
    	}
    }


  • 相关阅读:
    撩妹技能 get,教你用 canvas 画一场流星雨
    git详细使用教程入门到精通(史上最全的git教程)
    Google Performance工具,你还不会用?Git走起。
    使用PIE.htc让万恶的IE内核浏览器IE678支持CSS3部分属性
    HTML编码规范
    Canvas制作的下雨动画
    Flex 布局教程:语法和实例
    CSS编码规范
    奇葩程序写的神一样的注释,被老板看见会不会开出呢?
    Vertical-Align你应该知道的一切
  • 原文地址:https://www.cnblogs.com/chz-blogs/p/9381029.html
Copyright © 2011-2022 走看看