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

    1.不用修饰符 修饰的方法或类,它们的修饰符是 默认修饰符即 包访问权限(包内都可以用)(临时记的)

    2.

    final数据:

    对于基本类型,final使数值恒定不变,而对于对象引用,final使引用恒定不变(java里数组也是对象引用)。一旦引用被初始化指向一个对象,就无法再把它指向另一个对象。然而,对象本身还是可以改变的!(只是不能再指向别的,但这个对象本身还是可以变化的)

    Java允许生成”空白final”,所谓空白final是指被声明为final但是没有赋初值的域.无论什么情况,java编译器都保证空白final在使用前必须被初始化”. (必须在定义处或构造器里).

    final方法:

    为了防止继承类修改这个方法的定义(final方法无法被重写/覆盖

    类中所有的private方法都隐式的指定为final的. 

    覆盖只有在某个方法是基类的接口的一部分才出现,如果某个方法是private的,就不是接口的一部分,就不能被覆盖/重写,子类再写个一样的不能称为覆盖/重写,只是个子类的新方法(相同名称而已)。其实,子类不知道基类的某些方法(private),那么覆盖就无从谈起. 

    final类:final类无法被继承 .

    3.初始化的顺序(得靠刷题)

      1. 父类--静态变量
      2. 父类--静态初始化块
      3. 子类--静态变量
      4. 子类--静态初始化块
      5. 父类--变量
      6. 父类--初始化块
      7. 父类--构造器
      8. 子类--变量
      9. 子类--初始化块
      10. 子类--构造器

    4.多态的作用是消除类型之间的耦合关系 

    5.动态(也称动态绑定、后期绑定、运行时绑定)

    6.java中除了static方法和final方法(private属于final方法)之外,其它方法都是后期绑定

    7.java中的方法都是通过动态绑定实现的多态

    8.构造器中发生了多态,如果子类覆盖了父类方法,且父类构造器中调用了该方法,会发生多态现象,最终调用子类的该方法.但是此时子类的初始化还没进行,可能导致意想不到的结果.所以尽量不要在构造器中调用其他方法,或者仅仅调用final以及private(private默认final)的方法; 如下代码输出BB

    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();
    	}
    }
    
  • 相关阅读:
    Mysql数据库相关流程图/原理图
    【nginx】配置Nginx实现负载均衡
    数据库设计——评论回复功能
    html生成pdf
    cmd下载echarts包
    windows安装cnpm步骤
    你不在,是一年一年,你在,是春夏秋冬
    聚合
    Beyond compare4密钥
    ExtJs目录说明
  • 原文地址:https://www.cnblogs.com/chz-blogs/p/9381030.html
Copyright © 2011-2022 走看看