Java基础3——复用类

上一篇 / 下一篇  2014-12-24 21:37:50 / 个人分类:原创

复用类的两种方法:
1、组合:在新类中创建现有类的对象。
2、继承:按照现有类的类型创建新类,并在其中添加新的代码。


初始化:
1、java会自动在导出类的构造器中插入对基类构造器的调用。
2、如果基类无默认构造器(即无参构造器),或者想调用他的带参数的构造器,那么就需要在导出类构造器中使用super关键字显式的调用基类构造器(调用基类构造器-super(参数),调用基类方法-super.方法名)。

代(proxy)理:
作用:使用代(proxy)理可以拥有更多的控制力,可以选择只提供在成员对象中的方法的某个子集。

组合与继承质检的区别:
1、组合:通常用于想在新类中使用现有类的功能而非接口。
2、继承:使用某个现有类,并开发一个它的特殊版本;这意味着你在使用一个通用类,并为了某种特殊需要而将其特殊化。

protected关键字:就类用户而言,这是private的,但对于任何继承于此类的到处类或其他任何未予同一个包内的类来说,它是可以访问的。

向上转型:是从一个专用类型向通用类型转换,所以总是安全的。

组合和继承的选择:
是否需要新类向基类进行向上转型,若需要可使用继承技术。

final关键字:
数据、方法、类
1、final数据:基本数据类型-一个永不改变的编译时常量;对象引用-引用恒定不变(即无法再使它指向另一个对象),但对象自身确实可以修改的。
既是static有事final的域只占据一段不能改变的存储空间。通常这种编译器常量使用大写表示,用下划线分割各单词。
static final与final的区别:(运行时使用随机生成数),static final变量因为它是static的,在装载是已初始化,因此无论创建多少个实例,他的值都是恒定不变的;final变量,由于每次创建实例时都会使用随机生成数初始化它,所以不同实例的final变量不同,同样不会修改。

2、空白final:被声明为final但未给定初值的域。编译器会确保空白final在使用前必须被初始化(必须在final域的定义处或构造器中对final域进行初始化)。
空白final的作用:一个类中的final域可以根据对象而有所不同,却又保持其恒定不变的特性。

3、final参数:方法参数为final,则只能读取该参数,不能修改。

4、final方法:
使用final方法的原因:把方法锁定,以防任何继承类修改它的含义,确保在继承中方法的行为保持不变并且不会被覆盖。

5、final和private关键字
覆盖只有在某方法是基类的接口的一部分时才会出现,如果某方法为private,它就不是基类的接口的一部分,他近视隐藏于类中的程序

6、final类
不可继承final类

继承与初始化:
导出类的初始化顺序:加载导出类(将class文件装载至内存中)-加载基类-基类中的static初始化-导出类的static初始化-(必要的类已加载完毕,可以创建对象了)基类对象中所有非静态域进行初始化-基类构造器-导出类对象所有非静态域进行初始化-导出类构造器。

修改7.9.1例子总结初始化顺序,验证方法定义对变量赋值顺序的影响。




---------------------------------------------
备注:
1、每一个非基本类型的对象都有一个toString()方法,当编译器需要一个String,而你只有一个对象的时候便会调用他。
2、@Override注解,对方法进行检查,如果是从父类重写了父类方法则通过,如果没有则会报错。

TAG:

 

评分:0

我来说两句

日历

« 2024-04-20  
 123456
78910111213
14151617181920
21222324252627
282930    

数据统计

  • 访问量: 18291
  • 日志数: 25
  • 建立时间: 2014-11-10
  • 更新时间: 2015-03-12

RSS订阅

Open Toolbar