日期:2014-05-16 浏览次数:20417 次
取自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)); }});