`
qqbwww
  • 浏览: 59320 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

ExtJs在面向对象所作出的努力(1)

阅读更多

取自dojo中国ExtJS视频教程PPT

 

ExtJs在面向对象所作出的努力(1)

支持命名空间

 

命名空间Ext.namespace("Ext.dojochina");

 

定义:对于类的组织定义方式。

代码举例:

Ext.namespace("Ext.dojoChina");

Java对照:

package Ext.dojochina;

 

支持类实例属性

定义:对于一个实例的特征描述

代码举例:

Ext.apply(Ext.dojochina.Person.prototype,{name:'谁'});

Java代码对照

 

....
private name="xxx";
public void setName(String name){
  this.name = name;
}
public void getName(){
  return name;
}

 

 

支持类实例方法

定义:一个对象所具有的功能与动作

代码举例:

...

print:function(){

alert(String.format("姓名:{0},性别:{1}",this.name,this.sex));

}

java代码对照:

 

....
public void print(){
  System.out.print("姓名:%s,性别:%s",this.name,this.sex);
}

 

支持类静态方法

定义:在一个类级别上共享的方法。

代码举例:

 

Ext.dojochina.Person = Ext.emptyFn;

Ext.dojochina.Person.print = function(_name,_sex){
  var _person = new Ext.dojochina.Person();
  _person.name = _name;
  _person.sex = _sex;
  _person.print();
}

Ext的命名空间的实现是对象和对象属性模拟出来的

 java代码实现

 

Person.print(String name,String sex){
  Person person = new Person();
  person.setName(name);
  person.setSex(sex);
  person.print();
}
  

支持构造方法

定义:在初始化一个对象的同时执行的方法

代码举例:

 

Ext.dojochina.Person = function(_cfg){
  Ext.apply(this,_cfg);
}

java代码对照
public Person(String name,String sex){
  this.name = name;
  this.sex = sex;
}
  

支持类继承

定义:对于类的一种扩展形式

代码举例

 

Ext.extend(Ext.dojochina.Student,
                   Ext.dojochina.Person,
                   {job:"学生"});
Ext.dojochina.Person 继承了Ext.dojochina.Person

 java代码举例

 

Class Student extend Person{
  public Student(String name,String sex){
       super(name,sex);
        this.setJob("学生");
   }
}

支持类实例方法重写

定义:子类在继承父类时对其已经存在的方法进行重新定义

代码举例:重写了print方法

 

Ext.extend(Ext.dojochina.Teacher,
	   Ext.dojochina.Person,
	   {print:function(){
		alert(String.format("{0}是一位{1}老师",this.name,this.sex));
	   }});
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics