面向对象特性

一、类(class)--TypeScript的核心,使用TypeScript开发时,在部分代码都是写在类里面的。
、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)--参数化的类型,一般用来限制集合的内容
、var workers:Array<Person> = [];
workers[] = new Person("zhangsan");//Person是Person里面的
workers[] = new Employee("zhangsi",'2');//Employee也是Person里面的
workers[] = ;//2不是Person里面的
三、接口(Interface)--用来建立某种代码约定,使得其它开发者在调用某个方法或创建新的类时必须遵循接口所定义的代码约定
、声明参数
interface Person {
name: string;
age: number;
}
class Person {
constructor(public config:Person){ }//接口(第一个使用方式)用作一个方法的参数的类型声明时,当在调用这个方法时,会查传入的参数是否满足接口所声明的所有属性
} var p1 = new Person ({
name: "zhangsan";
age:18
})
、用接口声明方法
interface Animal {
eat()
}
class Sheep implements Animal {//关键字implements表示声明一个类实现Animal这个接口,必须要实现接口的方法
eat() {
console.log('i eat grass')
}
}
四、模块(Module)-- 模块可以帮助开发者将代码分割为可重用的单元。开发者可以自己决定将模块中的哪些资源(类、方法、变量)
暴露出去供外部使用,哪些资源只在模块内使用。
、理解模块--一个文件就是一个模块,就是这么个意思 ,不用想的多么高大尚
文件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)-- 注解为程序的元素(类、方法、变量)加上更直观更明了的说明,这些说明信息与程序 的业务逻辑无关
而是供指定的工具或框架使用的。 、类的举例
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
、有一个工具叫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,这个是专门用来将一个框架变成定义文件用

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

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

    Java语言中的面向对象特性 (总结得不错) [课前思考]  1. 什么是对象?什么是类?什么是包?什么是接口?什么是内部类?  2. 面向对象编程的特性有哪三个?它们各自又有哪些特性?  3. 你知 ...

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

    Javascript面向对象特性实现(封装.继承.接口) Javascript作为弱类型语言,和Java.php等服务端脚本语言相比,拥有极强的灵活性.对于小型的web需求,在编写javascript ...

  3. 浅谈Objective—C中的面向对象特性

    Objective-C世界中的面向对象程序设计 面向对象称程序设计可能是现在最常用的程序设计模式.如何开发实际的程序是存在两个派系的-- 面向对象语言--在过去的几十年中,很多的面向对象语言被发明出来 ...

  4. javascript进阶——面向对象特性

    面向对象的javascript是这门语言被设计出来时就考虑的问题,熟悉OOP编程的概念后,学习不同的语言都会发现不同语言的实现是不同的,javascript的面向对象特性与其他具有面向对象特性的语言的 ...

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

    今天要讲的是C++作用域运算符"::",强制类型转换的扩充,C++中相对于C中malloc和free函数的运算符new和delete,以及C++对C的一个重要扩充:引用(refer ...

  6. .NET面向对象特性之封装

    .NET面向对象特性之封装 面向对象的基本内容由:类.对象.属性.方法.字段构成. 面向对象的三大特性:继承.多态.封装. 关于面向对象的特性很多人都把目光转向了继承.多态和接口,却很少有人提及过封装 ...

  7. .NET面向对象特性之多态

    .NET面向对象特性之多态 前言 上一篇总结了面向对象三大特性之一的继承,再接再厉,这一章继续总结多态.同时把继承中涉及到多态的内容进一步补充扩展.可以说“继承”是多态的根基.但继承主要关注的是“共通 ...

  8. .NET面向对象特性之“继承”

    整体简介 1.理解继承——继承关系图 2.实现继承与接口多继承 3.new. virtual.override方法 4.抽象方法和抽象类的继承 5.继承的本质 6.继承的复用性.扩展性和安全性 7.多 ...

  9. Objective-C的面向对象特性(一)

    Objective-C在c语言的基础上增加了面向对象特性,都有哪些面向对象特性呢? 其中第一个最重要的特性是类和对象的实现. Objective-C软件由许多对象构成,形成一个对象网络,对象之间通过发 ...

随机推荐

  1. 一步一步实现基于Task的Promise库(二)all和any方法的设计和实现

    在上一篇中我们已经初步完成了Task类,如果仅仅是这些,那么没有多大意义,因为网上这类js库有很多,现在我们来些更复杂的使用场景. 如果我们现在有这样一个需求:我们要先读取aa.txt的内容,然后去后 ...

  2. cygwin的安装使用

    Cygwin 是一个用于 Windows 的类 UNIX shell 环境. 它由两个组件组成:一个 UNIX API 库,它模拟 UNIX 操作系统提供的许多特性:以及 Bash shell 的改写 ...

  3. Tomcat源码学习一

    这段时间工作不太忙,所以抽时间学习了TOMCAT, TOMCAT实际就是负责保持TCP连接传递到部署的项目中.浏览器实质就是TCP发送器.将用户的请求封装成TCP发送请求.当然格式是双方协定的.使用的 ...

  4. [Usaco2008 Jan]Cow Contest奶牛的比赛[神奇的FLOYD]

    Description FJ的N(1 <= N <= 100)头奶牛们最近参加了场程序设计竞赛:).在赛场上,奶牛们按1..N依次编号.每头奶牛的编程能力不尽相同,并且没有哪两头奶牛的水平 ...

  5. PHP GD 库 缩略图 添加水印

    class cls_image { var $error_no = 0; var $error_msg = ''; //var $images_dir = IMAGE_DIR; //var $data ...

  6. 企业架构研究总结(28)——TOGAF架构开发方法(ADM)之需求管理阶段

    1.11 需求管理(Requirements Management) 企业架构开发方法各阶段——需求管理 1.11.1 目标 本阶段的目标是定义一个过程,使企业架构的需求可以被识别.存储并与其他架构开 ...

  7. EasyUI项目驱动学习

    下面以一个项目简单介绍easyui的使用,主要包括以下组件 布局面板 - layout 可伸缩面板 - accordion 选项卡 - tabs 控制面板 - panel 窗口 - window 对话 ...

  8. 冒泡动画按钮的简单实现(使用CSS3)

    冒泡动画按钮的简单实现(使用CSS3) 原始的参考文章是 http://tutorialzine.com/2010/10/css3-animated-bubble-buttons/ ,基本原理是利用了 ...

  9. zookeeper学习(上)

    zookeeper学习(上) 在前面的文章里我多次提到zookeeper对于分布式系统开发的重要性,因此对zookeeper的学习是非常必要的.本篇博文主要是讲解zookeeper的安装和zookee ...

  10. Aliexpress API 授权流程整理

    Aliexpress API 授权流程整理   前言 我零零总总用了好几个月的时间,写了一个自用的小程序,从 Aliexpress 上抓取订单的小程序.刚开始写的时候,该API还没有开放,而且没有订单 ...