在继续讲解前,有必要澄清一个普遍的误解。因为Java 被用来创建网页,所以初学者有时将Java 与超文本标记语言(HTML )混淆,或认为Java 仅仅是对HTML 的一些改进。幸好,这只是误解。实质...
Java 的核心是面向对象编程。事实上,所有的Java 程序都是面向对象的,你别无选择。这一点与C++ 不同,因为在那里你可以选择是否面向对象编程。面向对象编程与Java 密不可分,因此,在你编写哪怕...
既然Java 面向对象的基础已经被讨论过了,接下来让我们看一些实际的Java 程序。让我们从编译及运行下面这个简短示例程序开始。你将看到,这个程序的功能比你想像的要多。 /* This is a si...
对于编程语言来说,变量是一个最为基本的概念。你可能知道,变量是一个有名字的内存位置,它能够被赋值。而且,在程序的运行过程中,变量的值是可以改变的。下一个程序将介绍如何声明变量,如何给变量赋值。另外,该...
尽管将在第5章仔细讨论控制语句,我们还是在这里先简单介绍2条控制语句,以便能在第3章、第4章中的例子程序中使用它们,并且它们也将帮助说明Java 的一个重要特点:程序块。 2.4.1 if控制语句 ...
在Java 中,可以将2个或2个以上的语句组成一组,这样的一组语句称为程序块(Codeblocks )。程序块是通过将所属语句放在花括号中来实现。一旦创建了程序块,它就成为一个逻辑单元,可以作为一个单...
既然你已经看过了几个短的Java 程序,现在让我们更正式的介绍Java 的基本元素。Java 程序由空白分隔符、标识符、注释、文字、运算符、分隔符,以及关键字组成。运算符将在下一章详细讨论,本节讨论其...
本这章分析Java 语言中3个最基本的元素:数据类型,变量和数组。就像所有的现代编程语言一样,Java 支持多种数据类型。你可以使用这些类型声明变量或创建数组。你将看到,Java 对这些项目的处理方法...
Java 定义了8个简单(或基本)的数据类型:字节型(byte ),短整型(short),整型(int ),长整型(long ),字符型(char ),浮点型(float ),双精度型(double ...
Java 定义了4个整数类型:字节型(byte),短整型(short),整型(int),长整型(long )。这些都是有符号的值,正数或是负数。Java 不支持仅仅是正的无符号的整数。许多其他计算机语...
浮点数字,也就是人们知道的实数(real),当计算的表达式有精度要求时被使用。例如,计算平方根,或超出人类经验的计算如正弦和余弦,它们的计算结果的精度要求使用浮点型。Java 实现了标准(IEEE-7...
在Java 中,存储字符的数据类型是char 。但是,C/C++ 程序员要注意:Java 的char与C 或C++ 中的char不同。在C/C++ 中,char的宽是8位整数。但Java 的情况不同。...
Java 有一种表示逻辑值的简单类型,称为布尔型。它的值只能是真或假这两个值中的一个。它是所有的诸如a 9)); } } 这个程序的运行结果如下所示: b is false b is true T...
在第2章中曾简要地提及字面量,现在已经讲述了内置的类型,让我们进一步研究它们。 3.7.1 整数字面量 整数可能是在典型的程序中最常用的类型。任何一个数字的值就是一个整数字面量。例如1,2,3和42...
变量是Java 程序的一个基本存储单元。变量由一个标识符,类型及一个可选初始值的组合定义。此外,所有的变量都有一个作用域,定义变量的可见性,生存期。接下来讨论变量的这些元素。 3.8.1 声明一个变...
如果你以前有编程经验,那么你已经知道把一种类型的值赋给另外类型的一个变量是相当常见的。如果这2种类型是兼容的,那么Java 将自动地进行转换。例如,把int 类型的值赋给long 类型的变量,总是可行...
除了赋值,还有另外一种类型变换:在表达式中。想要知道原因,往下看。在表达式中,对中间值的精确要求有时超过任何一个操作数的范围。例如,考虑下面的表达式: byte a = 40; byte b = 50...
数组(array)是相同类型变量的集合,可以使用共同的名字引用它。数组可被定义为任何类型,可以是一维或多维。数组中的一个特别要素是通过下标来访问它。数组提供了一种将有联系的信息分组的便利方法。 注意...
你可能注意到了,在前面关于数据类型和数组的讨论中没有提到字符串或字符串数据类型。这不是因为Java 不支持这样一种类型,它支持。只是因为Java 的字符串类型,叫做字符串(String ),它不是一种...
如果你是一个经验丰富的C/C++ 程序员,那么你知道这些语言提供对指针的支持。然而,在本章中没有提到指针。这样做的道理很简单:Java 不支持或不允许指针(或者更恰当地说,Java 不支持程序员来访问...
Java 提供了丰富的运算符环境。Java 有4大类运算符:算术运算、位运算、关系运算和逻辑运算。Java 还定义了一些附加的运算符用于处理特殊情况。本章将描述Java 所有的运算符,而比较运算符in...
Java 定义的位运算(bitwise operators )直接对整数类型的位进行操作,这些整数类型包括long,int,short,char,and byte 。表4-2 列出了位运算: 表4....
关系运算符(relational operators )决定值和值之间的关系。例如决定相等不相等以及排列次序。关系运算符如表4-4 所示: 表4-4 关系运算符及其意义 运算符意义 == 等于!=...
布尔逻辑运算符的运算数只能是布尔型。而且逻辑运算的结果也是布尔类型(见表4-5 )。 表4-5 布尔逻辑运算符及其意义 运算符 含义 & 逻辑与 | 逻辑或 ^ 异或 || 短路或 && 短路与 ...
在第2章中你已经使用过赋值运算符。下面我们正式讨论它。赋值运算符是一个等号“=”。它在Java 中的运算与在其他计算机语言中的运算一样,其通用格式为: var = expression; 这里,变...
Java 提供一个特别的三元运算符(ternary )经常用于取代某个类型的if-then-else 语句。这个运算符就是?,并且它在Java 中的用法和在C/C++ 中的几乎一样。该符号初看起来有些...
圆括号(Parentheses )提高了括在其中的运算的优先级。这常常对于获得你需要的结果是必要的。例如,考虑下列表达式: a >> b + 3 该表达式首先把 3 加到变量 b,得到一个中间结果...
编程语言使用控制(control )语句来产生执行流,从而完成程序状态的改变,如程序顺序执行和分支执行。Java 的程序控制语句分为以下几类:选择,重复和跳转。根据表达式结果或变量状态选择(Selec...
Java 的循环语句有for,while 和 do-while 。这些语句创造了我们通常所称的循环(loops)。你可能知道,一个循环重复执行同一套指令直到一个结束条件出现。你将看到,Java 有适合...
Java 支持 3 种跳转语句:break,continue 和return 。这些语句把控制转移到程序的其他部分。下面对每一种语句进行讨论。 注意:除了这里讨论的跳转语句,Java 还支持另一种能...
类是Java 的核心和本质。它是Java 语言的基础,因为类定义了对象的本性。既然类是面向对象程序设计Java 语言的基础,因此,你想要在Java 程序中实现的每一个概念都必须封装在类以内。 因为类...
正如刚才讲过的,当你创建一个类时,你创建了一种新的数据类型。你可以使用这种类型来声明该种类型的对象。然而,要获得一个类的对象需要两步。第一步,你必须声明该类类型的一个变量,这个变量没有定义一个对象。实...
对象变量的赋值和你直觉期望的不同。例如,你认为下面的程序段是做什么呢? Box b1 = new Box(); Box b2 = b1; 你可能认为,变量b2被赋值为变量b1对象引用的一个拷贝。也...
在本章的开始提到,类通常由两个要素组成:实例变量和方法。方法是个很大的话题,因为Java 给他们如此大的功能和灵活性。事实上,下一章的大部分都用来介绍方法。然而,你现在需要学习一些基础以便你能开始把方...
每次在创建实例变量,对类中的所有变量都要初始化是很乏味的。即使你对setDim ( ) 这样的方法增加有用的功能时,你也不得不这样做。如果在一个对象最初被创建时就把对它的设置做好,那样的话,程序将更简...
有时一个方法需要引用调用它的对象。为此,Java 定义了this 这个关键字。this 可以在引用当前对象的所有方法内使用。也就是,this 总是调用该方法对象的一个引用。你可以在当前类的类型所允许对...
由于使用new运算符来为对象动态地分配内存,你可能想知道这些对象是如何撤消的以及他们的内存在以后的重新分配时是如何被释放的。在一些语言,例如C+ + 中,用delete 运算符来手工地释放动态分配的对...
有时当撤消一个对象时,需要完成一些操作。例如,如果一个对象正在处理的是非Java 资源,如文件句柄或window 字符字体,这时你要确认在一个对象被撤消以前要保证这些资源被释放。为处理这样的状况,Ja...
尽管Box 类在说明一个类的必要的元素时是有用的,但它实际应用的价值并不大。为了显示出类的真实的功能,本章将用一个更复杂的例子来说明类的强大功能。如果你回忆起在第2章中讲过的面向对象编程的讨论,你就会...
在Java 中,同一个类中的2个或2个以上的方法可以有同一个名字,只要它们的参数声明不同即可。在这种情况下,该方法就被称为重载(overloaded ),这个过程称为方法重载(method overl...