Thread View: cn.bbs.comp.program
1 messages
1 total messages
Started by Arrow
Thu, 25 Dec 1997 00:00
Java���Թ��˵�� (1)
Author: Arrow
Date: Thu, 25 Dec 1997 00:00
Date: Thu, 25 Dec 1997 00:00
395 lines
25216 bytes
25216 bytes
������: java96@SMTH (����Ϧʰ���о�), ����: Java
�� ��: Java���Թ��˵��
����վ: ˮľ�廪 (Mon Aug 12 13:50:54 1996)
ת��վ: SMTH
Java���Թ��˵��(����Java language specification, �Լ�����)
1.����ṹ
Java���Ե�Դ���������һ���������뵥Ԫ(compilation unit)��
�ɣ�ÿ�����뵥Ԫֻ�ܰ���������(�ո��ע�ͳ���)��
* һ����������(package statement )
* �������(import statements)
* �������(class declarations)
* ��������(interface declarations)
ÿ��Java�ı��뵥Ԫ�ɰ��������棬����ÿ�����뵥Ԫȴ��
����һ������߽����ǹ����ġ�
Java ��Դ������뱻����֮�������Java�ֽڴ���(bytecode)��
Java���ֽڴ�����һЩ�������ڻ�����ָ����ɣ���Щָ���ܱ�Java��
����ϵͳ(runtime system)��Ч�ؽ��͡�Java������ϵͳ����������ͬһ
̨�����
�ڵ�ǰ��Javaʵ���У�ÿ�����뵥Ԫ����һ����.javaΪ�����ļ���
ÿ�����뵥Ԫ�����ɸ��࣬�����ÿ�������һ��.class�ļ���.class
���Java�������
2. �ʷ�����
�ڱ���Ĺ���У�JavaԴ��������е��ַ���Ϊһϵ�еı��
(token)��Java����������ʶ�����ֱ��: ��ʶ��ؼ��֡�����������
����Լ�����ָ���ע���Լ�����ո��Ʊ���з���ַ� ����
�����ڱ�ʶ֮�У�������ȴ���������ָ���ǡ�
Java����ı�д���÷�����Unicode�ַ�������������ַ�
�����ڱ���ǰת����Unicode��
2.1 ע��
Java�����ṩ��3����ʽ��ע�ͣ�
//text ��//�����н���������ַ����Ϊע�Ͷ���������ԡ�
/* text */ ��/*��*/ ��������ַ�ᱻ���������ԡ�
/** text */
������ע�ͳ������κ�����֮ǰʱ����������?���Dz�������
�ڴ�����κεط�������ע����ζ�ű������������IJ��֣�Ӧ����Ϊ��
����Ŀ��������������Զ�������ĵ��С�
2.2 ��ʶ��
��ʶ������ַ������һ����ĸ���»���("_")����Ԫ���("$")�� ��
����ַ�Ҳ��������0-9�� Javaʹ�÷������ַ�Ϊ�˱���ʶ���һ
�Ϸ���ʶ�������г���ġ���ĸ����
* ��д��ĸ��A������Z��
* Сд��ĸ��a������z��
* �����루Unicode���������ַ������ʮ�������00C0֮ǰ����
���ʶ���У�����ĸ����ַ����������ġ���Ȼ��Unicode�����
��Щ�������������ַ�ij��⡣
�ɴˣ���garton������Mj��lner�����ǺϷ���ʶ���ǣ�����
���硰�С����ַ�ȴ���ǺϷ��ġ�
Ϊ��ȡ�ø����йط����������Ϣ������ġ�The Unicode
Standard������World Wide Character Encoding version 1.0��volumes 1 ��
2����Unicode��˾��FTP��ַ��unicode.org��
2.3 �ؼ���
����ı�ʶ���������ؼ��֣����Dz������κ��������;��
abstract default goto* null synchronized
boolean do if package this
break double implements private threadsafe
byte else import protected throw
byvalve * extends instanceof public transient
case false int return true
catch final interface short try
char finally long static void
class float native super while
const * for new switch
continue
���У���*��Ǻ��DZ���������ǰȴδʹ�õġ�
2.4 ������
������(literal)��ijЩ����ֵ�Ļ��������Щ���Ͱ������ͣ�����
�ͣ����������ַ��ַ�
2.4.1 ����������
����������ֱ�ʾ��ʽ�� ʮ���ƣ��˽��ƺ�ʮ����ơ�һ��ʮ����
������������һϵ�е�������ɣ�����ĵ�һ�����ֲ�����0(��ʱʮ��
������Ҳ�������潲������Ӻ�)������Ҳ�ɱ��ɰ˽��ƻ�ʮ�����
��ʽ����0��ͷ����������������ζ������һ��ʮ����Ƶġ�ʮ�����
�������������0-9�Լ���ĸa-f��A-F���˽�����������ֻ���dz���
����0-7���ڳ���32λ���ܱ�ʾ�ķ�Χ֮ǰ�����������������ͼ�Ϊint��
����Ϊlong�͡�һ��������������ͨ��Ӻ�L��l��ǿ�ȳ�long�͡�
����ľ�Ϊ�Ϸ���������������
2 2L 0777
2.4.2 ����������
һ�������������ɰ������²���: һ��ʮ��������һ��С��㡰.����
С���(����һ��ʮ��������)��ָ��֣�һ�����ͺ���ָ���
��һ��e��E���һ����������������ٰ���һ�����֣���ӻ�
��һ��С������һ��e(��E)�������һЩ���������������ӣ�
3.1415 3.1E12 .1e12 2E12
�����ں�������������Java���������ָ������ͣ� float ��
double���û��ɰ�����д����֣�
2.0d��2.0D double ��
2.0f��2.0F��2.0 float��
2.4.3 ����������
����(boolean)������������ֵ�� true��false��
2.4.4 �ַ�������
�ַ���������һ���ɵ����������ַ�(��������һ���ַ�������
һ���ַ�)���ַ�����char���ͣ����Ҿ�ӷ������ַ��е�����������
�г���ת����������������һЩ��ͼ���ַ������Է�б�ܡ�\����ʼ��
��ת���á�
���з�ͷ <newline> \
���� NL(LF) \n
��ֱ�Ʊ�� HT \t
�˸� BS \b
�س� CR \r
��ֽ��ҳ FF \f
��� \ \\
����� ' \'
˫��� " \"
�˽����� 0ddd \ddd
ʮ������� 0xdd \xdd
�������ַ� 0xdddd \udddd
2.4.5 ��������
����������˫����������������ַ�����С�ÿ������������
������һ�����������һ���ַ�����飬���硰abc��������һ
���µĴ����ʵ������Ķ��ǺϷ��Ĵ���������
" " \\�մ�
"\" " \\ֻ��һ��˫��ŵĴ�
"This is a string"
"This is a \
two-line string"
2.5 ���������ָ���
������Щ�ַ���JavaԴ��������������ָ����ã�
+ �� ! % ^ & * �� �� / > <
( ) { } [ ] ; ? : ���� =
���⣬������Щ�����ַ����������
++ -- == <= >= != << >>
>>> += -= *= /= &= /=
^= %= <<= >>= >>>= �� &&
���滹Ҫ�������һ��������ϸ���ܡ�
3. ����
�κ�һ����������ʽ����һ�����ͣ����;����������ܵ�ȡֵ��
Χ����������Щֵ����IJ������Լ���Щ������������ʲô��Java����
���ṩ�����ö������ͣ�����ԱҲ���������༰����(interface)���ƹ���
�����͡�
Java�������������ͣ� �����ͺ������͡�������ָ��Щ����
�ٷָ��ԭ�����͡��磺���͡������͡������͡��ַ��;�Ϊ�����͡�
�������ͽ����ڼ����͵Ļ��ϡ�Java���������ָ������ͣ����顢
�༰���档�ڱ����У�������Ҫ���ۼ����ͼ����顣
3.1 ��ֵ����
3.1.1 ��������
������C��C++�����ƣ������������ ��һ�����е���������
���Ƕ����ڻ����ģ��������ijЩ��ͳ�Ķ��������ı䣬�Է�ӳ��C��
������������ı仯�������������ͷֱ����8λ��16λ��32λ��64
λ�Ŀ�ȣ����Ҿ����з�ŵ�(signed)��������ʾ��
���
������
8
byte
16
short
32
int
64
long
һ�����������Ͳ���ֱ��Ӱ����Ĵ洢�ķ��䣬���ͽ�����������
�����������Լ��Ϸ���ȡֵ��Χ������һ�������Ϸ���Χ��ֵ����һ
��������ô���ֵ���ǶԺϷ�ֵ��ȡģ���ֵ��
3.1.2 ��������
�ؼ���float��ʾ������(32λ)����double���ʾ˫����(64λ)����
��float��������Ľ������float�ͣ���������֮һΪdouble�ͣ����
��Ϊdouble�͡��������㼰��ݸ�ʽ��IEEE754�еĶ��壬ϸ��������
���� ����¼A�� ���㡱���йظ���ʵ�ֵ�ϸ�ڡ�
3.1.3 �ַ�����
Javaȫ��ʹ�÷������ַ����char������ݱ������һ��16
��������
3.2 ��������
��һ��������ȡֵ��Ϊture��Ϊfalse�������ǵ�һ�������ķ���ֵΪture��falseʱ�����
Ƕ��Dz������͵ġ����⣬��ϵ����Ľ�����Dz�
���͵ġ�
����ֵ������ֵ�ͣ���˲�����ǿ������ת��������ת������ֵ��
3.3 ����
������Java����������һ����������Ǵ�����ָ�����㣬���е�
����(��������)����ͨ���ʶ�����á���ʹ�����������㣬��ʶ��ֵҲ
��Ӧ���ƻ���ͨ��new�����ɴ���һ�����顣
char s[]=new char[30];
�����һԪ�ص��±�Ϊ0����������ָ��ά���Dz�����ġ�ÿ�ζ�
������ʽ����new�������飺
int i [] =new int [3];
Java���Բ�֧�ֶ�ά���飬���ǣ�����Աȴ���Դ�����������顣
int i [ ] [ ]=new int [3][4];
������һάҪ��ȷ��������ά������Ժ���ȷ�������磺
int i[] []=new int [3] [ ]
��һ���Ϸ���������
�����ڱ�������������������C��������֮�⣬Java��
�����?���Ÿ�����������֮�����������ǵȼ۵ģ�
int iarray[ ];
int [ ] iarray;
ͬ��أ���������Ҳһ��
byte f(int n)[ ];
byte [ ] f(int n);
����ʱ����±걣֤�����ǺϷ��ģ�
int a[ ]=new int [10];
a[5]=1;
a[1]=a[0]+a[2];
a[-1]=4; // ����ʱ��һ��ArrayIndexOutOfBoundsException(������
��Խ��)�쳣
a[10]=2; //����ʱ��һ��ArrayIndexOutOfBoundsException(������
��Խ��)�쳣
����Ĵ�С����ʹ��������ʽ��
int n;
float arr[ ]=new float[n+1]
����ij��ȿ�ͨ��.length ���ң�
int a[] []=new int [10][3];
println (a.length) //��ӡ��10
println (a[0].length) //��ӡ��3��
3.3.1 ����ϸ��
������������鶼��Object���һ�������ʵ������IJ�ν�
������һ������ΪArray�����࣬����һ��ʵ�������length������ÿ
һ�������ͣ�����һ����Ӧ��Array�����ࡣͬ�?ÿһ����Ҳ����
һ����Ӧ��Array������ڡ����磺 new Thread[n] ����һ��Thread[ ]
��ʵ�������A����B�ij��࣬��ô��A[]��B[]�ij��࣬����ͼ��
Object
Array A
int[] float[] A[] B
B[]
��ˣ��������鸳��һ��Object������
Object o;
int a[]=new int [10];
o=a;
���ҿ�ͨ��ǿ������ת����object��������һ���������
a=(int [])o;
Array�౾�?����ʽ�ز������ࡣ
4. ��
��(class)�Ǵ�ͳ���������ģ�͵�����������֧����ݳ����Լ�ʵ
�ֶ���ݵ�Լ����Java�У�ÿһ���µ��ഴ��һ�������͡�
Ҫ��õ�һ���µ��࣬����Ա���������ҵ�һ�����е��࣬���༴
�����������Ļ��Ϲ��죬���dz�֮Ϊ����(derived)��������������
Ϊԭ��������࣬����������dz�Ϊ����(super class)��
���������д����ԣ� ���B��A�����࣬C��B�����࣬��C
��A�����ࡣ
һ�����ֱ�ӳ����Լ�ָʾ��������ʵ�ֵĽ���(interface)������
�������У��ɹؼ���extends��implements���������ʾ(�����ʾ�ؼ���)����
[doc_ comment] [modifer] class ClassName
extends Superclassname
implements interface {��interface } ] {
class body
}
����
/** 2 dimension point */
public class Points {
float x��y;
......
}
/** printable point */
class PinttablePoint extends Points implements Printable {
......
public void Print ( ) {
}
}
���е�����һ������ Object�������������Object֮����κ���
����һ��ֱ�ӳ��ࡣ���һ����������ʱδָ����ֱ�ӳ��࣬��ôȱʡ
��ΪObject����������
class Point {
float x��y
}
������д���ȼ�
class Point extends Object {
float x�� y��
}
Java���Խ�֧�ֵ��̳У�ͨ��һ�������������桱�Ļ��ƣ���֧��
ijЩ�������������ö�̳�ʵ�ֵĻ���(�����桱һ��)��Java֮��
��û�в���C++�Ķ�̳л��ƣ���Ϊ�˱����̳д��������㣬��
�磺���ܲ���Ķ����ԣ���������Ӹ��ӣ����������Ż������⡣
4.1 ������֮���ǿ��ת��
Java����֧������������֮���ǿ��ת������Ϊÿ���༴��һ����
�����͡�Java֧��������֮���ǿ��ת�������B��A�����࣬��ôB
��һ��ʵ�������ΪA��ʵ����ʹ�ã���Ȼ����Ҫ��ʽ��ת��������ʽ
ת�����ǺϷ��ģ��ⱻ�����ؿ�(widening)�����A��һ��ʵ���뵱��
B��ʵ��ʹ�ã�����Ա��Ӧдһ������ת��������խ��narrowing����ǿ
�ơ���һ���ൽ�������ǿ��ת
��������ʱҪ�����еļ����ȷ�������������������һ��ʵ��
(��������֮һ)���ֵ���֮���ǿ������ת����һ������������ǿ��ת��������£
�
(classname) ref
���У�(classname)��Ҫת����Ŀ���࣬��ref�DZ�ת���Ķ���
ǿ��ת������Ӱ�쵽��������ã����Ӱ������?Ȼ���ʵ��
�����ķ���ȴ�ܵ�����
���õ����͵�Ӱ�졣һ�������һ�����͵���һ���͵�ǿ��ת����
����ʹͬһ������Բ�ͬ��ʵ��������ʡ�
class ClassA{
String name = "ClassA"
}
class ClassB extends ClassA { //ClassB��ClassA������
String name="ClassB";
}
class AccessTest {
void test( ) {
ClassB b=new ClassB( );
println (b.name); //��ӡ�� ClassB
ClassA a
a=(ClassA)b;
println (a.name); //��ӡ�� ClassA
}
}
4.2 ����
����(method)�ǿ�ʩ�ڶ�������ϵIJ��������Ǽȿ������У�Ҳ����
��������������������ȴֻ��������ʵ��(Java�������û�����IJ�����
�÷�����ʵ��)��
���еķ������������·�ʽ��
[Doc_ comment] [Access Specifiers] ReturnType methodName(parameterList)
{
method body(���ص�native������ķ���û���岿��)
}
���캯��������������⣬����ķ�������һ���������͡���
��һ�����ǹ��캯��ķ����������κ�ֵ����ô�������һ��void�ķ�
�����͡�
������ɶ��ŷָ��ijɶԵ����ͼ���������ɣ��������
������Ϊ�ա������ڲ�����ı���(�ֲ�����)��������ͬһ��������
�������������磺 ���һ������������Ϊi�IJ���ʵ�֣��ҷ�����
�ֶ���һ����Ϊi�ľֲ����������������������磺
class Rectangle {
void vertex (int i��int j) {
for (int i=0; i<=100; i++) { //����
��
}
}
}
��������ѭ�������������i��һ���������
Java���������̬����������һ�������������������������
���������䳬����ʹ�ù�Ӷ�ʵ�ַ����ĸ���(overriding)������
(overloadding)����ν�����ǶԼ̳����ķ����ṩ��һ�ֲ�ͬ��ʵ�֡���
������ָ����һ����������������һ����������ͬ�����֣�������?ͬ��
ע�� �������Ͳ����������������һ����ķ�Χ�ڣ�������ͬ
�����֣���ͬ�IJ����(��������λ�ü�����)�ķ��������뷵����ͬ
�����͡�����������������в�ͬ�ķ������ͣ��������һ���������
4.2.1 ʵ�����
ʵ�����(instance variables)��ָ��Щ���������������ڷ���������
��֮����δ��static��ǵı�( ���� ����̬��������������ʼ������)��
����һ��������������֮�������ı����Ǿֲ�������ʵ�������������
�η�(�����η�)��
ʵ������������κε����ͣ����ҿ����г�ʼֵ�����һ��ʵ���
����ʼֵ�����ʼ����0�������ͱ�������ʼ����flase������
��ʼ����null��������һ��ʵ�����j���г�ʼ��ֵ�����ӣ�
class A{
int j =23;
����
}
4.2.2 this ��super����
��һ���Ǿ�̬�������������ڣ�this������ִ���˵�ǰ������
�磺 һ�����������Ҫ���Լ���Ϊ�������һ������ķ�����
class MyClass {
void Method (OtherClass obj) {
��
obj.Method (this)
��
}
}
���ۺ�ʱ��һ�������������Լ���ʵ�����������ʱ����ÿ������
��ǰ�涼�����š�this����
�磺
class Foo {
int a��b��c;
......
void myPrint ( ) {
print (a+ "\n"); // a=="this.a"
}
......
}
super����������this������this����ʵ�����ǶԵ�ǰ��������ã�
������;��ǰ�ǰ���ڴ���ķ������ࡣ��super�������Ƕ��䳬��
���Ͷ�������á�
--
[m[1;31m�� ��Դ:���ɰ��ļ�BBSվ bbs.njtu.edu.cn��[IP: 202.112.145.26][m
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads