Java程序架构
1.一个Java程序文件,由一个或多个类(class)组成。但最多只能有一个public修饰的类(也可以没有),而且public类的名字必须和文件名相同。
2.类一般由若干变量和方法组成,我们初学采用的最简单的结构。
如: public class Example
{
int x,y;
public int getX(…){…}
public static void main(…){…}
}
Java程序架构
3.一个类中最多只能有一个main方法(也可以没有),main方法是整个程序的入口,即程序从main方法开始执行。
4.只有具有main方法的类才可以被执行。用“java main方法所在的类名”来执行。
5.严格区分大小写,如“System”与“system”不同,“String”与“string”不同。
第02章
Java基础
2.1 Java符号
2.1.1 标识符和关键字
如变量、常量、方法和类的名字,都是标识符。Java对标识符的定义有如下规定:
(1)标识符长度不限,但不宜过长;
(2)标识符可以由字母、数字、下划线“_”和美元符号“$”组成,但必须以字母、下划线或美元符号开头;
(3)标识符区分大小写,如money与Money是不同的。
2.1 Java符号
关键字:通常也称保留字,是程序
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
语言本身已经使用并赋予特定意义的一些标识符,如int、if、new就是关键字。(见书本12页表2-1)
编程时,标识符的名字不能与关键字相同。
习题:
1. 以下标识符中,哪些是正确的?
(1)jia1_2 (2)1_2jia (3)$_jia(4)123
2. 下面的语句有错吗?若有,错在哪里?
public class return
{ int 4_ret = 5; }
2.1 Java符号
注意:Java符号必须在英文输入法状态下输入。
2.1.2 算术运算符和分隔符
运算符如:+、-、*、/、++、--等;
分隔符如: ()、{}、[]、空格;
2.1.3 注释
注释是程序中的说明性文字,是程序的非执行部分,可以增加程序的可读性。Java有3种注释方式:
(1)“//”符号,它表示从“//”开始到行末都作为注释;
2.1 Java符号
(2)“/* 注释部分 */”,表示从“/*”到“*/”作为注释部分;
(3)“/** 注释部分 */”,表示从“/**”到“*/”作为注释部分;
2.2 数据类型与变量、常量
2.2.1 数据类型
long占8;int占4;short占2;byte占1;char占1;float占4;double占8;boolean只能为true或flase
2.2 数据类型与变量、常量
2.2.2 常量
1.整数类型常量
Java中整数的类型可分:long、int、short和byte。
(1)十进制数:如10、-39;
(2)八进制数:以零开头,其中每一位数的范围是0~7,如015,047;
(3)十六进制数:以0x开头,每位数的范围是0~9、A~F,如0xAB,0x1A;
2.2 数据类型与变量、常量
2.浮点型常量
浮点型就是可以带小数点的数据类型。
(1)表示形式:
小数点形式如12.37,-0.594等;
指数形式如2.5E-4(表示2.5x10-4);
(2)单精度和双精度常数的表示方法
可以在常数后面加F(f)或D(d)来表示单精度或双精度,如12.37F,-0.5946D。
3.字符型常量
一般表示形式有:
(1)用单引号括起来的单个字符,如‘A’,‘c’;
(2)一些控制字符,用转义符表示,如‘\n’换行;
2.2 数据类型与变量、常量
2.2 数据类型与变量、常量
4.字符串常量
是用又引号括起来的由0个或多个字符组成的字符序列,如:“how are you”或“”(空字符串);
5.布尔型常量
只有true(真)和false(假)两种,true表示逻辑的真,false表示逻辑的假。
习题P28:
3.下面这些是常量吗?是什么类型的常量?
true、-66、042、N、‘//’、0L、0xa1、“//”、s
2.2 数据类型与变量、常量
2.2.3 变量
变量是程序运行过程中其值可以改变的量。变量蕴涵两个含义:其一是变量的名称;其二是赋给变量的值。
在对变量进行赋值或使用之前,必须对变量进行声明,否则程序会编译出错。
变量的声明格式:(方括号为可选项)
类型名 变量名1[,变量名2][,…]
或 类型名 变量名1=初值1[,变量名2…]
例:int x=2,y; //声明x,y,并同时给x赋值
2.2 数据类型与变量、常量
1.整数类型变量
如: byte a=015; //八进制数
short x=30;
long y=1234567890123L;
int z=10000;
2.浮点类型
如: float x=10.23f
double y=10.234567d;
3.字符类型
如: char ch=‘A’;
4.字符串
如: String str=“how are you?”;
5.布尔型
如: boolean isOver = false;
2.3 语句、表达式和运算符
以int c=10+20;为例:
“int c=10+20;”是一条语句;“10+20”是表达式;“+”和“=”是运算符。
2.3.1 语句
语句是构成程序的基本单元。一条语句必须以分号“;”结尾,注意:
(1)普通语句后必须加“;”;
(2)但如if(…){}、定义类class hh{…}、定义方法int jiSuan(…){}结构等中,大小括号(){}后面是不能加“;”的;初始化数组int ss[]={…};语句中可以加“;”。
(3)但调用方法时,可以加“;”;如y=5+jiSuan(…);
2.3 语句、表达式和运算符
2.3.2 表达式
表达式(“4+5”)是包含运算符(“+”)和操作数(“4”、“5”)的算式。
2.3.3 算术运算符
1.二元运算符:指算术运算符的两侧都有操作数。包括:+、-、*、/、% 。
2.一元运算符:指运算符只需要一个操作数。包括:++、--、-,分别指加1、减1、取负。
3.算术运算符的优先级
见课本P21页。
2.3 语句、表达式和运算符
例:
Public class YunSuanFu
{
public static void main(String args[])
{
int i=5,j=10,k=15,m;
m=i++;
System.out.println(“m=”+m);
System.out.println(“i=”+i);
m=++j;
System.out.println(“m=”+m+ “ j=”+j);
m=k%4;
System.out.println(“m=”+m);
}
}
2.3 语句、表达式和运算符
2.3.4 关系运算符
关系运算符一般用来比较两个数,由关系运算符组成的表达式最终的结果是一个逻辑值(true或false),通常用作程序中的条件判断语句。
关系运算符有:>、>=、<、<=、==、!=。Java中判断是否相等用“==”。
例:if(x==0){…}
2.3 语句、表达式和运算符
2.3.5 逻辑运算符
见课本P23页。用得较多的有:!、&&、||。
(1)“!”:表示非,理解为“如果不等于0…”;如:if(!x){…}或while(!y){…}
(2)“&&”:表示并且,要求2个条件同时满足。如:if(x>4 && x<10){…}表达4
10){…}表达x<4或者x>10。
习题:1.给定星期几(字符串,比如“星期一”)和时间(整数,比如10),请判断是该休息还是迟到了。如果是星期六或星期天,则该休息,否则时间在8~12之间则算迟到。
2.3 语句、表达式和运算符
2.3.6 位运算符(见课本P24)
2.3.7 赋值运算符
赋值运算的一般形式:变量名=表达式;其中“=”是赋值运算符。
其它还有:+=、-=、*=、/=、%=等。它们可以看作是简写,如:
i+=10等价于i=i+10;
2.4 数据类型的转换
分“自动类型转换”和“强制类型转换”。
2.4.1 自动类型转换
条件:
(1)转换前的数据类型与转换后的数据类型兼容;如:不能将String类型转换为int。
(2)转换后的数据类型比转换前的数据类型表示的范围大。
数据类型的范围从小到大依次为:byteshortintlongfloatdouble。
问题:int a=10,b=3;float c=1.2345f;请为输出a/b为多少?c/b为多少?为什么?
2.4 数据类型的转换
2.4.2 强制类型转换
强制转换要么是为了保证计算的精度,要么是为略去不必要的数据。
强制转换的格式为: (数据类型)变量
例:int x=5,y=2; float z;
z=(float)x/y; //保证精度
System.out.println(z);
z=5.6f;
x=(int)z/y; //(int)(z/y)略去小数
System.out.println(x);
问题:float y=5.6f,x=2.8f;那么(int)y/x;与(int)(y/x)的结果分别是什么类型?多少?
2.4 数据类型的转换
2.4.4 运算符的优先级
见课本P27页。
个人建议,如果不清楚优先级,可以多使用括号( )。
2.5 补充讲解内容
2.5.1 如何接收键盘输入
从键盘输入一个整数,代码如下:
String s = “”;
int d;
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
s = br.readLine();
d = Integer.parseInt(s);
(见实验指导P9)
2.5 补充讲解内容
2.5.2 利用主方法后的参数
从键盘输入一个整数,代码如下:
public static void main(String args[])
{
String s = “”;
s = args[0];
int d;
d = Integer.parseInt(s);
……
}