🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Thread View: cn.bbs.comp.program
1 messages
1 total messages Started by Arrow Thu, 25 Dec 1997 00:00
Java���Թ��˵�� (1)
#2458
Author: Arrow
Date: Thu, 25 Dec 1997 00:00
395 lines
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�������Ƕ��䳬��
���Ͷ�������á�

--

�� ��Դ:���ɰ��ļ�BBSվ bbs.njtu.edu.cn��[IP: 202.112.145.26]
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