匿名对象使用方式一:当对对象的方法只调用一次时,可以用匿名对象来完成,这样写比较简化。

如果对一个对象进行多个成员调用,必须给这个对象起个名字。

匿名对象使用方式二:可以将匿名对象作为实际参数进行传递。


Car q=new Car();

Show(q);


需求:汽车修配厂。对汽车进行改装,将来的车够改成黑车,三个轮胎。

Public static void show(Car c){

C.num=3;

C.color=black;

C.run();

}


封装:是指隐藏对象的属性和实现细节,仅对外提供公共访问方式。

好处:

将变化隔离

便于使用。

提高重用性。

提高安全性。

封装原则:

将不需要对外提供的内容都隐藏起来。

把属性都隐藏,提供公共方法对其访问。


多态:可以理解为事物存在的多种体现形态。

动物:猫,狗

人:男人,女人


1,多态的体现

父类的引用指向了之间的子类对象。

父类的引用也可以接受自己的子类对象。

2,多态的前提

必须是类与类之间有关系。要么继承,要么实现。

通常还有一个前提:存在覆盖。

3,多态的好处

多态的出现打打的提高了出现的扩展性。

4,多态的弊端:

提高了扩展性,但是只能使用父类的引用访问父类中的成员。

5,多态的应用


6,多态的出现代码中的特点(多态使用的注意事项)


多态通过分离做什么和怎么做,从另一角度讲接口和实现分离开来。多态不但能够改善代码的组织结构和可读性,还能够创建可扩展的程序---既无论在项目最初创建时还是在需要添加新功能时都可以“生长”的程序。

封装通过合并特征和行为来创建新的数据类型。实现隐藏则通过将细节私有化把接口和实现分离开来。这种类型的组织机制对那些拥有过程化程序设计背景的人来说,更容易理解。

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


序列化

将对象转换为字节流保存起来,并在以后还原这个对象,这种机制叫做对象序列化。

实现序列化

一个对象要想能够实现序列化,必须实现Serializable接口或Externalizable接口。


如果一类如果想被序列化,则需要实现java.io.Serializable接口,该接口中没有定义任何方法,是一个标识性接口,当一个类实现了该接口,就表示这个类的对象是可以序列化的。


在序列化时,static变量是无法序列化的;如果A包含了对B的引用,那么在序列化A的时候也会将B一并地序列化;如果此时A可以序列化,B无法序列化,那么当序列化A的时候就会发生异常,这时需要将对B的引用设为transient,该关键字表示变量不会被序列化。

反序列化

反序列化时不会调用对象的任何构造方法,仅仅根据所保存的对象状态信息,在内存中重新构建对象。


3.

当我们在一个待序列化/反序列化的类中实现了以上两个private方法(方法声明要与上面的保持完全的一致),那么就允许我们以更加底层、更加细粒度的方式控制序列化/反序列化的过程。