2_例题.js 3.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. (function () {
  2. /*
  3. 定义一个接口,接口中有3个抽象方法如下。
  4. (1)“fact(m:number):number;”方法的功能为求参数的阶乘。
  5. (2)“intPower(m:number,n:number):number;”方法的功能为求参数m的n次方。
  6. (3)“findFactor(m:number,n:number):boolean;”方法的功能为判断参数m加上参数n的和是否大于100。
  7. */
  8. /* interface ITest {
  9. fact(m: number): number
  10. intPower(m: number, n: number): number
  11. findFactor(m: number, n: number): boolean
  12. }
  13. class Realize implements ITest {
  14. fact(m: number): number {
  15. let sum = 1
  16. for (let i = 1; i <= m; i++) {
  17. sum = sum * i
  18. }
  19. return sum
  20. }
  21. intPower(m: number, n: number): number {
  22. return Math.pow(m,n)
  23. }
  24. findFactor(m: number, n: number): boolean {
  25. if( m + n > 100){
  26. return true
  27. } else {
  28. return false
  29. }
  30. }
  31. }
  32. let r1 = new Realize()
  33. console.log(r1.fact(6))
  34. console.log(r1.intPower(4,2))
  35. console.log(r1.findFactor(50,60)) */
  36. /*
  37. 创建一个接口IShape,接口中有一个求面积的方法“getArea()”和求周长的方法“getLength()”。
  38. 定义一个正方形类Square,该类实现了IShape接口。Square类中有一个属性a表示正方形的边长,在构造方法中初始化该边长。
  39. 创建Square类的实例对象,求该正方形对象的面积和周长
  40. */
  41. /* interface Ishape{
  42. getArea(): number
  43. getLength(): number
  44. }
  45. class Square implements Ishape{
  46. a: number
  47. constructor(a: number){
  48. this.a = a
  49. }
  50. getArea(): number {
  51. return Math.pow(this.a,2)
  52. }
  53. getLength(): number {
  54. return 4*this.a
  55. }
  56. }
  57. let square = new Square(5)
  58. console.log('正方形的面积为'+ square.getArea())
  59. console.log('正方形的周长为'+ square.getLength()) */
  60. /* interface Person{
  61. eat(): void
  62. sleep(): void
  63. }
  64. class Student implements Person{
  65. eat(): void {
  66. console.log('学生去食堂吃饭')
  67. }
  68. sleep(): void {
  69. console.log('学生去宿舍睡觉')
  70. }
  71. }
  72. class Teacher implements Person{
  73. eat(): void {
  74. console.log('老师去教室食堂吃饭')
  75. }
  76. sleep(): void {
  77. console.log('老师去学校公寓睡觉')
  78. }
  79. }
  80. class Parent implements Person{
  81. eat(): void {
  82. console.log('家长去招待所吃饭')
  83. }
  84. sleep(): void {
  85. console.log('家长去招待所睡觉')
  86. }
  87. }
  88. let stu1 = new Student()
  89. let tea1 = new Teacher()
  90. let par1 = new Parent()
  91. stu1.eat()
  92. stu1.sleep()
  93. tea1.eat()
  94. tea1.sleep()
  95. par1.eat()
  96. par1.sleep() */
  97. /*
  98. 定义墨盒接口InkBox,约定墨盒的颜色。 定义纸张接口Paper,约定纸张的大小。 定义打印机类,引用墨盒接口、纸张接口实现打印功能。
  99. 墨盒厂商按照InkBox接口实现ColorInkBox类和GrayInkBox类。
  100. 纸张厂商按照Paper接口实现A4Paper类和B5Paper类。“组装”打印机,让打印机通过不同的墨盒和纸张实现打印功能。
  101. 程序运行效果如下:
  102. 使用黑白墨盒在A4纸上打印。
  103. 使用黑白墨盒在B5纸上打印。
  104. 使用彩色墨盒在A4纸上打印。
  105. 使用彩色墨盒在B5纸上打印。
  106. */
  107. })();