ExtJs 面向对象 特性

1.命名空間:
	對類的定義方式
Extjs 代碼:
			Ext.namespace("org.bestupon");
java代碼:
 			package org.bestupon
 		
實例:	
Ext.namespace("Ext.bestupon");
Ext.bestupon.Person = Ext.emptyFn;
/**
* Ext.bestupon.Person = function() {}
**/


2.類屬性
/*
 * js 的類屬性
		相當于Java代碼
		private String name;
		public String getName() {
			return this.name;
		}
		public void setName(String name) {
			this.name = name;
		}
		private String sex;
		
		public String getSex() {
			return this.sex;
		}
		public void setSex(String sex) {
			this.sex = sex;
		}
*/
 實例:
 ///js 代碼
 Ext.apply(Ext.bestupon.Person.prototype,{
 						name :"BestUpon"
 					});
 	java代碼:
 	package Ext.bestupon 
 	class Person{
 		private String name = "BestUpon";
 		public String getName() {
 			return this.name;
 		}
 		
 		public void setName(String name) {
 			this.name = name;
 		}
 	}				

/**
 * 客戶端代碼要寫的越少越好,越多的話,要占用下載時間,
 */
 
 3.類實例
 ExtJs代碼
 fn:function(){
 		alert(String.format("姓名:{0},性別:{1}",this.name,this.sex));
 }
 Java代碼:
   public void fn() {
   	System.out.print("姓名:%s,性別:%s",this.name,this.sex);
   }
   
  實例:
  Ext.apply(Ext.bestupon.Person.prototype,{
  					name:"",
  					sex:"",
  					fn:function() {
  						alert(String.format("姓名:{0},性別:{1}",this.name,this.sex));
  					}
  }); 
 
 
 4.類靜態方法:
 
 在一個類級別上共享的方法
 實例:
 Extjs 代碼
 Ext.bestupon.Person.fn = function(_name,_sex) {
 			var _person = new Ext.bestupon.Person();
 			_person.name = _name;
 			_person.sex = _sex;
 			_person.fn();//fn的實例
 		
 }
 Java代碼:
 Person.fn(String name,String sex) {
 	Persong person = new Person();
 	person.setName(name);
 	person.setSex(sex);
 	person.fn();
 }
 
 
 頁面調用:Ext.bestupon.Person("姓名","性別");
 
 閑言碎語:工程話代碼;
 
 5.類的構造方法
 在初始話一個對象的同時執行的方法
 代碼:
 	Ext.bestupon.Person = function(_cfg) {
 		Ext.apply(this,_cfg);
 	}
 	Java代碼:
 	Ext.bestupon.Person(String name,String sex){
 		this.name = name;
 		this.sex = sex;
 	}
 	
 	實例:
 	Ext.bestupon.Person = function(_cfg) {
 		Ext.apply(this,_cfg);
 	};
 	Ext.bestupon.Person.fn = function(_name,_sex) {
 		var _person = new Ext.bestupon.Person({name:_name,sex:_sex});
 		_person.print();
 	}
 	Ext.apply(Ext.bestupon.Person.prototype,{
 		fn:function() {
 			alert(String.format("姓名:{0},性別:{1}",this.name,this.sex));
 		}
 	})
 	頁面調用:Ext.bestupon.Person("姓名","性別");
 	
 	6.類繼承
 	Ext.extend(當前類,被繼承的類,{屬性:屬性值});
 	
 	Ext.extend(Ext.bestupon.Student,Ext.bestupon.Person,{
 		job:"學生"
 	});
 	
 	Java 代碼:
 	
 	class Student extend Person{
 		public Student(String name,String sex){
 			super(name,sex);
 			this.setJob("學生");//this.job = "學生"
 		}
 	}
 	
7.父類方法的重寫
/**
 * 單純的繼承關系 
 * 重寫父類的方法
 * @class Ext.bestupon.Student
 * @extends Ext.bestupon.Person
 */
Ext.extend(Ext.bestupon.StudentReloadFn,Ext.bestupon.Person,{
	job:"学生",
	print:function() {
		alert(String.format("{0}是一位{1}{2}",this.name,this.sex,this.job));
	}
});

Java代碼:
class StudentReloadFn extends Person {
		public StudentReloadFn (String name,String sex){
		 			super(name,sex);
		 			this.setJob("學生");//this.job = "學生"
		}
	 public void fn() {
   	System.out.print("%s是一位%s學生",this.name,this.sex);
   }
}

8.空間的別名
要求,別名的第一個字母需要大寫

實例:
Ext.namespace(Ext.bestupon);

別名:Bu = Ext.bestupon

9.類別名:
類別名全是大寫:
PS = Ext.bestupon.Person


10.事件隊列
對于外界影響的反應
實現:Ext.util.Obervable類支持
 

你可能感兴趣的:(java,ext,prototype)