面向对象特性

一、类(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. Apache Httpd Server 2.2升级2.4

    Apache Httpd Server 2.2升级2.4 (2 votes, average: 5.00 out of 5) 2,302 views 2012 年 3 月 20 日Web服务器.服务器 ...

  2. 封装ReaderWriterLockSlim

    封装ReaderWriterLockSlim ReaderWriterLockSlim 类 表示用于管理资源访问的锁定状态,可实现多线程读取或进行独占式写入访问. 使用 ReaderWriterLoc ...

  3. java反射拼接方法名动态执行方法

    近期由于负责项目的一个模块,该模块下有很多分类,每个分类都有一个编码code,这个值是作为一个参数携带过来的.但是每个code确实对应一个方法的. code的值有很多个,自己又不想做ifelse或者s ...

  4. IIS7.5下的httpModules设置

    部署到IIS7.5上httpModule不起作用了,原来是iis7里面的网站应用程序池使用了默认的“集成模式”,所以所有的http请求处理都托管给了 IIS,web.config里面的配置就不起效了. ...

  5. ASP.NET MVC+Knockout+Web API+SignalR

    架构设计(ASP.NET MVC+Knockout+Web API+SignalR) 架构设计(ASP.NET MVC+Knockout+Web API+SignalR) 2014-01-16 18: ...

  6. FormsAuthentication登录ReturnUrl使用绝对路径

    ASP.NET]更简单的方法:FormsAuthentication登录ReturnUrl使用绝对路径   被这个问题困扰多年,今天终于找到了更简单的解决方法,分享一下. 问题场景 假设我们在i.cn ...

  7. 安装升级System.Web.Optimization.dll

    今天在使用backload时,VS提示solution所引用的System.Web.Optimization.dll 版本低,编译不过,于是便删掉,从新添加引用,悲剧的是在添加引用窗口中没找到,在Nu ...

  8. Aspose.cells异步读写操作

    public class AsyncExcel : Excel { static readonly object _objForlock = new object(); //public List&l ...

  9. springMVC3学习(四)--访问静态文件如js,jpg,css

    如果你的DispatcherServlet拦截的是*.do这样的URL,就不存在访问不到静态资源的问题 如果你的DispatcherServlet拦截了"/"所有的请求,那同时对* ...

  10. java中除去字符串(String)中的换行字符(\r \n)

    有时在文本框中输入内容特别是粘贴内容时会出现一些换行符(\r\n),如下,在做字数验证或保存到数据库中时应过滤掉. str.replaceAll("\r|\n","&qu ...