【TypeScript学习】—面向对象(四)

简介: 【TypeScript学习】—面向对象(四)

一、面向对象

二、类

三、构造方法

class Dog{
    name:string;
    age:number;
    //构造函数
    constructor(name:string,age:number){
        this.name=name;
        this.age=age;
    }
    bark(){
        //在方法中可以通过this来表示当前调用方法的对象
        //this表示当前对象
        console.log(this.name);
    }
}
const dog=new Dog('旺财',3);
const dog2=new Dog('小白',2);
console.log(dog);
console.log(dog2);
dog.bark();

四、继承

五、super关键字

(function(){
    class Animal{
        name:String;
        constructor(name:string){
            this.name=name
        }
        say(){
            console.log('动物在叫')
        }
    }
    class Dog extends Animal{
        //如果在子类写了构造函数,在子类的构造函数中必须对父类的构造函数进行声明
//
        age:number;
        constructor(name:string,age:number){
            super(name);
            this.age=age;
        }
        say(){
            //在类的方法中super就表示当前类的父类
            super.say();
        }
    }
    const dog=new Dog('旺财',3);
    dog.say();
})();

六、抽象类

(function(){
    // 以abstract开头的都是抽象类
    //抽象类和其他类的区别不大 只是不能用来创建对象
    // 抽象类就是专门用来被继承的类
    //抽象类中可以添加抽象方法
   abstract class Animal{
        name:String;
        constructor(name:string){
            this.name=name
        }
        //定义一个抽象方法
        //  抽象方法使用abstract开头,没有方法体
        //抽象方法只能定义在抽象类中,子类必须对抽象方法进行重写
        abstract say():void;
    }
    class Dog extends Animal{
        say(){
          console.log('汪汪汪');
        }
    }
    const dog=new Dog('旺财');
    dog.say();
})();

七、接口

(function(){
    //描述一个类型的对象
  type myType={
    name:String,
    age:number
  };
  //接口用来定义个类结构,用来定义一个类中应该包含哪些属性和方法
  //同时接口也可以当成类型声明去使用
  interface myInterface{
    name:string;
    age:number;
  }
//   interface myInterface{
//     gender:string;
//   }
//    const obj:myInterface={
//     name:'sss',
//     age:111,
//     gender:'男'
//    };
})();

八、属性的封装

(function(){
 //定义一个表示人的类
 /*
 TS可以在属性前添加属性的修饰符
 public 修饰的属性可以在任意位置访问(修改)默认值
 private 私有属性 私有属性只能在类内部进行访问(修改),
 通过在类中添加方法使得私有属性可以被外部访问
protected 受保护的属性只能在当前类和当前类的子类进行访问
*/
 class Person{
 private  name:string;
 private   age:number;
    constructor(name:string,age:number){
        this.name=name;
        this.age=age;
    }
    /*
    getter方法用来读取属性
    setter方法用来设置属性
    */
    //定义方法  用来获取name属性
    getName(){
        return this.name;
    }
    //定义方法  用来设置name属性
    setName(value:string){
        this.name=value
    }
 }
/*
 现在属性是在对象中设置的,属性可以任意的被修改
 属性可以任意被修改将会导致对象中的数据变得非常不安全
*/
 const p=new Person('cai',18);
 p.setName('lily');
console.log(p.getName())
})();


相关文章
|
7月前
|
JavaScript 前端开发 编译器
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
135 0
|
7月前
|
编解码 JavaScript 前端开发
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
TypeScript【第三方声明文件、自定义声明文件、tsconfig.json文件简介、tsconfig.json 文件结构与配置】(六)-全面详解(学习总结---从入门到深化)
367 0
|
7月前
|
JavaScript
TypeScript【类的继承、访问修饰符、readonly 修饰符、存取器、实例方法与静态方法、实例属性与静态属性、静态属性、抽象类】(三)-全面详解(学习总结---从入门到深化)
TypeScript【类的继承、访问修饰符、readonly 修饰符、存取器、实例方法与静态方法、实例属性与静态属性、静态属性、抽象类】(三)-全面详解(学习总结---从入门到深化)
70 0
|
3月前
|
JavaScript
typeScript基础(1)_原始数据类型学习
本文介绍了TypeScript中的原始数据类型,包括布尔型、数值型、字符串型、`void`、`null`和`undefined`,并展示了如何在TypeScript中声明和使用这些类型。同时,还介绍了如何通过`tsc`命令编译TypeScript文件。
55 4
|
2月前
|
JavaScript 索引
TypeScript(TS)安装指南与基础教程学习全攻略(二)
TypeScript(TS)安装指南与基础教程学习全攻略(二)
59 0
|
2月前
|
JavaScript 前端开发 安全
TypeScript(TS)安装指南与基础教程学习全攻略(一)
TypeScript(TS)安装指南与基础教程学习全攻略(一)
31 0
|
5月前
|
JavaScript 前端开发 安全
如何学习typescript?
【7月更文挑战第9天】1. 了解其为JavaScript超集,增加类型系统和ES6特性,提升代码安全性和效率。 2. 安装 TypeScript 全局 (`npm install -g typescript`),用`tsc -v`验证,或尝试在线的TypeScript Playground。 3. 学习类型注解、基础类型(如number、string、boolean等)、any与unknown,接口和类。 4. 探索高级特性,如泛型、模块&命名空间、装饰器。 5. 实践中巩固知识,如做小项目(如用React或Vue),阅读官方文档,参与社区讨论。持续编码和实践是关键。
42 0
|
7月前
|
JavaScript 前端开发 编译器
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(下)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
62 0
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(下)
|
7月前
|
JavaScript
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)(上)
TypeScript【泛型1、泛型2、声明合并、命名空间 、模块1、模块2、声明文件简介】(五)-全面详解(学习总结---从入门到深化)
79 0
|
7月前
|
JavaScript 前端开发 编译器
TypeScript【可选属性、只读属性、额外的属性检查、函数类型、类类型、继承接口】(四)-全面详解(学习总结---从入门到深化)
TypeScript【可选属性、只读属性、额外的属性检查、函数类型、类类型、继承接口】(四)-全面详解(学习总结---从入门到深化)
78 0