当前位置:文档之家› Java程序设计教程

Java程序设计教程

Java程序设计教程Java Software Solution第一章.计算机系统概述1.1 计算机处理过程Computer Processing·计算机系统中的关键硬件组件:1.中央处理器(CPU)Central Processing Unit-处理程序指令2.输入/输出设备(I/O)设备Input/Output Devices-提供人机交互界面3.主储存器Main Memory-储存当前执行中的程序和其相关的数据4.辅助储存器设备Secondary Memory Devices-以相对永久的方式保存软件1.5.5 错误·程序开发过程中的三种类型错误:1.编译时错误Compile-time Error-编译器将检查整个程序以保证没有语法错误-如果任何一条语句没有遵守语法规则, 编译器将产生一条语法错误信息-任何被编译器识别出的错误称为编译时错误Any error identified by the compiler is called a compile-time error2.运行时错误Run-time Error-出现在程序执行过程中, 将导致程序异常终止-Example, if we attempt to divide by zero, the program will “crash”and halt execution at that point. (0不可以做被除数)3.逻辑错误Logical Error-属于软件问题-程序可以正常编译和执行,但是执行结果不正确第二章.数据与表达式Data and Expression2.1 字符串Character String·一个字符串是一个对象,由String类定义;·字符串是计算机程序设计中非常基础的类型,因此java允许定义字符串常量(String Literal),并以双引号(“”,double quotation)作为字符串的分界符;2.1.1 print和println方法·println方法和print方法都是由System.out对象提供的可用服务;·print方法输出发送给它的信息后保持光标的当前位置;·println方法输出发送给它的信息后将光标移至下一行的起点(advance to the beginning of the next line)2.1.2 字符串拼接String Concatenation2.1.3 转义序列Escape Sequences·Java语言中,双引号用于表示一个字符串的开始与结束,因此必须使用一种技术来输出双引号本身。

由此Java定义了若干个转义序列来表示特殊字符;·Java转义序列:转义序列意义\t 制表符\n 换行符\r 回车符\”双引号2.2 变量与赋值2.2.1 变量Variables·变量代表保存数据的内存单元,用于保存具有某种数据类型的值;(A variable is a name for a memory location used to hold a value of a particular data type.)·变量声明(Variable Declaration)要求编译器分配足够大的内存单元来保存指定类型的值;1.变量声明由类型说明符以及后续的变量名列表组成;2.每一个变量可以在声明时用指定的表达式初始化(initialized);3.如果声明中使用了final修饰符,则声明的标识符命名为常量,且一旦赋值就不可改变;2.2.2 赋值语句The Assignment Statement·基本赋值语句用赋值运算符(=,assignment operator)将表达式的计算结果保存到指定的标识符所代表的内存单元(通常为常量)中;·Java语言强调数据类型(Java language is strongly typed),这意味着不允许给一个变量赋予一个具有与该变量所声明的数据类型不一致的值;2.2.3 常量Constants·常量存在期间保存着一个特定的值,并在赋予初始值后不可改变,否则编译器将产生错误信息2.3 基本数据类型Primitive Data Type·Java有8种基本数据类型:-4种整形(Integers):byte,long,int,short;-2种浮点型(Floating Points):float,double;-字符型(Character Data Type);-布尔型(Boolean Type);2.3.1 整形与浮点型Integers and Floating Points2.3.2 字符型Character Type·字符型也是一种基本数据类型,而String不是Java的数据基本类型而是一个类;·单个字符可以视为一项数据,由字符可以组成字符串;·在Java中,用单引号(‘’,single quotes)表示字符常量;2.3.3 布尔型Boolean Type·Java用保留字boolean定义布尔变量。

一个布尔变量包括两种有效值,true和false;·Java中德单词true和false用做表示布尔常量值的保留字;2.4 表达式Expression·表达式是运算符(Operators)和操作数(Operands)按一定规则构成的组合,用于完成计算;2.4.1 算数运算符Arithmetic Operator·算数运算符用于整形和浮点型数据的运算,包括加( + addition)、减( - subtraction)、乘( * multiplication)、除( / division)。

Java还提供了另一种算数运算:求余运算(%remainder operator),求余运算返回第二个操作数除第一个操作数的余数;2.4.2 运算符优先级Operator Precedence优先级运算符运算结合方向2 */% 乘法除法求余从左到右3 +-+加法减法字符串拼接从左到右4 = 赋值从右到左2.4.3 自增和自减运算符Increment and Decrement Operators·自增运算符(++)自减运算符(--)2.4.4 赋值运算符Assignment Operator·基础赋值运算符(=);·组合赋值运算符:+=、-=、*=、/=、%= ……2.5 数据类型转换Data Conversion2.5.1 类型转换的安全性·扩展型转换:使用相等的或更大的数据储存空间来保存类型转换后的值,因而是更安全的转换类型,一般不会丢失信息;·压缩型转换:使用更少的存储空间来保存类型转换后的值,相对与扩展型转换而言更容易丢失信息,原则上应当避免这种类型的转换;·Boolean型值不能转换为任何一种基本类型,反之亦然;2.5.2 数据类型转换技术Conversion Techniques·在Java中,数据转换的方式有3种:1.Assignment conversion 赋值型转换;2.Promotion “低级别”类型向“高级别”类型的自动类型转换;3.Casting 强制类型转换;·强制转换类型是Java中最常见的类型转换形式;2.6 交互程序Interactive Programs2.6.1 Scanner类The Scanner Class·Scanner类提供了一些从不同数据源读取各种类型数据的方法·在使用Scanner类时,首先必须创建Scanner类对象以便引用其方法。

在Java中用new运算符创建对象,声明语句如下:Scanner scan = new Scanner (System . in);System.in对象代表标准输入流设备,默认时为键盘·除非特别说明,Scanner对象假定空白字符用于分离输入数据流中的各个数据项(称为token)。

如果输入数据项是用非空白字符分隔开的,则可以重新定义一组输入分隔符;第三章.使用类和对象Using Classes and Objects3.1 建立对象Creating Objects3.1.1 对象引用变量的声明和初始化Declaration and Initialization·在Java中,变量名代表一个基本类型值或一个对象。

如基本类型变量一样,对象变量也必须声明(Declaration),定义对象的类可以视为对象的类型;·一个对象变量不能保存对象本身,而是保存该对象的地址,因此对象变量也称为对象引用变量;·使用变量前先初始化(Initialization)是至关重要的。

这意味着在应用该变量前,必须确信已经使该变量指向一个有效的对象。

如果在初始化之前使用对象引用变量,计算机一班都将发出错误信息;·可以将一个对象引用变量设置为null,null是Java的保留字,专门用于表示一个对象引用变量不指向任何对象;3.1.2 别名Aliases·一个对象的多个名字,它们相互成为对方的别名;·别名的重要意义在于,当利用一个引用改变其所指对象时,同时也使作为别名的所有引用指向的对象发生了改变,因为实际上只存在一个对象;·所有与对象的交互都体现在使用对象引用变量,所以仅当有一个对象引用变量时,才能使用对象。

当一个对象所有的引用都丢失(可能是由于重赋值)后,它就再也不能为程序所用,即程序中不能再引用该对象的方法或数据成员,此时该对象称为“垃圾”;3.2 String类String类的部分方法3.3 包Packages3.3.1 包的概念·类库由一组支持程序开发的类组成。

一个编译器或开发环境以一个类库为基础。

类库本身并不属于某种语言。

例如,String类并不是Java语言的内建部分,而是Java标准类库(Java standard class library)的一部分;·类库由几组相关的类簇构成,有时称为Java API,即应用程序设计接口(Application programming interface)。

有时将整个标准类库统称为Java API;·Java标准类库的类还被划分成包,每个类属于一个具体的包。

例如,String类和System类是ng包中德类,而Scanner类是java.util包中的类;·包组织名比API名更基础、更基于语言。

相关主题