TypeScript -- 面向对象特性

                                面向对象特性

一、类(class)--TypeScript的核心,使用TypeScript开发时,在部分代码都是写在类里面的。        1、class关键字和类名就可以定义一个类            、 类的访问控制符--有三个,public,private,protected                class Person {                    public name;//public(公有的)访问控制符,其为默认的private eat() {//private为私有的访问打控制符console.log(‘im eating‘);                    }                    protected age;//protected为受保护的}                var p1 = new Person() //类的实例化p1.name = "banane";                p1.eat();            、类的构造函数                class Person {                    constructor(name:string){//这个方法不能在外部调用;只有在实例化时被调用,且只调用一次this.name = name                    }//简写constructor(public name:string){ }(必须写访问控制符)name;                    eat() {                        console.log(this.name);                    }                }             、类的继承--extends,super                    class Employee extends  Person {//继承父类所有的属性和方法constructor(name:string,code:string){//子类的构造函数必须调用父类的构造函数super(name);//super第一个用法--用来调用父类的构造函数this.code = code;                        }                        code :string;                        work() {                            super.eat();//super第二种方法--用来调用父类其它方法,用super.来调的”this.doWork();                        }                        doWork(){                            console.log(‘lai‘)                        }                    }                    var e1 = new Employee(‘name‘);//继承Person的属性var e1.eat()//继承Person的方法

二、泛型(generic)--参数化的类型,一般用来限制集合的内容        1、var workers:Array<Person> = [];             workers[0] = new Person("zhangsan");//Person是Person里面的workers[1] = new Employee("zhangsi",‘2‘);//Employee也是Person里面的workers[2] = 2;//2不是Person里面的三、接口(Interface)--用来建立某种代码约定,使得其它开发者在调用某个方法或创建新的类时必须遵循接口所定义的代码约定        1、声明参数            interface Person {                name: string;                age: number;            }            class Person {                constructor(public  config:Person){

}//接口(第一个使用方式)用作一个方法的参数的类型声明时,当在调用这个方法时,会查传入的参数是否满足接口所声明的所有属性}

var p1 = new Person ({                name: "zhangsan";                age:18})          2、用接口声明方法            interface  Animal {                eat()             }             class Sheep implements Animal {//关键字implements表示声明一个类实现Animal这个接口,必须要实现接口的方法eat() {                        console.log(‘i eat grass‘)                    }             }四、模块(Module)-- 模块可以帮助开发者将代码分割为可重用的单元。开发者可以自己决定将模块中的哪些资源(类、方法、变量)                            暴露出去供外部使用,哪些资源只在模块内使用。            1、理解模块--一个文件就是一个模块,就是这么个意思 ,不用想的多么高大尚                文件1名为:a.ts,内容如下                     export var prop1;                          var prop2;                      export function func1(){

}                      function func2(){

}                      export class Cla1 {

}                      class Cla2 {

}                 文件2名为:b.ts,内容如下                      console.log(prop1)                      func1();                      new Cla1();//上面这些都可以拿到,因为在文件a.ts中用export暴露出来了可以拿到,而其它这个文件拿不到                                            //当然你也可以暴露b.ts文件里的东西,在a.ts文件中就可以做得到了,都可以暴露

五、注解(annotation)-- 注解为程序的元素(类、方法、变量)加上更直观更明了的说明,这些说明信息与程序 的业务逻辑无关                                而是供指定的工具或框架使用的。

1、类的举例                    import {Component} from ‘@angular/core‘;                    @Component({                        selecto:‘app-root‘,                        templateUrl:‘./app.componemt.html‘,                        styleUrls:[‘./app.component.css‘]                    })//@Component这里面就是注解export class AppComponent {                        title = ‘app works!‘;                    }//告诉框架(angulars)怎么如何来处理标准的tpyeScript写出来的一个类如何放在这个框架中使用

六、类型定义文件(*.d.ts)-- 类型定义文件用来开发者在TpyeScript中使用已有的javaScript的工具包 如:jQuery                1、有一个工具叫Typings,这个是专门用来将一个框架变成定义文件用

面向对象特性
一、类(class)--TypeScript的核心,使用TypeScript开发时,在部分代码都是写在类里面的。        1、class关键字和类名就可以定义一个类            、 类的访问控制符--有三个,public,private,protected                class Person {                    public name;//public(公有的)访问控制符,其为默认的                    private eat() {//private为私有的访问打控制符                        console.log(‘im eating‘);                    }                    protected age;//protected为受保护的                }                var p1 = new Person() //类的实例化                p1.name = "banane";                p1.eat();            、类的构造函数                class Person {                    constructor(name:string){//这个方法不能在外部调用;只有在实例化时被调用,且只调用一次                        this.name = name                    }//简写constructor(public name:string){ }(必须写访问控制符)                    name;                    eat() {                        console.log(this.name);                    }                }             、类的继承--extends,super                    class Employee extends  Person {//继承父类所有的属性和方法                        constructor(name:string,code:string){//子类的构造函数必须调用父类的构造函数                            super(name);//super第一个用法--用来调用父类的构造函数                            this.code = code;                        }                        code :string;                        work() {                            super.eat();//super第二种方法--用来调用父类其它方法,用super.来调的”                            this.doWork();                        }                        doWork(){                            console.log(‘lai‘)                        }                    }                    var e1 = new Employee(‘name‘);//继承Person的属性                    var e1.eat()//继承Person的方法
二、泛型(generic)--参数化的类型,一般用来限制集合的内容        1、var workers:Array<Person> = [];             workers[0] = new Person("zhangsan");//Person是Person里面的             workers[1] = new Employee("zhangsi",‘2‘);//Employee也是Person里面的             workers[2] = 2;//2不是Person里面的三、接口(Interface)--用来建立某种代码约定,使得其它开发者在调用某个方法或创建新的类时必须遵循接口所定义的代码约定        1、声明参数            interface Person {                name: string;                age: number;            }            class Person {                constructor(public  config:Person){
                }//接口(第一个使用方式)用作一个方法的参数的类型声明时,当在调用这个方法时,会查传入的参数是否满足接口所声明的所有属性            }
            var p1 = new Person ({                name: "zhangsan";                age:18            })          2、用接口声明方法            interface  Animal {                eat()             }             class Sheep implements Animal {//关键字implements表示声明一个类实现Animal这个接口,必须要实现接口的方法                    eat() {                        console.log(‘i eat grass‘)                    }             }四、模块(Module)-- 模块可以帮助开发者将代码分割为可重用的单元。开发者可以自己决定将模块中的哪些资源(类、方法、变量)                            暴露出去供外部使用,哪些资源只在模块内使用。            1、理解模块--一个文件就是一个模块,就是这么个意思 ,不用想的多么高大尚                文件1名为:a.ts,内容如下                     export var prop1;                          var prop2;                      export function func1(){
                      }                      function func2(){
                      }                      export class Cla1 {
                      }                      class Cla2 {
                      }                 文件2名为:b.ts,内容如下                      console.log(prop1)                      func1();                      new Cla1();//上面这些都可以拿到,因为在文件a.ts中用export暴露出来了可以拿到,而其它这个文件拿不到                                            //当然你也可以暴露b.ts文件里的东西,在a.ts文件中就可以做得到了,都可以暴露

五、注解(annotation)-- 注解为程序的元素(类、方法、变量)加上更直观更明了的说明,这些说明信息与程序 的业务逻辑无关                                而是供指定的工具或框架使用的。
               1、类的举例                    import {Component} from ‘@angular/core‘;                    @Component({                        selecto:‘app-root‘,                        templateUrl:‘./app.componemt.html‘,                        styleUrls:[‘./app.component.css‘]                    })//@Component这里面就是注解                     export class AppComponent {                        title = ‘app works!‘;                    }//告诉框架(angulars)怎么如何来处理标准的tpyeScript写出来的一个类如何放在这个框架中使用
六、类型定义文件(*.d.ts)-- 类型定义文件用来开发者在TpyeScript中使用已有的javaScript的工具包 如:jQuery                1、有一个工具叫Typings,这个是专门用来将一个框架变成定义文件用

时间: 2024-10-12 19:26:47

TypeScript -- 面向对象特性的相关文章

Javascript面向对象特性实现封装、继承、接口详细案例——进级高手篇

Javascript面向对象特性实现(封装.继承.接口) Javascript作为弱类型语言,和Java.php等服务端脚本语言相比,拥有极强的灵活性.对于小型的web需求,在编写javascript时,可以选择面向过程的方式编程,显得高效:但在实际工作中,遇到的项目需求和框架较大的情况下,选择面向对象的方式编程显得尤其重要,Javascript原生语法中没有提供表述面向对象语言特性的关键字和语法(如extends.implement).为了实现这些面向对象的特性,需要额外编写一些代码,如下.

Java语言中的面向对象特性

1.1 面向对象的基本概念  面向对象的基本思想  面向对象是一种新兴的程序设计方法,或者是一种新的程序设计规范(paradigm),其基本思想是使用对象.类.继承.封装.消息等基本概念来进行程序设计.从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式.开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域.其应用领域不仅仅是软件,还有计算机体系结构和人工智能等. 1. 对象的基本概念  对象是系统中用来描述客观事物的一个实体

PHP中面向对象特性实现

PHP近些年来成为全球最流行的网页编程语言,该语言以弱类型.易兼容.门槛低.开发快.功能强著称,且听别人这么说,我在有了c和c#基础后学习PHP过程中也并不是很顺利,该语言的一些特殊的语法规则又是让我混淆,不过不得不说,它让编程变得更加容易了.大家可能学习过C++或C#,应该知道面向对象的三大特征:封装性.继承性.多态性.其实任何一门编程语言,除了语言特有的API不同外,语言本身的编程思想和理念是想通的.现在,就让我带你走进PHP中面向对象特性的实现方式. 首先必须明白PHP为面向对象设定的6个

Java语言中的面向对象特性总结

[课前思考]  1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类?  2. 面向对象编程的特性有哪三个?它们各自又有哪些特性?  3. 你知道java语言在面向对象编程方面有何独特的特点吗? 难点:  1. 理解方法重载和方法重写,不要混淆了两者的使用.  2. 类变量和类方法的使用.  3. 接口的使用. 3.1 面向对象技术基础 http://hovertree.com/menu/java/ 3.1.1 面向对象的基本概念  面向对象的基本思想  面向对象是一种新兴的程序设计方

C++对C语言的非面向对象特性扩充(3)

今天要讲的是C++作用域运算符"::",强制类型转换的扩充,C++中相对于C中malloc和free函数的运算符new和delete,以及C++对C的一个重要扩充:引用(reference):这也是C++对C语言的非面向对象特性扩充系列的最后一节. 1.如果有两个同名变量,一个是全局的,一个是局部的,那么局部的变量在其作用域拥有较高的优先权,全局变量则被屏蔽.那如果我希望在局部变量的作用域里使用全局变量怎么办,这时就要用到::作用域运算符了.比如: 1 #include<iost

javascript 的面向对象特性参考

最近在看用javascript+css实现rich client.javascript 也是一个蛮有意思的语言.特别是其面向对象的实现和其他“标准”的OO launguage有很大的不同.但是,都是动态语言,我还是觉得它比起python语法和库都差得太远.可是没有explorer支持python开发 啊...:( 这是我学习javascript中面向对象特性的一点总结.希望对具有其他语言的面向对象设计经验的朋友理解javascript的OO有所帮助.我具有c++,java和python的面向对象

面向对象特性一

面向对象特性 封装 定义:隐藏对象得属性和实现细节, 仅仅对外提供公共访问得方法 好处: 将变化隔离, 便于使用: 提高重用性,安全性. 原则:将不需要对外提供得内容隐藏起来, 把属性隐藏起来,提供公用得方法对其访问. this: 式对象得引用代表对象.作用是减少命名得冲突. static:是静态修饰符,是静态关键字. 特点: 通过它实现对象之间数据得共享 可以通过类名直接调用 静态随着类加载而加载, 它优于对象存在 注意点: 某个对象需要特别持有得数据是不能够被静态修饰否则, 共享 因为静态方

【游戏开发】在Lua中实现面向对象特性——模拟类、继承、多态

一.简介 Lua是一门非常强大.非常灵活的脚本语言,自它从发明以来,无数的游戏使用了Lua作为开发语言.但是作为一款脚本语言,Lua也有着自己的不足,那就是它本身并没有提供面向对象的特性,而游戏开发是一项庞大复杂的工程,如果没有面向对象功能势必会为开发带来一定的不便.不过幸好Lua中有table这样强大的数据结构,利用它再结合元表(metatable),我们便可以很方便地在Lua中模拟出类.继承和多态等面向对象编程具有的特性. 二.前提知识 按照惯例,我们还是先来熟悉一下必要的前提知识,以便方便

TypeScript入门知识三(面向对象特性)

1.类(class) 类是TypeScript的核心,使用TypeScript开发时,大部分代码都是写在类里面的. 类的定义 ,属性控制符 public(允许外部访问,也是默认的方式),private(私有,只能在类的内部访问),protected(受保护的,可以在类的内部和子类中访问) class Person { public name:string; age:number; eat (){ console.log("输出"): } } 类的实例化,通过new关键字 var p1