🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: cn.bbs.comp.lang.java
Article #22079

Java���˼��---��11�� ���������ͼ�

#22079
From: �˺�2��
Date: Tue, 28 Oct 2003 01:46
312 lines
39301 bytes
���������ͼ�RTTI���ĸ�������dz��򵥡�������ֻ�л����͵�һ�����ʱ����
�����ж�һ���������ȷ���͡�
Ȼ���RTTI����Ҫ��¶�������������������Ȥ�����Ҿ�������������ģ�������
�����ѳ���Ĺ���������ʽ���������档
���½������������Java�������ڼ���Ҷ��������Ϣ������Ҫ��ȡ������ʽ��һ����
����ͳ��RTTI����ٶ��������ڱ����������ӵ���������ͣ���һ����Java1.1���еġ�
���䡱���ƣ���������������ڶ�����������Ϣ���������ۡ���ͳ����RTTI�������۷�
�����⡣
11.1 ��RTTI����Ҫ
�뿼�����������Ϥ����ṹ���ӣ��������˶����ԡ�����������Shape�࣬���ر�����
������������Circle��Square��Triangle��
516ҳͼ
����һ�����͵���ṹʾ��ͼ������λ�ڶ�����������������չ����������̵Ļ�
��Ŀ�����ô���������ƻ����ͣ�������Shape���ľ�����Լ���������һ������
������Rhomboid����Shape�����Ӷ�Գ��������չ����ô����Ӱ�쵽ԭ���Ĵ��롣
����������У�Shape�ӿ��еĶ�̬�󶨷�����draw()�����Կͻ�����ԱҪ������ͨ��һ
����ͨShape������draw()��draw()�������������ﶼ�ᱻ���ǡ�������������һ����
̬�󶨷��������Լ�ʹͨ��һ����ͨ��Shape��������Ҳ�б��ֳ���ȷ����Ϊ������
�Ƕ����Ե����á�
���ԣ�����һ�㴴��һ���ض��Ķ���Circle��Square������Triangle��������������
�͵�һ��Shape�����Զ�����������ͣ����Ժ���ڳ����ʣ�ಿ��ʹ������Shape���
��
��Ϊ�Զ����Ժ��������͵�һ����Ҫ�عˣ���������������Ϊ�������ӱ��루��ִ����
������ʱ�������ѣ���ο���3��3.1.2С�ڡ���ֵ������
516-517ҳ����
����ɱ����һ��interface���ӿڣ���һ��abstract�����������һ����ͨ�ࡣ��
��Shapeû������ij�Ա���༴�ж���ij�Ա�������Ҳ����������Ǵ�����һ�������S
hape�����������ʺϺ������ı�﷽ʽ������һ���ӿڡ��������ڲ�������������
Щabstract�ؼ��֣������������Ҳ�Եø�Ϊ��ˬ��
ÿ�������඼�����˻���draw���������Ծ��в�ͬ����Ϊ����main()�д������ض���
�͵�Shape��Ȼ������ӵ�һ��Vector�����������������ͷ���ĵط�����ΪVectorֻ
�����˶�������Java�е����ж����������������⣩���Ƕ�������VectorҲ��
����Shape���󡣵�������������Object�Ĺ���У��κ��������Ϣ���ᶪʧ����������
���������Ǽ�����״��һ��ʵ����Vector��˵������ֻ��Object��
��nextElement()��һ��Ԫ�ش�Vector��ȡ������ʱ����������΢��Щ���ӡ�����V
ectorֻ����Object������ nextElement()����Ȼ�ز���һ��Object�������֪����
ʵ���Ǹ�Shape������ϣ��Shape��Ϣ�����Ǹ�����������Ҫ�ô�ͳ��"(Shape)
"��ʽ���ͳ�һ��Shape������RTTI������ʽ����Ϊ��Java�У��������Ͷ���������
�ڼ�õ���飬��ȷ������ȷ�ԡ�������RTTI���������ڣ��������ڣ���������ͻ��
����
��Ŀǰ��������£�RTTI����ֻʵ����һ���֣�Object���ͳ�Shape���������ͳ�Cir
cle��Square����Triangle��������������Ŀǰ�ܹ��϶���Ψһ��ʵ����Vector������
������״����֪���ǵľ�������ڱ����ڼ䣬���ǿ϶��������������Լ��Ĺ���
���ڱ����ڼ䣬ȴ��ͨ���������϶���һ�㡣
���ڵľ�����ɶ����Կ��ƣ����һ�ΪShape�����ʵ��ķ������Ա��жϾ������ṩ
Circle��Square�������ṩ��Triangle��������һ������£����뱣֤���ö����Է���
����Ϊ����ϣ���Լ��Ĵ��뾡������֪��һЩ�����ľ��������йص������ֻ��ע��
������ijһ����������� Shape���ij�����Ϣ�ϡ�ֻ���������ǵĴ���Ÿ���ʵ��
������Լ��޸ġ�����˵��������������������Ƶ�һ������Ŀ�ꡣ
Ȼ��������һ������ij���������⣬ֻ����֪���������ȷ�����ͺ󣬲�������
�׵ؽ��������⣬���ʱ���ָ���ô���أ��ٸ�������˵��������ʱ�������Լ�����
����ijһ�������͵ļ�����״��������Σ�ȫ�������ɫ���Ա�ͻ����ʾ���ǣ�������
�ҳ���һ���͵�������״����ʱ��Ҫ�õ�RTTI�����������ѯij��Shape������õ�׼ȷ
������ʲô��
11.1.1 Class����
Ϊ���RTTI��Java����ι��������ȱ����˽�������Ϣ������������α�ʾ�ġ���ʱҪ
�õ�һ����Ϊ��Class���󡱵�������ʽ�Ķ������а��������йص���Ϣ����ʱҲ��
�������Ԫ�ࡱ������ʵ�ϣ�����Ҫ��Class���󴴽�����ij�����ȫ�������桱����
ͨ������
������Ϊ����һ���ֵ�ÿ���࣬���Ƕ���һ��Class���󡣻���֮��ÿ��дһ������ʱ��
ͬʱҲ�ᴴ��һ��Class���󣨸�ǡ����˵���DZ�����һ����ȫͬ���.class�ļ��У���
�������ڣ�һ������������Ǹ����һ����������ִ�г����Java�����JVM������
�ͻ����Ǹ����͵�Class�����Ƿ��Ѿ����롣����δ���룬JVM�ͻ����ͬ���.class
�ļ������������롣����Java��������ʱ��������ȫ����ģ���һ������ഫͳ���Զ�
��ͬ��
һ���Ǹ����͵�Class��������ڴ棬��������һ���͵����ж���
������˵���������������һ����Ի󣬻��߲�û������������������ʾ�������
�����ṩ��һ���İ���
519-520ҳ����
��ÿ������˵��Candy��Gum��Cookie�������Ƕ���һ��static�Ӿ䣬���������״�����
ʱִ�С���Ӧ����Ϣ���ӡ��������������������ʲôʱ����еġ���main()�У�����
�Ĵ�������λ�ڴ�ӡ���֮�䣬�Ա��������ʱ�䡣
�ر���Ȥ��һ���ǣ�
Class.forName("Gum");
�÷�����Class����ȫ��Class������ģ���һ��static��Ա����Class����������κζ�
�������Ƶģ������ܹ���ȡ�Ϳ������һ�����װ��ģ����Ǹ�����µģ���Ϊ��
��Class��һ�����һ���취��ʹ��forName()�����������ȡ�ð���Ŀ�����ı���
�ֵ�һ��String ��ע��ƴд�ʹ�Сд������󷵻ص���һ��Class���
�ó�����ij��JVM�е�������£�
520ҳ�г���
���Կ�����ÿ��Classֻ��������Ҫ��ʱ��Ż����룬��static��ʼ����������������ʱ
ִ�еġ�
�dz���Ȥ���ǣ���һ��JVM������������һ�����ӣ�
520ҳ�³���
����JVMͨ����main()�еĴ��룬�Ѿ�Ԥ�⵽�˶�Candy��Cookie����Ҫ����ȴ������
Gum����Ϊ����ͨ���forName()��һ�����ô����ģ�����ͨ�����͵�new���á�����
���JVMҲ�ﵽ������ϣ���Ч����Ϊȷʵ����������Ҫ֮ǰ������Щ�࣬��ȴ���ܿ�
�����չʾ����Ϊ�ٷ�֮����ȷ��
1. ����
��Java 1.1�У����Բ��õڶ��ַ�ʽ������Class����ľ��ʹ�á����ǡ���������
������˵��������������������
Gum.class;
������������Ӽ򵥣����Ҹ�ȫ����Ϊ����ڱ����ڼ�õ���顣������ȡ���˶Է�
�����õ���Ҫ������ִ�е�Ч��Ҳ���ߡ�
���Dz�������Ӧ������ͨ�࣬Ҳ����Ӧ���ڽӿڡ������Լ���������͡��������
�����ÿ�ֻ�������͵ķ�װ���࣬�����һ����ΪTYPE�ı�׼�ֶΡ�TYPE�ֶε�
������Ϊ��صĻ�������Ͳ���Class�����һ�����������ʾ��
�����ȼ��ڡ���
521ҳ�����
11.1.2 ����ǰ�ļ��
���Ϊֹ��������֪��RTTI��ʽ������
(1) �������ͣ���"(Shape)"������RTTIȷ�����͵���ȷ�ԣ���������һ��ʧ�ܵ����ͺ�
����һ��ClassCastExceptionΥ��
(2) ���������͵�Class���󡣿ɲ�ѯClass���󣬻�ȡ���õ����������ϡ�
��C++�У������"(Shape)"���Ͳ���ִ��RTTI����ֻ�Ǽ򵥵ظ��߱���������������
���ʹ��?��JavaҪִ�����ͼ�飬��ͨ�����������Ͱ�ȫ�����������͡�֮���ԽС�
�������͡�����������ֲ�ṹ����ʷ���з�ʽ��ɵġ�����һ��Circle��Բ�����͵�
һ��Shape��������״�����ͽ����������ͣ���ΪԲֻ�Ǽ�����״��һ���Ӽ�����֮����
��Shape������Circle���ͽ����������͡�Ȼ����������ȷ֪��CircleҲ��һ�� Sh
ape�����Ա������ܹ��Զ��������ͣ���ȴ���ܱ�֤һ��Shape�϶���һ��Circle�����
���������������Զ��������ͣ������ȷָ��һ����������͡�
RTTI��Java�д���������ʽ���ؼ���instanceof�������Ƕ����Dz���һ���ض����͵�ʵ
��Instance����ʵ�����᷵��һ������ֵ���Ա����������ʽʹ�ã���������
����
if(x instanceof Dog)
((Dog)x).bark();
��x������һ��Dogǰ�������if���������x�Ƿ������Dog�ࡣ��������ǰ�����
û��������Ϣ���Ը����Լ���������ͣ���ôinstanceof��ʹ���Ƿdz���Ҫ�ġ�������
��õ�һ��ClassCastExceptionΥ��
������һ��������Dz���һ�����ͣ�����Ҫ�����ɫ������Σ����������������ȴ��
ʾ�������instanceof��dz����ж���
522-524ҳ����
��Java 1.0�У���instanceof��һ���Ƚ�С�����ƣ�ֻ�ɽ�����һ������������ͱȽ�
������ͬClass�������Աȡ������������У���ҿ��ܾ��ý�������Щinstanceof���ʽ
д�����Ǽ����鷳�����顣ʵ���������������Java 1.0�У�û�а취����һ����
�Զ����С������ܴ���Class��һ��Vector���ٽ�����֮�Ƚϡ�������ջ���ʶ�������
д�������ڶ��instanceof���ʽ�������ƶ����ܳ������⡣
��Ȼ���������ֻ��һ�����롪�������ÿ�����������һ��static��ݳ�Ա��Ȼ����
��������������ֵ���Ա���ټ����д����ʱ����ҿ��������Լ�ӵ�����Դ�����
Ȩ���ܹ����ɸĶ�������ʵ���������������������RTTI�Ե��ر𷽱㡣
1. ʹ������
PetCount.javaʾ�����Java 1.1��������дһ�顣�õ��Ľ���Եø����ȷ�׶���
524-526ҳ����
�����typenames�������������ѱ�ɾ���Ϊ��Class�������ȡ������ơ�ע��
Ϊ�˶�������Ĺ��������磬������Getbil������c11.petcount2.Getbil�������Ѱ�
���˰�����֡�ҲҪע��ϵͳ���ܹ������ͽӿڵġ�
Ҳ���Կ�����petTypes�Ĵ���ģ�鲻��Ҫ��һ��try���Χ��������Ϊ����ڱ����ڵõ�
��飬������Class.forName()�����������κ�Υ��
Pet��̬�������Ժ󣬿��Կ�����������ѵõ������ƣ�λ��1��petTypes.length֮�䣬
���Ҳ������㡣��������������� Pet.class������һ����ͨ��Pet������ܲ�������
����Ȥ��Ȼ������Pet.class��petTypes��һ���֣���������Pet��������������
����
2. ��̬��instanceof
Java 1.1ΪClass�������isInstance��������������Զ�̬����instanceof������
��Java 1.0�У�ֻ�ܾ�̬�ص��������ǰ��ָ����������ˣ�������Щ���˵�in
stanceof��䶼���Դ�PetCount������ɾȥ�ˡ�������ʾ��
526-528ҳ����
���Կ�����Java 1.1��isInstance()������ȡ���˶�instanceof���ʽ����Ҫ�����⣬
��Ҳ��ζ��һ��Ҫ����������ͳ��ֻ��򵥵ظı�petTypes���鼴�ɣ�����Ķ���
��ʣ��IJ��֣�����ʹ��instanceofʱȴ�DZ���ģ���
11.2 RTTI�﷨
Java��Class����ʵ���Լ���RTTI���ܡ�����������Ҫ����ֻ�������������һЩ������
Class��Ҳ�ṩ�����������ʽ���Է�������ʹ��RTTI��
���ȱ�����ָ���ʵ�Class����ĵ�һ��������ǰ����ʾ������һ���취����һ
���ִ��Լ�Class.forName()���������Ƿdz�����ģ���Ϊ����Ҫ�������͵�һ��������
��ȡClass���Ȼ������Լ�����Ȥ�����ͣ�������������һ��������ôΪ��ȡ
��Class���ɵ������� Object����һ���ֵ�һ��������getClass()����������Ƿ�
��һ���ض���Class���������ʾ�����ʵ�����͡�Class�ṩ�˼�����Ȥ�ҽ�Ϊ����
�ķ�����������ɿ�����
528-529ҳ����
���п��Կ�����class FancyToy�൱���ӣ���Ϊ���Toy�м̳У���ʵ����HasBatterie
s��Waterproof�Լ�ShootsThings�Ľӿڡ��� main()�д�����һ��Class�����λ��
��Ӧtry���ڵ�forName()��ʼ����FancyToy��
Class.getInterfaces�����᷵��Class�����һ�����飬���ڱ�ʾ����Class�����ڵ�
�ӿڡ�
����һ��Class����Ҳ������getSuperclass()��ѯ�ö����ֱ�ӻ�����ʲô����Ȼ
���������᷵��һ��Class������������һ���IJ�ѯ������ζ���������ڵ�ʱ����
ȫ�л����鵽����������νṹ��
���ӱ��濴��Class��newInstance()�����ƺ��ǿ�¡��clone()��һ���������һ���ֶ�
���������������ġ����� newInstance()�����ǿ���û���ֳɶ��󹩡���¡�������
���½�һ�����󡣾�������ij�����ʾ������ʱû��Toy����ֻ��cy������y�� C
lass�����һ��������������ʵ�֡����⹹������������֮�����DZ���������
��֪�����׼ȷ������ʲô��������������ζ���ȷ�ش����Լ����������������У�cy
ֻ��һ��Class�������ڼ䲢��֪����һ����������Ϣ��һ���½���һ��ʵ��󣬿�
�Եõ�Object����Ǹ����ָ��һ�� Toy���󡣵�Ȼ�����Ҫ����Object�ܹ�����
�������κ���Ϣ����ȥ�����ȱ������һЩ�����о����ٽ������͡�������⣬��newI
nstance ()�������������һ��Ĭ�Ϲ�������û�а취��newInstance()����ӵ�з�Ĭ��
�������Ķ���������Java 1.0�п��ܴ���һЩ���ơ�Ȼ��Java 1.1�ġ����䡱API��
��һ�����ۣ�ȴ�������Ƕ�̬��ʹ��������κι�������
�����е����һ��������printInfo()����ȡ��һ��Class���ͨ��getName()������
���֣�����interface()�������Dz���һ���ӿڡ�
�ó����������£�
530ҳ����
��������Class�������Ǽ����ܽ�һ�����������ʮ�˴���������
11.3 ���䣺����������Ϣ
���֪��һ�������׼ȷ���ͣ�RTTI��������ǵ��顣��ȴ��һ�����ƣ����ͱ�����
�ڱ����ڼ���֪�ģ�����Ͳ�����RTTI���������޷�չ����һ���Ĺ���������֮��
������������ȷ֪��RTTIҪ����������ࡣ
�ӱ��濴�����ƺ�������һ���ܴ�����ƣ��������õ�����һ�������Լ�����ռ��ڵ�
����ľ����ʱ�ֻ������أ���ʵ�ϣ�������༴ʹ�ڱ����ڼ�Ҳ���������ǵij���
ʹ�á����磬�������ǴӴ��̻���������һϵ���ֽڣ����ұ���֪��Щ�ֽڴ��һ��
�ࡣ���ڱ������ڱ������ʱ����֪���Ǹ��������������������˳���ʹ�������
�أ�
�ڴ�ͳ�ij�����ƻ����У�������������ĸ��ʻ����С����������ת�Ƶ�һ����ģ��
��ı�������У�ȴ��������������Ը߶����ӡ���һ��Ҫע����ǻ�������ij���
��ơ������ֻ����£������á�����Ӧ�ÿ�������RAD��ģ��������������Ŀ��RADһ��
����Ӧ�ó��򹹽��������ڽ��ġ����DZ��Ƴ����һ�ֿ���;��������Ļ���Դ������
ʽ���֣����ɽ���?ͬ�����ͼ����ҷ�������С����ͨ���趨��Щ��������Ի�
��ֵ��������ȷ�����á�����ڼ������Ҫ���κ�������ǿ��ԡ���ʾ���ģ���������
�ɻ�����ǵ�ʵ����Щ���ҲҪ��ʾ���Լ���һ�������ݣ��������Ա��ȡ������
����ֵ�����⣬���ڿ���GUI�¼�����������ʾ������Ӧ�ķ����йص���Ϣ���Ա�RAD
�����������Ա���Լ��Ĵ��븲����Щ���¼���ķ����������䡱�ṩ��һ�������
���ƣ����������õķ�������������ͨ��Java Beans����13�½���ϸ���ܣ���
Java 1.1Ϊ���ֻ�������ij�������ṩ��һ����ṹ��
�������ڲ�ѯ����Ϣ����һ��ԭ������ͨ�����紴����ִ��λ��Զ��ϵͳ�ϵĶ�����
�ͽ�����Զ�̷������á���RMI����������Java���򣨰汾1.1���ϣ�ʹ���ɶ�̨������
����ֲ��Ķ������ֶ���ķֲ��������ɶ෽���ԭ������ģ�����Ҫ��һ��������
���͵Ĺ������������зָ�ô��ڿ���״̬����������ֵ����ֹ������Ӷ�ӿ촦
���ȡ�ijЩ����£�������Ҫ�����ڿ����ض��������񣨱�����ͻ����������ܹ�
�еġ��������򡱣��Ĵ��������һ̨����Ļ����ϣ�ʹ��̨������Ϊ����Щ�ж�����
������һ��ͨ�ô�������ҿ��Է�����޸��������ʹ���ϵͳ�ڵ����з������
Ӱ�죨����һ���ر����õ����˼·����Ϊ�����Ƕ������ڵģ������������޸������
�����ֲ�ʽ����Ҳ�ܸ��ֵط���ijЩר��Ӳ�������ã������ر��ó�ִ��һЩ�ض���
���񡪡����������ת �������Գ�������˵ȴ�Ե�̫���Ż���̫�����ˡ�
��Java 1.1�У�Class�ࣨ����ǰ��������ϸ�������õ�����չ������֧�֡����䡱�ĸ�
����Field��Method�Լ�Constructor�ࣨÿ����ʵ����Memberinterface������Ա��
�ڣ������Ƕ�������һ���⣺java.lang.reflect����Щ���͵Ķ�����JVM�������ڴ�
���ģ����ڴ��δ֪�����Ӧ�ij�Ա���������ù����������¶�����get()��set()
������ȡ���޸���Field����������ֶΣ��Լ��� invoke()����������Method�������
�ķ��������⣬���ǿɵ��÷���getFields()��getMethods()�� getConstructors()����
�𷵻����ڱ�ʾ�ֶΡ������Լ��������Ķ������飨�������ĵ��У������ҵ���Class��
�йصĸ������ϣ�����ˣ�������������Ϣ���������ڱ�����Ľ�¶���������ڱ�
���ڼ䲻��Ҫ֪���κζ�����
���Ҫ��ʶ�ĺ���Ҫ��һ���ǡ����䡱��û��ʲô����ĵط���ͨ���䡱ͬһ��δ
֪���͵Ķ���򽻵�ʱ��JVMֻ�Ǽ򵥵ؼ���Ǹ����󣬲�������������ĸ��ض����ࣨ
������ǰ��RTTI����������֮���������������κ�����֮ǰ��Class�����������
����ˣ����������ض����͵�.class�ļ���������JVM���ã�Ҫô�ڱ��ػ����ڣ�Ҫô��
��ͨ������ȡ�ã�������RTTI�͡����䡱֮��Ψһ�������Ƕ�RTTI��˵������������
�����ڴ򿪺ͼ��. class�ļ������仰˵�����ǿ����á���ͨ����ʽ����һ���������
�з��������ԡ����䡱��˵��.class�ļ��ڱ����ڼ��Dz���ʹ�õģ������������ڻ���
�򿪺ͼ�顣
11.3.1 һ���෽����ȡ��
������Ҫֱ��ʹ�÷��乤�ߣ�֮�������������ṩ���ǣ�������Ϊ��֧������Java����
������������л�����10�½��ܣ���Java Beans�Լ�RMI�����º�����ܣ������ǣ�����
���ʱ����Ȼ��Ҫ��̬��ȡ��һ�����йص����ϡ������ر����õĹ��߱���һ���෽��
��ȡ��������ǰ��ָ���������������ඨ��Դ����������ĵ���ֻ�ܿ������Ǹ��ඨ
���б�����򸲸ǵķ������������ﻹ�д��������ò��������˵��ǣ������䡱����
����һ�㣬������дһ���򵥵Ĺ��ߣ������Զ�չʾ����ӿڡ�������Ǿ���ij���

533-534ҳ����
Class����getMethods()��getConstructors()���Էֱ𷵻�Method��Constructor��һ��
���顣ÿ���඼�ṩ�˽�һ���ķ������ɽ�������������ķ��������֡������Լ���
��ֵ����Ҳ����������һ��ֻʹ��toString()�����һ����������ǩ����ִ�����
��ʣ��IJ���ֻ��������ȡ��������Ϣ���ж��ض���ǩ���Ƿ������ǵ�Ŀ���ִ����
ʹ��indexOf()��������ӡ�����
������õ��ˡ����䡱��������Ϊ��Class.forName()����Ľ�����ڱ����ڼ��֪��
�������з���ǩ����Ϣ�����������ڼ���ȡ�����о�һ�������ĵ��й��ڡ����䡱��Re
flection�����Dz������֣��ͻᷢ�������ṩ���㹻���֧�֣��ɶ�һ����������ȫδ
֪�Ķ������ʵ�ʵ������Լ������������á�ͬ��أ���Ҳ���ڼ�����ȫ�������Dz���
��һ�����衪��Java�Լ�����������֧�֣����Գ�����ƻ����ܹ�����Java Beans����
����������ζ��Ƿdz���Ȥ�ġ�
һ����Ȥ������������java ShowMehods ShowMethods���������ɵõ�һ���б?���а�
��һ��publicĬ�Ϲ����������������ڴ����п���û�ж���һ�������������ǿ�����
���ɱ������Զ��ϳɵ���һ���������������֮��ShowMethods��Ϊһ����public�ࣨ��
���ɡ��Ѻá��ࣩ���ϳɵ�Ĭ�Ϲ������㲻�����������г��֡��ϳɵ�Ĭ�Ϲ�������
�Զ��������һ��ķ���Ȩ�ޡ�
ShowMethods�������Ȼ��Щ����ˬ�������磬������ͨ�����java ShowMethods java
.lang.String�õ����������һ���֣�
534-535ҳ����
����ȥ����java.lang������޶��ʣ������Ȼ����������⡣�м��ڴˣ���������һ��
���ܵ�StreamTokenizer�࣬���������⣺
535-537ҳ����
ShowMethodsClean�����dz��ӽ�ǰһ��ShowMethods��ֻ����ȡ����Method��Construct
or���飬��������ת���ɵ���String���顣���ÿ�������String������StripQua
lifiers.Strip()���һ�飬ɾ�����з����޶��ʡ������ҿ����������ʱ�õ�
��StreamTokenizer��String��������������
����Dz���һ�����Ƿ���һ���ض��ķ��������Ҳ����������ĵ����𲽼����ṹ����
�߲�֪���Ǹ����Ƿ��ܶ�ij��������Color������ij�����飬�ù��߱�ɽ�ʡ������
��ʱ�䡣
��17���ṩ����������һ��GUI�汾�������Լ�д�����ʱ���������Ա���ٲ�����
Ҫ�Ķ�����
11.4 �ܽ�
����RTTI�ɸ��һ������Ļ���������������Ϣ���������������ԭ��������
������������Ϊ��Щʱ������Է������㹻�ˡ�����Щ��ǰϰ�߳��򻯱�̵�����˵
�����׽����ǵij�����֯��һϵ��switch��䡣���ǿ�����RTTI������һ�㣬�Ӷ��ڴ�
�뿪����ά������ʧ�����Լ�������Ҫ��ֵ�� Java��Ҫ���������Ǿ����ܵز��ö�����
��ֻ���ڼ��ر������²�ʹ��RTTI��
��Ϊ�����ö����ԣ�Ҫ������ӵ�жԻ��ඨ��Ŀ���Ȩ����Ϊ��Щʱ���ڳ���Χ֮
�ڣ����ܷ��ֻ��ಢδ����������Ҫ�ķ���������������һ���⣬�����ɱ��ʲô
���������ţ�RTTI����һ�ֺܺõĽ���������ɼ̳�һ�������ͣ�Ȼ������Լ��Ķ���
�������ڴ��������ط�����������Լ����ض����ͣ��������Ǹ�����ķ�����������
�����ƻ��������Լ��������չ��������Ϊ�����͵���Ӳ�Ҫ����ҳ����е�switch��
�䡣������Ҫ�����Ե�����������´���ʱ���ͱ�����RTTI����Լ��ض������͡�
��ij���ض��������ĽǶȳ������ڻ��������һ�����Ժ󣬿�����ζ�Ŵ��Ǹ���
����������������඼������һЩ������ġ����ߡ�����ʹ�ýӿڱ�ú���ģ����
���˴��Ǹ�����̳У��ұ��븲�dz��󷽷�����һ������ʹ�����������š�������
����һ����ṹ����ʾ������Instrument�����ٶ��������������ֶ��������ʵ�����
��ͨ����˨��Spit Valve������ʱ��һ���취���ڻ���Instrument������һ��ClearS
pitValve()�������������������һ��������Ϊ��ʾ�Ŵ�������͵���������Ҳ��
��˨��������������RTTI�ṩ��һ�������Ľ���������ɽ����������ض������У�
��ʱ��Wind������ͨ��ڡ��������������ǿ��еġ�����ʵ��һ�ָ����ķ����ǽ�pr
epareInstrument()��������С���ѧ�߸տ�ʼʱ��������һ�㣬һ����϶��Լ�
����ʹ�� RTTI��
���RTTI��ʱ�ܽ��Ч�����⡣��������������˶����ԣ������е�һ��������ִ��
Ч���Ϻ������⣬�����RTTI�ҳ��Ǹ����ͣ�Ȼ��дһ���ʵ��Ĵ��룬�Ľ���Ч�ʡ�
11.5 ��ϰ
(1) дһ�������������һ������ѭ����ӡ�������νṹ�е������ࡣ
(2) ��ToyTest.java�У���Toy��Ĭ�Ϲ�������dz�ע����Ϣ��������֮��������顣
(3) �½�һ�����͵ļ��ϣ�����ʹ��һ��Vector�������������еĵ�һ����������ͣ�
Ȼ�����ʱ��ֻ�����û������������͵Ķ���
(4) дһ�������ж�һ��Char�������ڻ�������ͣ�����һ������Ķ���
(5) ��ݱ��µ�˵����ʵ��clearSpitValve()��
(6) ʵ�ֱ��½��ܵ�rotate(Shape)�������������Ƿ��Ѿ���ת��һ��Բ��������ת��
�Ͳ���ִ����ת��������
--
   j&=   y+ y*    jv+   yy-v    v &
  wE!"   j17$T   7MPC   NU$E-   Ej&v-
  O*K^  yHH:Ovm+ UMMk   BMNTO: H1="7'
 jO&OH: "OH&"E~  U0H1   BB71` jCf'U:
 vM1H1   jB-j1  wHhHh*-/$B)B-   BkJUk
 ^HI'OH j""^N1  "OHOK~  H$H"Da jP'N ^
�� ��Դ:���ɽ��ˮ bbs.neu.edu.cn��[FROM: 219.216.70.3]
Technical Details
Message-ID: <492eD7$Byr@bbs.neu.edu.cn>
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!elnk-pas-nf1!elnk-nf2-pas!newsfeed.earthlink.net!sjc70.webusenet.com!news.webusenet.com!news.neu.edu.cn!NEU

Show Full Headers
Complete Article Headers
X-Google-Language: Chinese,GB
X-Google-Thread: f6cb0,d20a92ccc38f8dc4,start
X-Google-Attributes: gidf6cb0,public
X-Google-ArrivalTime: 2003-10-27 17:47:12 PST
Path: arc1-ca.pugleaf.net!archiver1.google.com!news2.google.com!news.maxwell.syr.edu!elnk-pas-nf1!elnk-nf2-pas!newsfeed.earthlink.net!sjc70.webusenet.com!news.webusenet.com!news.neu.edu.cn!NEU
From: amou.bbs@bbs.neu.edu.cn (�˺�2��)
Newsgroups: cn.bbs.comp.lang.java
Subject: Java���˼��---��11�� ���������ͼ�
Date: 28 Oct 2003 01:46:48 GMT
Organization: ��ɽ��ˮ
Message-ID: <492eD7$Byr@bbs.neu.edu.cn>
Mime-Version: 1.0
Content-Type: text/plain; charset="gb2312"
Content-Transfer-Encoding: 8bit
X-Filename: java/M.1067305591.A
Lines: 312