自考《Java语言程序设计》串讲笔记Word文件下载.docx
- 文档编号:19492889
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:44
- 大小:59.94KB
自考《Java语言程序设计》串讲笔记Word文件下载.docx
《自考《Java语言程序设计》串讲笔记Word文件下载.docx》由会员分享,可在线阅读,更多相关《自考《Java语言程序设计》串讲笔记Word文件下载.docx(44页珍藏版)》请在冰豆网上搜索。
[P7,§
1.4]
Java语言使用Unicode字符集,字符采用双字节的表示方式,共有65535个字符,最前面的128个字符与标准的ASCII字符一致,包括:
1)数字字符10个(0~9)
2)英文大小写字母各26个(A~Z,a~z)
3)下划线(_)、美元符号($)
4)文字字符(汉字,日文片假名、平假名,朝鲜文字等)
5)其他用于构成特殊符号的字符集
标识符可以用来标识文件名、变量名、类名、接口名和成员方法名等,其构造规则如下:
1)标识符由Java字母和Java数字组成;
2)首字符必须是Java字母;
3)除去关键字、false、true和null;
4)所有标识符是区分大小写的。
关键字是Java语言保留的一些英文单词,具有特殊的含义。
例如:
public、static和class,具有特殊用途,不能作为标识符使用。
基本数据类型。
[P8-10,§
1.5]
布尔型(boolean)1个字节(true或false)
字符型(char)16位
字节型(byte)8位
短整型(short)16位
整数型(int)32位
长整型(long)64位
单精度浮点型(float)32位
双精度浮点型(double)64位
Java直接量是直接显式地表示基本数据类型数据、字符串(String)值和空引用值(null)的表达式,而且在该表达式中不含运算。
布尔(boolean)直接量只有两个:
true和false
字符(char)直接量:
如‘a’,‘6’,‘猫’,‘\u0061’,‘\n’
整型(byte,short,int)直接量:
如-27,+0123,0x56ab
长整型(long)直接量:
如-27L,+0123L,0x56abL
浮点数(float,double)直接量:
如1.5,45.6D,100d,76.4e8,-32.0,1.5F,45.6f,76.4E-8F,-32.0F
字符串(String)直接量:
如“HelloWorld!
”
引用数据类型的直接量:
null
变量在计算机内部对应着一个存储单元,而且总是具有某种数据类型:
基本数据类型或引用数据类型。
每个变量均具有:
名字、类型、一定大小的存储单元以及值。
变量总是具有与其数据类型相对应的值。
基本数据类型:
变量的存储单元中存放的是具体的布尔值或数值;
引用数据类型:
变量的存储单元中存放的是引用值,引用值一般用来指向某个具体的对象。
如果引用值是null,则该引用值不指向任何对象。
在使用变量前,必须先定义该变量,而且一般要求先初始化。
例如:
intstudentNumber;
//定义单个变量
studentNumber=30;
//给变量赋值
doublevelocity,distance;
//定义多个变量
intstudentNumber=30;
//定义变量,并赋初值
第2章运算和语句
赋值运算。
[P13,§
2.1.1]
●简单赋值运算,格式如下:
变量=表达式
不是“相等”运算符(“==”)。
赋值语句中的数据类型转换只能是简单类型向复杂类型转换,不能从复杂的转换成简单的。
转换规则如下:
byte→short→int→long→float→bouble
●复合赋值运算,格式如下:
变量双目算术运算符=表达式
包括:
+=、-=、*=、/=、&
=、|=、%=、<
<
=、>
>
=和>
=。
a+=b等价于a=a+b,a/=b+c等价于a=a/(b+c)。
算术运算符。
[P14,§
2.1.2]
算术运算符包括:
+(取正),-(取负)(单目运算)
+,-,*,/,%(双目运算)
注意事项:
1)当操作数是定点类型数据时,应当注意运算是否会溢出
inti=123456;
i=i*i;
//溢出
2)整数除法:
截去余数,7/5结果为1
3)考虑除数是否可能为0或很小的数
4)取模:
返回余数,可以对定点或浮点数进行取模运算,7%5结果为2;
15.25%(-0.5)结果为0.25
自增自减运算。
2.1.3]
自增(++)和自减(--):
操作数必须是变量;
有前置和后置两种运算
intn=3;
inti=n++,j=n--;
//i=3,j=4,n=3
intk=++n,m=--n;
//k=4,m=3,n=3
前缀和后缀,对变量本身,效果相同;
但表达式的值不相同。
运算对象只能是变量,不能是常量或表达式,如:
7++;
(i+j)--都是非法的。
关系运算符。
[P15,§
2.1.4]
关系运算符包括:
<
、>
、<
=、==和!
=,关系运算生成一个布尔结果。
1>
2;
//false
3.5!
=1;
//true
51.5>
=23.0;
//true
540<
=654;
24==3*8;
booleantest1=(10<
10);
//test1=false;
关系运算符的优先级:
、>
=优先于==、!
=;
=优先级相同,结合性是自左向右;
==、!
=优先级相同,结合性是自左向右。
【注意】Java不允许将一个数字作为布尔值使用,这与c或c++不同。
当要表达“如果a不等于0”这个条件
不能写作if(a)
而要写作if(a!
=0)
逻辑运算符。
2.1.5]
逻辑运算的操作数必须是布尔型,结果也是布尔型。
可以有3种基本操作:
与(&
&
)、或(||)、非(!
)。
短路规则:
一旦能够明确无误的确定整个表达式的值,就不再计算表达式余下的部分了。
因此,整个逻辑表达式靠后的部分可能不会计算。
比较:
(birthday==true)&
(++age>
=65)
(birthday==true)||(++age>
!
优先于双目算术运算符优先于关系运算符优先于&
优先于||
条件运算符。
[P16,§
2.1.6]
条件运算符是一个三目运算符,一般形式为:
逻辑表达式?
表达式1:
表达式2
inti=5;
intk=(i>
=0)?
1:
-1;
条件运算符的结合性为“自右至左”。
x>
y?
x:
u>
v?
u:
v等价于
x>
(u>
v)
位运算和位移运算。
[P17,§
2.1.7]
位运算符包括:
、|、~、^、
移位运算符有:
>
和<
、|、~、^按位求与、或、非、异或
带符号右移:
左端空出的位填原符号位
左移:
右端空出的位补0
不带符号右移(逻辑右移):
左端空出的位填0(C或C++中无此运算符)
位运算操作是:
先将整数写成二进制形式(补码),然后按位操作,最后产生一个新的数
注意:
只用于定点类型数据(整型)
基本语句。
[P20,§
2.2.1]
表达式语句:
k=k+2;
空语句;
break语句:
break;
用于循环或选择
continue语句:
continue;
同上
return语句:
return;
return表达式;
该语句的执行将结束方法的执行,只能出现在方法体中。
复合语句。
[P21,§
2.2.2]
用花括号引起来的两条或两条以上语句,顺序执行但作为一个整体。
在复合语句中可以定义自己专用的临时变量。
if语句。
[P22,§
2.2.3]
if语句的格式是:
if(布尔表达式)
语句
或
{
一条或多条语句
}
if(score>
=60)
System.out.println("
Passed"
);
if-else语句。
if-else语句的格式是:
语句1或语句块1
else
语句2或语句块2
if(score>
=60)
System.out.println("
Passed!
"
Failed!
标准嵌套if-else控制结构可实现多路选择,用在想从多个候选项中选择且只选出一项时。
if(score>
90)
System.out.println(“A”);
elseif(score>
=80)
System.out.println(“B”);
=60)
System.out.println(“C”);
System.out.println(“F”);
switch语句。
[P23,§
2.2.4]
switch语句的格式是:
switch(表达式)
case值1:
语句组1;
break;
case值2:
语句组2;
……
case值n:
语句组n;
default:
语句组(n+1);
switch表达式的数据类型可以是基本类型char、byte、short、int;
或是这四种基本类型相对应的包装类java.lang.Character、java.lang.Byte、java.lang.Short、java.lang.Integer或enum枚举类型。
跟在case后的必须是常量表达式,其值的类型应当与switch表达式的数据类型相匹配。
Switch语句的执行规则:
1)求出表达式的值;
2)找出给定值与表达式相符的case语句,执行此case标号后的所有语句(除非遇到break语句),直到switch语句结束;
3)若没有匹配的case语句,则转向defalult语句,执行default标号后的所有语句,直到switch语句结束。
4)若没有匹配的case语句,也没有defalult语句,则switch语句的这次执行立即结束。
try…catch语句。
[P25,§
2.2.5]
try{
语句块//执行该语句块,可能会发生异常
}catch(异常类型e){
异常发生时要执行的语句块
}finally{
无论异常发生与否,都要执行的语句块
说明:
1)Catch和finally必须和一个try相关联
2)try至少要有一个catch,可以有多个
3)finally语句块是可选的
while语句。
[P26,§
2.2.6]
while语句的格式:
while(布尔表达式)
语句或语句块
当条件(布尔表达式)为true,则不断地执行语句或语句块。
“while”循环的中止条件是布尔表达式变为false,如果布尔表达式一开始就为false,则不执行循环体。
有时循环条件很难写出,可以直接使用true,格式如下:
While(true){
…
If(条件表达式)break;
do-while语句。
[P27,§
2.2.7]
do-while语句的格式是:
do
while(布尔表达式);
do-while和while结构唯一的区别就是do-while中的语句至少会执行一次,即便布尔表达式第一次就被计算为false。
注意最后的分号,一定不能省略。
for语句。
[P28,§
2.2.8]
for语句的格式是:
for([初始化表达式];
[条件表达式];
[更新表达式])
intcounter,sum;
for(counter=1,sum=0;
counter<
=100;
counter++)
sum+=counter;
System.out.println(“counter=“+counter+”,sum=”+sum);
注意变量counter和sum的作用域,若将它们改在for语句内部定义,会有何不同。
在for语句的初始化和更新部分,可以使用多个由逗号分隔的表达式,这些表达式都会独立执行。
for(int1=1,j=i+10;
i<
5;
i++,j=i*2){
System.out.println(“i=”+i+“j=”+j);
}
注意:
通过逗号操作符,可以在初始化部分定义多个变量,但这些变量必须具有相同的类型。
无论在初始化还是更新部分,表达式都是顺序执行的。
嵌套的循环结构。
[P29,§
2.2.9]
for循环的嵌套
while循环的嵌套
do..while循环的嵌套
以上三个任意之间的嵌套
continue语句。
[P30,§
2.2.10]
格式:
功能:
跳过continue之后的语句,重新判断循环控制条件,决定是否继续循环。
(1)continue语句只能用在三种循环语句的循环体中。
(2)continue语句通常和if语句联合使用,从而构成其后的部分循环体是否执行的单分支结构。
break语句。
强制结束当前的循环,不再执行循环体中break后面的语句。
(1)break语句只能在三种循环语句的循环体和switch语句中使用。
(2)在循环语句中break通常和if语句联合使用,用于构成第二个退出循环的机会。
Package语句。
[P31,§
2.2.11]
程序包相当于其它语言的函数库,系统提供大量的程序包,自己编写的类也可以组成程序包,但一定要用package语句声明。
package包名;
包名是一个目录名,可以有路径。
import语句。
[P32,§
2.2.12]
用来引入所需要的类
import包名.类名;
importjava.util.Date;
//引入Date类
如果从一个包中引入多个类,可以用通配符“*”,如:
importjava.awt.*;
一个java源程序中可以有多个import语句,它们必须出现在package语句之后;
类的定义之前。
Java程序的基本结构。
2.2.13]
[package包名;
]
…//更多的import语句
[public]class类名{
intval=…//变量定义语句
Publicstaticvoidmain(Stringargs[])
//方法定义
{
…//变量定义和控制语句构成的方法体
第3章面向对象编程基础
抽象(见课本39页)
抽象是程序设计最经常使用的技术之一,是有效控制程序复杂性的重要手段。
在面向对象程序设计中:
把一系列复杂的属性与动作组织到单个模块中,然后把该模块当作一个整体(对象)来对待,就是一种抽象形式。
把一个问题分解成构成它的对象,也是一种抽象形式。
对象(object)
万物皆为对象,它存储数据,还可以要求它在自身上执行操作。
对象具有状态、行为和标识。
这意味着每一个对象可以拥有内部数据(它们给出该对象的状态)和方法(它们产生行为),并且每一个对象都可以唯一地与其他对象区分开来(每一个对象在内存中都有唯一一个地址)。
消息(message)
在面向对象框架中,对象之间通过相互发送消息来进行交互。
在Java里,通过调用方法来传递消息。
类(class)
类定义了某种类型的所有对象所具有的属性与行为,是用来创建对象的蓝图或模板;
对象是某个确切类的实例。
在创建一个类的实例(对象)之前必须定义这个类。
继承性(inheritance)
继承机制:
属于一个子类(派生类)的对象从其父类(基类)中继承了全部属性和行为。
所有可以发送给父类对象的消息也可以发送给子类对象。
多态性(polymorphism)
对象的多态性是指在超类中定义的属性或行为被子类继承之后,可以具有不同的数据类型或表现出不同的行为。
这使得同一个属性或行为在一般类及其各个子类中具有不同的语义。
联编(见课本41页)
联编是指将发送给对象的消息与包含执行该消息方法的对象连接起来。
静态联编:
在编译和连接阶段实现的联编。
动态联编:
在运行阶段实现的联编。
动态联编是实现适应性多态的基础。
类(见课本41-44页)
(1)类的声明
类的定义格式如下:
[类修饰词]class类名[extends父类名]
[implements接口名称列表]
类体
//通常先定义成员变量,再定义构造方法,最后编写成员方法
(2)成员变量
成员变量的定义格式如下:
[修饰词列表]类型变量名或带初始化的变量名列表;
privatefloatheight,weight;
privateStringname,sex,no;
(3)方法
类的成员方法:
简称方法,用来实现类的各种功能。
方法的定义格式如下:
[方法修饰词列表]返回类型方法名(方法的参数列表)
{
方法体
publicintmb_method(){…}
publicstaticvoidmain(Stringargs[])
{…}
例3.2(若某方法的参数名或局部变量名与类的成员变量名相同,则成员变量名在这个方法内部暂时被隐藏。
)
例3.3(关键字this:
对当前对象的引用)
例3.4(方法重载)
(4)构造方法
构造方法用来创建类的实例,并对对象初始化。
构造方法的声明和一般方法声明非常相似,但是它必须和类同名,并且不能声明返回值类型。
构造方法的一般形式:
public<
类名>
(<
参数列表>
){<
语句>
例3.5
默认的构造方法:
当一个类没有包含构造方法时,Java将自动提供一个默认的构造方法。
对象(见课本44-46页)
(1)声明对象
声明一个对象只是命名一个引用变量,这个引用变量和对象关联,可以用来引用该对象。
声明一个对象的格式如下:
类名变量名(对象名);
例如,声明对象:
Pointp1,p2;
不要把声明一个对象和创建一个对象混淆起来。
声明对象并不会为这个对象分配内存。
(2)创建对象
创建对象:
使用new操作符和构造方法。
构造方法是在对象实例化过程中使用的特殊方法;
操作符new为新的对象分配一片内存并将它存储在那里,然后返回对象的地址。
格式为:
new构造方法名(构造方法的调用参数列表)
例如:
p1=newPoint();
p2=newPoint(30,40);
声明和创建对象也可以一起完成,例如:
Pointp3=newPoint(),p4=newPoint(60,70);
(3)对象的内存模型
在Java中有两种类型的变量:
基本类型与引用类型。
基本类型的变量总是存放一个该类型的值;
引用变量实际上存放的是它所引用的对象的地址,而不是存放对象本身。
在Java中,主要有数组和类类型是引用类型。
课本45页,图3.1、3.2
(4)使用对象
程序使用对象:
访问对象的成员变量,一般形式为:
对象名.成员变量名
调用对象的方法,一般形式为:
对象名.方法名([参数表])
例3.6
实例变量和类变量(见课本46页)
被关键字static修饰的变量为类变量(静态变量),未被关键字static修饰的变量为实例变量。
classD{
floatx;
//实例变量
staticinty;
//类变量
…
每个对象都有自己的实例变量,不同对象的实例变量也将被分配不同的内存空间。
类变量则被一个类的所有对象共享,在内存中也只有一处。
可以通过类名或对象名引用类变量。
实例方法和类方法(见课本46-48页)
被关键字static修饰的方法为类变量(静态方法),未被关键字static修饰的方法为实例方法。
例3.7
类中的实例方法可以互相调用,并可调用类方法。
类方法也能相互调用,但不能直
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java语言程序设计 自考 Java 语言程序设计 串讲 笔记