发新话题
打印

[转载]Java程序设计知识与技能

[转载]Java程序设计知识与技能

文章作者:乡村格调

Java程序设计知识与技能(一)


相信在认真学习完本文后,你应该能够完成以下内容:
描述Java 编程语言的主要特性
描述Java虚拟机的主要功能
描述垃圾收集是如何进行的
列举由处理代码安全性的Java平台所执行的三大任务
定义Class,Package,Applets和Applications
编写、编译并运行简单Java应用程序
利用Java技术应用程序编程界面(API)的在线文档来标识Java. lang包的方法。

什么是Java编程语言?

什么是Java编程语言
Java是:
-       一种编程语言
-       一种开发环境
-       一种应用环境
-       一种部署环境
-       句法与C++相似,语义与Small Talk相似
-       用来开发applets,又用来开发applications

在World  Wide  Web(WWW)和能够运行称为applets程序的浏览器的有关介绍中,人们经常提及Java编程语言。Applets是一种贮存于WWW服务器的用Java编程语言编写的程序,它通常由浏览器下载到客户系统中,并通过浏览器运行。Applets通常较小,以减少下载时间,它由超文本标识语言(HTML)的Web页来调用。
Java applications是一种独立的程序,它不需要任何Web浏览器来执行。它们是一种典型的通用程序;可运行于任何具备Java运行环境的设备中。

Java编程语言的主要目标

Java编程语言的主要目标
提供一种解释环境为
-       提高开发速度
-       代码可移植性
-       使用户能运行不止一个活动线程
-       当程序运行时,能动态支持程序改变
- 提供更好的安全性

设计Java编程语言的主要目标是
提供一种易于编程的语言,从而
消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。
利用面向对象的概念使程序真正地成为可视化程序
为使代码尽可能清晰合理、简明流畅提供了一种方法

Java编程语言的主要目标

设计Java编程语言的主要目标是
提供一种易于编程的语言
-       消除其它语言在诸如指针运算和存储器管理方面影响健壮性的缺陷。
-       利用面向对象的概念使程序真正地成为可视化程序
-       为使代码尽可能清晰合理、简明流畅提供了一种方法

为获得如下两点益处提供一种解释环境
提高开发速度──消除编译─链接—装载—测试周期。
代码可移植性──使操作系统能为运行环境做系统级调用
为运行不止一个活动线程的程序提供了一种方式
通过允许下载代码模块,从而当程序运行时也能动态支持程序改变。
为那些保证安全性而装载的代码模块提供了一种检查方法。

下列特性使这些目标付诸实现:
-       Java虚拟机Java虚拟机(JVM)
-       垃圾收集
-       代码安全性


精心开发的Java技术体系结构为上述目标的实现提供了保证。Java的如下特性使这些目标得以实现
Java虚拟机
垃圾收集
代码安全性

什么是Java虚拟机?

- 提供硬件平台规范
- 解读独立于平台的已编译的字节码
- 可当作软件或硬件来实现
- 可在Java技术开发工具或Web浏览器上实现

Java虚拟机规范为Java虚拟机(JVM)作了如下定义:
在真实机器中用软件模拟实现的一种想象机器。Java虚拟机代码被存储在 .class文件中;每个文件都包含最多一个public类。

Java虚拟机规范为不同的硬件平台提供了一种编译Java技术代码的规范,该规范使Java软件独立于平台,因为编译是针对作为虚拟机的“一般机器”而做,这个“一般机器”可用软件模拟并运行于各种现存的计算机系统,也可用硬件来实现。 Java虚拟机

JVM为下列各项做出了定义

- 指令集(中央处理器[CPU])
- 注册集
- 类文件格式
- 栈
- 垃圾收集堆
- 存储区

编译器在获取Java 应用程序的源代码后,将其生成字节码,它是为JVM生成的一种机器码指令。每个Java解释器,不管它是Java技术开发工具,还是可运行applets的Web浏览器,都可执行JVM。

- 由保持适当类型约束的字节码形成代码
- 大部分类型检查在编译代码时完成
- 每个由SUN TM批准的JVM必须能够运行任何从属类文件

JVM的代码格式由紧缩有效的字节码构成。由JVM字节码编写的程序必须保持适当的类型约束。大部分类型检查是在编译时完成。

任何从属的Java技术解释器必须能够运行任何含有类文件的程序,这些类文件应符合Java虚拟机规范中所指定的类文件格式。

垃圾收集
- Java编程语言提供了一种系统级线程以跟踪存储区分配
- 垃圾收集
- 可检查和释放不再需要的存储器
- 可自动完成上述工作
- 可在JVM实现周期中,产生意想不到的变化

许多编程语言都允许在程序运行时动态分配存储器,分配存储器的过程由于语言句法不同而有所变化,但总是要将指针返回到存储区的起始位置

当分配存储器不再需要时(存储器指针已溢出范围),程序或运行环境应取消分配存储器。

在C,C++ 或其它语言中,程序员负责取消分配存储器。有时,这是一件很困难的事情。因为你并不总是事先知道存储器应在何时被释放。当在系统中没有能够被分配的存储器时,可导致程序瘫痪,这种程序被称作具有存储器漏洞。

Java编程语言解除了程序员取消分配存储器的责任,它可提供一种系统级线程以跟踪每一存储器的分配情况。在Java虚拟机的空闲周期,垃圾收集线程检查并释放那些可被释放的存储器。 垃圾收集在Java技术程序的生命周期中自动进行,它解除了取消分配存储器的要求,并避免了存储器漏洞。然而,垃圾收集可在JVM实现的周期中,产生意想不到的变化。

TOP

代码的安全性概述
下图显示了Java技术的运行环境及其加强代码安全性的方法。
Java源程序文件通过“编译”,在你的感觉中,就好象是将它们从程序员编写的文本文件格式转换成了一组字节码。字节码被存储在 .class文件中。
构成Java软件程序的字节码在运行时被加载、校验并在解释器中运行。当运行applets时,字节码可被下载,然后由建于浏览器中的JVM进行解释。解释器具备两种功能,一是执行字节码,二是对底层硬件做适当调用。


      


在一些使用Java技术的运行环境中,部分校验过的字节码被编译成原始机器码并直接运行于硬件平台。这就使Java软件代码能够以C或C++接近的速度运行,只是在加载时, 因为要编译成原始机器码而略有延迟。
注意--SUN MicrosystemsTM通过采用新的技术,使Java虚拟机的性能已经有了进一步的提高。这种新型虚拟机被称为HotSpotTM虚拟机,它具备了使Java编程语言能象编译C++一样快速运行的潜力。HotSpot虚拟机对操作系统具有本地多线程支持能力,而不是虚拟多线程。因而,HotSpot虚拟机可保证对一个应用程序来说,并不一定有代码才能使用这一能力。HotSpot技术解决了性能与移植性之间的难题。
执行三大任务:
加载代码
校验代码
执行代码
Java运行环境
一个Java技术的运行环境可运行为JVM编译的代码并执行如下三大任务:
-       加载代码-由类加载器执行
-       校验代码-由字节码校验器执行
-       执行代码-由运行时的解释器执行
类加载器
类加载器为程序的执行加载所需要的全部类。类加载器将局部文件系统的类名空间与来自网络源的类名空间相分离,以增加安全性。由于局部类总是首先加载,因而可限制任何“特洛依木马”的应用。
当全部类被加载后,可执行文件的存储器格式被确定。这时,特定的存储器地址被分配给符号引用并创建检索表格。由于存储器格式在运行时出现,因而Java技术解释器增加了保护以防止对限制代码区的非法进入。
字节码校验
可保证
-       代码符合JVM规范
-       代码不破坏系统完整性
-       代码不会引起操作数栈上溢或下溢
-       所有操作代码的参数类型的准确性
无非法数据转换(整数到指针的转换)
字节码校验器
Java软件代码在实际运行之前要经过几次测试。JVM将代码输入一个字节码校验器以测试代码段格式并进行规则检查--检查伪造指针、违反对象访问权限或试图改变对象类型的非法代码。

注意----所有源于网络的类文件都要经过字节码校验器

校验过程
字节码校验器对程序代码进行四遍校验,这可以保证代码符合JVM规范并且不破坏系统的完整性。如果校验器在完成四遍校验后未返回出错信息,则下列各点可被保证:
-        类符合JVM规范的类文件格式
-        无访问限制违例
-        代码未引起操作数栈上溢或下溢
-        所有操作代码的参数类型将总是正确的
-        无非法数据转换发生,如将整数转换为对象引用
-      对象域访问是合法的

TOP

象其它编程语言一样,Java编程语言也被用来创建应用程序。一个共同的小应用程序范例是在屏幕上显示字串“Hello World!”。下列代码给出了这个Java应用程序。
HelloWorldApp
  1.//
  2.// Sample HelloWorld application
  3.//
  4.public class HelloWorldApp{
  5.public static void main (String args[]) {
  6.System.out.println ("Hello World!");
  7.}
  8.}
以上程序行是在你的屏幕上打印“Hello World!”所需的最少组件。

描述HelloWorldApp
程序中的1-3行是注释行
1 //
2 // Sample HelloWorld application
3 //
第4行
第4行声明类名为HelloWorldApp。类名(Classname)是在源文件中指明的,它可在与源代码相同的目录上创建一个classname·class文件。在本例题中,编译器创建了一个称为HelloWorldApp.class的文件, 它包含了公共类HelloWorldApp的编译代码。
4 public class HelloWorldApp{
第5行
第5行是程序执行的起始点。Java技术解释器必须发现这一严格定义的点,否则将拒绝运行程序。
其它程序语言(特别是C和C++)也采用main ()声明作为程序执行的起始点。此声明的不同部分将在本课程的后几部分介绍。
如果在程序的命令行中给出了任何自变量,它们将被传递给main()方法中被称作args的String数组。在本例题中,未使用自变量。
5 public static void main (String args[]) {
-       public-方法main()可被任何程序访问,包括Java技术解释器。
-       static- 是一个告知编译器main()是用于类HelloWorldApp中的函数的关键字。为使main()在程序做其它事之前就开始运行,这一关键字是必要的。
-       void- 表明main()不返回任何信息。这一点是重要的,因为Java编程语言要进行谨慎的类型检查,包括检查调用的方法确实返回了这些方法所声明的类型。
-       String args [] - 是一个String数组的声明,它将包含位于类名之后的命令行中的自变量。
java HelloWorldApp args[0]args[1]····
第6行
第6行声明如何使用类名、对象名和方法调用。它使用由System类的out成员引用的PrintStreamout对象的println()方法,将字串“Hello World!”打印到标准输出上。
6   System.out.println (“Hello World!”);
在这个例子中,println()方法被输入了一个字串自变量并将其写在了标准输出流上。
第7-8行
本程序的7-8行分别是方法main()和类HelloWorldApp的下括号。
7       }
8     }

编译并运行HelloWorldApp
    编译并运行HelloWorldApp
-       编译HelloWorldApp.java
      javac HelloworldApp.java
-       运行应用程序
      java HelloWorldApp
-       判定编译和运行的共同错误


编译
当你创建了HelloWorldApp.java源文件后,用下列程序行进行编译:
   c:\student\javac HelloWorldApp.java
如果编译器未返回任何提示信息,新文件HelloWorldApp.class则被存储在与源文件相同的目录中,除非另有指定。
如果在编译中遇到问题,请参阅本模块的查错提示信息部分。

运行
为运行你的HelloWorldApp应用程序,需使用Java解释器和位于bin目录下的java:
        c:\student\ java HelloWorldApp
        Hello World!
注意-必须设置PATH环境变量以发现java和javac,确认它包括c:\jdk1.2\bin

编译查错
编译时的错误   
以下是编译时的常见错误
-      javac:Command not found
PATH变量未正确设置以包括javac编译器。javac编译器位于JDK目录下的bin目录。
-      HelloWorldApp.java:6: Method printl(java.lang.String)
not found in class java.io.PrintStream.System.
out.printl ("Hello World!");  
方法名println 出现打印错误。
-      In class HelloWorldApp:main must be public or static
该错误的出现是因为词static 或public被放在了包含main方法的行之外。

运行时的错误
-       can’t find class HelloWorldApp     (这个错误是在打印java HelloWorldApp时产生的)
通常, 它表示在命令行中所指定的类名的拼写与filename.class文件的拼写不同。Java编程语言是一种大小写区别对待的语言。
例如:    public class HelloWorldapp {
创建了一个HellloWorldapp.class,它不是编译器所预期的类名(HelloWorldApp.class)。
-       命名
如果·java文件包括一个公共类,那么它必须使用与那个公共类相同的文件名。例如在前例中的类的定义是
public class HelloWorldapp
源文件名则必须是HelloWorldapp.java
-       类计数
在源文件中每次只能定义一个公共类。

源文件布局
源文件布局
包含三个“顶级”要素
-       一个可选择的包声明
-       任意数量的输入语句
-       类和界面声明

一个Java源文件可包含三个“顶级”要素:
-         一个包声明(可选)
-         任意数量的输入语句
-         类和界面声明

该三要素必须以上述顺序出现。即,任何输入语句出现在所有类定义之前;如果使用包声明,则包声明必须出现在类和输入语句之前。

TOP

类和包介绍
类和包介绍
1.    什么是类和包?
2.    Java类库中的几个重要包
     java.lang
     java.awt
     java.applet
     java.net
     java.io
     java.util


类是描述提供某种功能的模块的一般术语。Java开发集(JDK)给出了一套标准的类(称作类库),这些类可执行大部分所需的基本行为不仅为编程任务(例如,类可提供基本的数学函数、数组和字符串),而且为图形和网络。
类库被组织成许多包,每个包都包含几个类。如下所列为一些重要的包:
java.lang包含一些形成语言核心的类,如String、Math、Integer和Thread。
java.awt包含了构成抽象窗口工具包(AWT)的类,这个包被用来构建和管理应用程序的图形用户界面。
java.applet包含了可执行applet特殊行为的类。
java.net包含执行与网络相关的操作的类和处理接口及统一资源定位器(URLs)的类。
java.io包含处理I/O文件的类。
java.util包含为任务设置的实用程序类,如随机数发生、定义系统特性和使用与日期日历相关的函数。

使用Java API文档
使用Java API文档
1.       一组超文本标识语言(HTML)文件提供了有关API的信息
2.       一个包包含了对所有类信息的超链接
3.  一个类文档包括类层次、一个类描述、一组成员变量和构造函数等


一组HTML文件以文档的形式提供了有关API的信息,这个文档的布局是等级制的,因而主页列出所有的包为超链接。如果选中了一个特殊包的热链接,作为那个包成员的类将被列出。从一个包页选中一个类的热链接将提交一页有关那个类的信息。

图1-1显示了这样一个类文档



图1-1
一个类文档的主要部分包括:
-       类层次
-       类和类的一般目的描述
-       成员变量列表
-       构造函数列表
-       方法列表
-       变量详细列表及目的和用途的描述
-       构造函数详细列表及描述
-       方法详细列表及描述

TOP

注释
有三种插入注释的允许风格:
       //comment on one line
       /* comment on one or more line */
       /** documenting comment */
紧放在声明(变量、方法或类的声明)之前的文档注释表明, 注释应该被放在自动生成的文档中(由javadoc命令生成的HTML文件)以当作对声明项的描述。
注意------有关这些注释的格式和 javadoc工具的使用,请见JDK1.2 API文件的  docs/tooldocs/win32目录
分号、块和空白
分号、块和空白-
一个语句是一行用分号(;) 终止的代码      totals=a+b+c+d+e+f;-  一个块是以上括号和下括号为边界的语句集合    {       x=y+1       y=x+1    }
在Java编程语言中,语句是一行由分号(;)终止的代码。
例如
totals=a+b+c+d+e+f;
与下式相同
total=a+b+c+
  d+e+f;
一个块(block)或一个复合语句是以上括号和下括号({})为边界的语句集合;块语句也被用来组合属于某个类的语句。
分号、块和空白-
一个块可被用在一个类的定义中    public class Date {      int day;      int month;      int year;    }-块语句可被嵌套-  Java程序中允许任意多的空白
语句块可被嵌套。HelloWorldApp类由main方法构成,这个方法就是一个语句块,它是一个独立单元,单元本身可作为在类HelloWorldApp块中的一组事务之一。
其它一些块语句或组的例子如下:
复制内容到剪贴板
代码:
// a block statement
{
x = y + 1;
y = x + 1;
}

Semicolons, Blocks, and Whitespace
// a block used in a class definition
public class MyDate {
int day;
int month;
int year;
}
// an example of a block statement nested within
// another block statement
while ( i < large ) {
a = a + i;
if ( a == max ) {
b = b + a; // nested block is here
a = 0;
}
}
在源代码元素之间允许空白,空白的数量不限。空白(包括空格、tabs和新行)可以改善你的对源代码的视觉感受。
复制内容到剪贴板
代码:
{
int x;
x = 23 * 54;
}
  
{  
   int  x
   x  =  23  +  54;
}
标识符
标识符-
是赋予变量、类和方法的名称-
可从一个字母、下划线(_)或美元符号($)开始-
是大小写区别对待的, 且无最大长度在Java编程语言中,标识符是赋予变量、类或方法的名称。标识符可从一个字母、下划线(_)或美元符号($)开始,随后也可跟数字。标识符是大小写区别对待的并且未规定最大长度。
有效标识符如下:
-    identifier
-    userName
-    User_name
-    _sys_varl
-    $change
Java技术源程序采用有效的16-bit 双字节字符编码标准(Unicode) ,而不是8-bit ASCII文本。因而,一个字母有着更广泛的定义,而不仅仅是a到z和A到Z。
谨慎对待非ASCII字符,因为Unicode可支持看似相同而实际不同 的字符。
标识符不能是关键字,但是它可包含一个关键字作为它的名字的一部分。例如,thisone是一个有效标识符,但this却不是,因为this是一个Java关键字。Java关键字将在后面讨论。
注意──包含美元符号($)的关键字通常用的较少, 尽管它在BASIC和VAX/VMS系统语言中有着广泛的应用。由于它们不被熟知, 因而最好避免在标识符中使用它们, 除非有本地使用上的习惯或其他不得已的原因。

TOP

使用在Java编程语言中的关键字:
abstract   do    implements  private   throw
boolean   double  import    protected  throws
break    else   instanceof  public   transient
byte     extends int      return    true
case     false  interface   short    try
catch    final  long      static    void
char     finally  native    super    volatile
class    float   new     switch    while
continue  for    null      synchronized
default    if    package   this

关键字对Java技术编译器有特殊的含义,它们可标识数据类型名或程序构造(construct)名。
以下是有关关键字的重要注意事项:
-    true、false和null为小写,而不是象在C++语言中那样为大写。严格地讲,它们不是关键字,而是文字。然而,这种区别是理论上的。
-    无sizeof运算符;所有类型的长度和表示是固定的,不依赖执行。
-    goto和const不是Java编程语言中使用的关键字。
第六节    基本Java类型
Java编程语言定义了八个原始类型-  逻辑类  boolean-     文本类  char-     整数类  byte, short, int, long- 浮点类  double, float

原始类型
Java编程语言为八个原始数据类型和一个特殊类型定义了文字值。原始类型可分为四种:
-    逻辑类  boolean
-    文本类  char
-    整数类  byte, short, int, long
-    浮点类  double, float

基本Java类型
1.逻辑类──boolean
逻辑值有两种状态,即人们经常使用的"on"和"off" 或"true"和"false"或"yes"和"no",这样的值是用boolean类型来表示的。boolean有两个文字值,即true和false。以下是一个有关boolean类型变量的声明和初始化:
boolean truth = true; //declares the variable truth
            //as boolean type and assigns it
            //the value true
注意──在整数类型和boolean类型之间无转换计算。有些语言(特别值得强调的是C和C++)允许将数字值转换成逻辑值, 这在Java编程语言中是不允许的;boolean类型只允许使用boolean值。

2.文本类──char和String
文本类──char和Stringchar-     代表一个16-bit Unicode字符-    必须包含用单引号(&#39;&#39;)引用的文字-  使用下列符号:      &#39;a&#39;        &#39;\t&#39;      一个制表符  &#39;\u????&#39;   一个特殊的Unicode字符,????应严格使用四个16进制数进行替换

TOP

变量、声明和赋值
Java技术规范的浮点数的格式是由电力电子工程师学会(IEEE)754定义的,它使用表2-3的长度,并且是独立于平台的。
下列程序显示了如何为整数、浮点、boolean、字符和string类型变量声明和赋值。
复制内容到剪贴板
代码:
1. public class Assign {
  2. public static void main(String args []) {
  3. int x, y; // declare int
    // variables
  4.float z = 3.414f; // declare and assign
    // float
  5.double w = 3.1415; // declare and assign
    // double
  6.boolean truth = true; // declare and assign
    // boolean
  7.char c; // declare character
    // variable
  8.String str; // declare String
  9.String str1 = "bye"; // declare and assign
    // String variable
  10.c = &#39;A&#39;; // assign value to char
    // variable
  11.str = "Hi out there!"; // assign value to
    // String variable
  12.x = 6;
  13.y = 1000; // assign values to int variables
  14....
  15.}
  16.}
非法赋值举例
y = 3.1415926; // 3.1415926 is not an int.
         // Requires casting and decimal will
         // be truncated.
w = 175,000; // the comma symbol ( , ) cannot appear
truth = 1; // a common mistake made by ex- C / C++
        // programmers.
z = 3.14156 ; //can&#39;t fit double into a
        //Float. Requires casting.


Java编码约定
Java编程语言的一些编码约定是:
classes──类名应该是名词,大小写可混用,但首字母应大写。例如:
           class  AccountBook
           class  ComplexVariable

interface──界面名大小写规则与类名相同。
           interface  Account

method──方法名应该是动词,大小写可混用,但首字母应小写。在每个方法名内,大写字母将词分隔并限制使用下划线。例如:
           balanceAccount()
           addComplex ()

Variables──所有变量都可大小写混用,但首字符应小写。词由大写字母分隔,限制用下划线,限制使用美元符号($),因为这个字符对内部类有特殊的含义。
           currentCustomer
变量应该代表一定的含义,通过它可传达给读者使用它的意图。尽量避免使用单个字符, 除非是临时"即用即扔"的变量(例如,用i, j, k作为循环控制变量)

constant──原始常量应该全部大写并用下划线将词分隔;对象常量可大小写混用。
           HEAD-COUNT
      MAXIMUM-SIZE

control structures──当语句是控制结构的一部分时,即使是单个语句也应使用括号({})将语句封闭。例如:
if  (condition) {
  do something
}else  {
  do something else

spacing── 每行只写一个语句并使用四个缩进的空格使你的代码更易读。

comments──用注释来说明那些不明显的代码段落;对一般注释使用 //  分隔符, 而大段的代码可使用 /*···*/分隔符。使用 /**···*/将注释形成文档,并输入给javadoc以生成HTML代码文档。
复制内容到剪贴板
代码:
// A comment that takes up only one line.
/* Comments that continue past one line and take up space on multiple lines...*/
/** A comment for documentation purposes.
@see Another class for more information
*/
注意──@see是一个有关类或方法的特殊的javadoc标记符("see also")。有关javadoc的详细资料, 请参见"The Design of Distributed Hyperlinked Programming Documentation"(Lisa著)的有关文档系统的完整定义。该资料可从下列地址获得:http://www.javasoft.com/doc/api_documentation.html.

TOP

回顾对象的历史
早些时候的编程语言和初级程序员将每个变量看作相互无关的实体。例如,如果一个程序需处理某个日期,则要声明三个单独的整数:
int day, month, year;
上述语句作了两件事,一是当程序需要日、月或年的有关信息时,它将操作一个整数; 二是为那些整数分配存储器。
尽管这种作法很容易理解,但它存在两个重大缺陷。首先,如果程序需同时记录几个日期,则需要三个不同的声明。例如,要记录两个生日,你可能使用:
int  myBirthDay, myBirthMonth, myBirthYear;
int  yourBirthDay, yourBirthMonth, yourBirthYear;
这种方法很快就会引起混乱,因为需要的名称很多。
第二个缺陷是这种方法忽视了日、月和年之间的联系并把每个变量都作为一个独立的值,每个变量都是一个独立单元(在本例中为date)的一部分并被相应地处理。

创建一个新类型
为克服上述两种缺陷,Java编程语言使用类来创建新类型。请看下列原始类型声明:
int  day;
Java编程语言被用来分配一定量的存储器并解释该存储器的内容。于是,要定义一个新的类型,你必须指出需要多大存储器和如何解释存储器内容。这不是根据字节数或位的顺序和含义来做,而是根据已经定义的其它类型来做。
例如,要定义一个表示日期的类型,你需要足够的存储器存储三个整数变量;进而,日、月和年的意义即由这些整数变量给出。如下所示:
     class MyDate  {
    int day;
    int month;
    int year;
    }
词class是Java编程语言的一个关键字,必须全部小写。名称MyDate按照大小写的有关约定处理,而不是由语意要求来定。
注意----- class 不仅仅是一个集合数据类型,这个问题以后还将进一步讨论。

一个变量可被声明为归属于类型MyDate,从而日、月和年部分将被隐含声明。例如:
   MyDate  myBirth, yourBirth;
   使用这个声明,Java编程语言允许变量的部分(day, month和year)通过调用成员和使用点(·)运算符而被访问。例如:
    myBirth.day  =  26;
    myBirth.month = 11;
    yourBirth.year = 1960;

TOP

发新话题