取自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));
}});