|
@@ -0,0 +1,119 @@
|
|
|
+(function () {
|
|
|
+
|
|
|
+ 定义一个接口,接口中有3个抽象方法如下。
|
|
|
+ (1)“fact(m:number):number;”方法的功能为求参数的阶乘。
|
|
|
+ (2)“intPower(m:number,n:number):number;”方法的功能为求参数m的n次方。
|
|
|
+ (3)“findFactor(m:number,n:number):boolean;”方法的功能为判断参数m加上参数n的和是否大于100。
|
|
|
+ */
|
|
|
+
|
|
|
+ fact(m: number): number
|
|
|
+ intPower(m: number, n: number): number
|
|
|
+ findFactor(m: number, n: number): boolean
|
|
|
+ }
|
|
|
+
|
|
|
+ class Realize implements ITest {
|
|
|
+ fact(m: number): number {
|
|
|
+ let sum = 1
|
|
|
+ for (let i = 1; i <= m; i++) {
|
|
|
+ sum = sum * i
|
|
|
+ }
|
|
|
+ return sum
|
|
|
+ }
|
|
|
+ intPower(m: number, n: number): number {
|
|
|
+ return Math.pow(m,n)
|
|
|
+ }
|
|
|
+ findFactor(m: number, n: number): boolean {
|
|
|
+ if( m + n > 100){
|
|
|
+ return true
|
|
|
+ } else {
|
|
|
+ return false
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let r1 = new Realize()
|
|
|
+ console.log(r1.fact(6))
|
|
|
+ console.log(r1.intPower(4,2))
|
|
|
+ console.log(r1.findFactor(50,60)) */
|
|
|
+
|
|
|
+ 创建一个接口IShape,接口中有一个求面积的方法“getArea()”和求周长的方法“getLength()”。
|
|
|
+ 定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长。
|
|
|
+ 创建Square类的实例对象,求该正方形对象的面积和周长
|
|
|
+ */
|
|
|
+
|
|
|
+ getArea(): number
|
|
|
+ getLength(): number
|
|
|
+ }
|
|
|
+
|
|
|
+ class Square implements Ishape{
|
|
|
+ a: number
|
|
|
+ constructor(a: number){
|
|
|
+ this.a = a
|
|
|
+ }
|
|
|
+ getArea(): number {
|
|
|
+ return Math.pow(this.a,2)
|
|
|
+ }
|
|
|
+ getLength(): number {
|
|
|
+ return 4*this.a
|
|
|
+ }
|
|
|
+ }
|
|
|
+ let square = new Square(5)
|
|
|
+ console.log('正方形的面积为'+ square.getArea())
|
|
|
+ console.log('正方形的周长为'+ square.getLength()) */
|
|
|
+
|
|
|
+ eat(): void
|
|
|
+ sleep(): void
|
|
|
+ }
|
|
|
+ class Student implements Person{
|
|
|
+ eat(): void {
|
|
|
+ console.log('学生去食堂吃饭')
|
|
|
+ }
|
|
|
+ sleep(): void {
|
|
|
+ console.log('学生去宿舍睡觉')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ class Teacher implements Person{
|
|
|
+ eat(): void {
|
|
|
+ console.log('老师去教室食堂吃饭')
|
|
|
+ }
|
|
|
+ sleep(): void {
|
|
|
+ console.log('老师去学校公寓睡觉')
|
|
|
+ }
|
|
|
+ }
|
|
|
+ class Parent implements Person{
|
|
|
+ eat(): void {
|
|
|
+ console.log('家长去招待所吃饭')
|
|
|
+ }
|
|
|
+ sleep(): void {
|
|
|
+ console.log('家长去招待所睡觉')
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ let stu1 = new Student()
|
|
|
+ let tea1 = new Teacher()
|
|
|
+ let par1 = new Parent()
|
|
|
+
|
|
|
+ stu1.eat()
|
|
|
+ stu1.sleep()
|
|
|
+
|
|
|
+ tea1.eat()
|
|
|
+ tea1.sleep()
|
|
|
+
|
|
|
+ par1.eat()
|
|
|
+ par1.sleep() */
|
|
|
+
|
|
|
+ 定义墨盒接口InkBox,约定墨盒的颜色。 定义纸张接口Paper,约定纸张的大小。 定义打印机类,引用墨盒接口、纸张接口实现打印功能。
|
|
|
+ 墨盒厂商按照InkBox接口实现ColorInkBox类和GrayInkBox类。
|
|
|
+ 纸张厂商按照Paper接口实现A4Paper类和B5Paper类。“组装”打印机,让打印机通过不同的墨盒和纸张实现打印功能。
|
|
|
+
|
|
|
+ 程序运行效果如下:
|
|
|
+
|
|
|
+ 使用黑白墨盒在A4纸上打印。
|
|
|
+
|
|
|
+ 使用黑白墨盒在B5纸上打印。
|
|
|
+
|
|
|
+ 使用彩色墨盒在A4纸上打印。
|
|
|
+
|
|
|
+ 使用彩色墨盒在B5纸上打印。
|
|
|
+ */
|
|
|
+})();
|