自学Java系列 笔记2 高级类特性2

单子 Singleton 设计模板

所谓类的单态设计模式,就是采取一定的方法保证在整个的软件系统中,对某个类只能存在一个对象实例,并且该类只提供一个取得其对象实例的方法

步骤:(重要,理解

1.不能在类的外部通过 new 关键字的方式创建新的实例:构造器私有化

2.在类的内部创建实例

3.为了让类的外部能够访问到类的内部创建的实例,该实例必须使用 static 修饰

4.不能允许在类的外部修改内部创建的实例的引用。需要把该属性用private 修饰

5.为了让外部能够进行读,添加对应的get 方法

 

                                关键字 final(最终的)

Java中声明类、属性和方法时,可使用关键字final来修饰。

final标记的变量(成员变量或局部变量)即成为常量,只能赋值一次

final标记的类不能被继承。提高安全性,提高程序的可读性

final标记的方法不能被子类重写。增加安全性。

final标记的成员变量必须在声明的同时或在每个构造方法中显式赋值,然后才能使用。

 

抽象类(abstractclass)

 

随着继承层次中一个个新子类的定义,类变得越来越具体,而父类则更一般,更通用。类的设计应该保证父类和子类能够共享特征。有时将一个父类设计得非常抽象,以至于它没有具体的实例,这样的类叫做抽象类

abstract关键字来修饰一个类时,这个类叫做抽象类;用abstract来修饰一个方法时,该方法叫做抽象方法

抽象方法:只有方法的声明,没有方法的实现。以分号结束。

     abstract int abstractMethod1( int a );

含有抽象方法的类必须被声明为抽象类

抽象类不能被实例化。抽象类是用来被继承的,抽象类的子类必须重写父类的抽象方法,并提供方法体。

不能用abstract修饰私有方法,构造方法,静态方法(因为:私有方法和构造方法不能被继承,而静态方法不属于面向对象

 

 

 

 

 

 

    接口(只有:抽象方法和常量的集合

接口是定义动作指令

实现是具体执行动作

 

1. 有时必须从几个类中派生出一个子类,继承它们所有的属性和方法。但是,Java不支持多重继承。有了接口,就可以得到多重继承的效果

 

3. 用 interface 来定义

 

4. 接口中所有的成员变量都默认是由public static final 修饰的。在声明变量时必须直接赋值,因为接口没有构造方法。

 

5. 接口中的所有方法都默认是由public abstract 修饰的,接口没有构造方法。

 

6. 实现接口使用implements 关键字。若一个类既实现接口,又继承了父类,需要把 extends 关键字放在前面,即先继承父类,后实现多个接口,一个类可以实现多个无关的接口,若实现多个接口,使用“”分割。

 

7. 接口也可以继承另一个接口,使用extends 关键字。

关于接口的提示:

 

1. 实现接口的类中必须提供接口中所有方法的实现内容。若该类为抽象类,另当别论。

 

2. 多个无关的类可以实现同一个接口。

 

3. 与继承关系类似,接口与实现类之间存在

 

4.如果你继承的接口功能只是你要实现的功能一个部分,那么你得继承多个接口,我来举个例子来说明一下::门大家都很熟悉。那么门有好多种,有带把手的,有带报警的。那么现在我想要这两种功能都有的门,那怎么办,对于把手接口和报警接口,无论你实现哪一个都不行,所以只有俩个一起实现才能,这样接口多继承性就体现出来了。

                                             
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值