1. // 定义类
    2. class Person {
    3. name: sring; // 属性前面省略了public关键词
    4. constructor(n: string){ // 构造函数
    5. this.name = n;
    6. }
    7. run():void{
    8. console.log(thhis.name);
    9. }
    10. }
    11. let fn = new Person('法外狂徒张三');
    12. fn.run();
    13. class Person {
    14. name: sring; // 属性前面省略了public关键词
    15. constructor(name: string){ // 构造函数
    16. this.name = n;
    17. }
    18. getName():string{
    19. return this.name;
    20. }
    21. setName():void {
    22. this.name = name;
    23. }
    24. }
    25. let fn = new Person('法外狂徒张三');
    26. fn.run(); // 法外狂徒张三
    27. fn.setName('李四'); // 李四
    28. // 实现继承
    29. class Person {
    30. constructor(name: string){ // 构造函数
    31. this.name = name;
    32. }
    33. run():string{
    34. return `狂徒变${this.name}了`
    35. }
    36. }
    37. let fn = new Person('王五');
    38. fn.run(); // 狂徒变王五了
    39. class Web extends Person {
    40. constructor(name: string){
    41. super(name);
    42. }
    43. }
    44. let func = new Web('赵六');
    45. func.run(); // 狂徒变赵六了
    46. // 类的修饰符
    47. /*
    48. * public 公有 在类里面、子类、类外面都可以访问
    49. * protected 保护类型 在类里面、子类里面可以访问 在类外部都无法访问
    50. * private 私有 在类里面可以访问、 子类、类外部都无法访问
    51. * 属性不假修饰符 默认为公有 public
    52. */
    53. class Person {
    54. public name:string; // 公有属性
    55. protected name: string; // 保护类型
    56. private name: string; // 保护类型
    57. constructor(name: string){ // 构造函数
    58. this.name = name;
    59. }
    60. run():string{
    61. return `狂徒变${this.name}了`
    62. }
    63. }
    64. let fn = new Person('呵呵');
    65. alert(fn.name); //呵呵
    66. alert(fn.name); //类外部无法访问
    67. alert(fn.name); // 类外部无法访问
    68. // 静态属性、静态类