一二章从略
三.Java的基本程序设计结构
3.1:一个简单的Java应用程序
public class test
{
public static void main(String[]args)
{
System.out.println("Hello Word")
}
}
所有的Java程序均具有以上结构,即
1.声明类名及属性
2.调用主方法
3.写入方法内容
public(公有的)为访问修饰符(access modifier)修饰符用于控制程序其他部分对这段代码的访问级别
关键字class表明了java程序中的全部内容均应该放置在类中。类是程序逻辑的容器,程序逻辑定义了应用程序的行为。
类的命名规则:仅介绍驼峰命名法。即若有多个单词,则每个单词的首字母均需大写。
Java中void方法没有返回值,因此main方法没有为操作系统返回“退出码”。若main方法正常退出,则Java程序的退出码为“0”,若需要返回其他的退出码,则需要在最后调用方法System.exit。
Java语句的通用语法为:
object.method(parameters)即等价于函数调用。
其中object为类名,method为对象名,parameters为方法名。
Java中方法可实现无参调用
拓展:System.out中含有两个方法println及print,其中println为输出后添加换行符,而print则不进行换行。
3.2:注释
//从本行开始到结尾
/* */用于界定较长注释
/** /自动生成注释文档
注意/**/注释不可嵌套,因为代码块中可能含有/界定符
3.3:数据类型
Java是一种强类型语言,即意味着我们必须为每个变量声明一种类型。
Java中共有8种基本类型。
3.3.1:整型
整型用于表示没有小数的值,允许表示负数,Java提供了4种整型(int short long byte)
其中byte和short用于特定的应用场合,例如处理底层文件或者存储空间极为宝贵的大数组。
long数值后具有后缀l或L(例如400000L)
Java中十六进制数有前缀0X,八进制则是前缀0,因此八进制极易混淆。从java7开始,加上前缀0B或0b即可写入二进制数。
在Java中,所有数值类型所占据的字节数与平台无关,这也是Java跨平台编译的原因之一。例如int型只占4字节(32位),short型占2字节,long型占8字节 ,byte型只占1字节。
拓展:Java中可以将有符号的整数值解释为无符号数。例如,一个byte值b可用于表示-128~127,也可用来表示0~255间的值。若需要进行除加减乘以外的运算,则需要调用Byte.tollnsignedInt(b)方法来得到一个0~255的int值。
3.3.2:浮点型
浮点类型用于表示带有小数部分的值。Java中有两种浮点类型(float double)其中float类型数值有后缀f或F,若无后缀则默认为double类型。
注意:可以使用十六进制表示浮点数值,如0.125=2^-3可以表示为0X1.0p-3。在十六进制中,p表示指数(因为e是十六进制的数值)注意尾数用十六进制而指数则是十进制,指数的基数是2而非10。
浮点数计算遵循IEEE754规范。
三个特殊的浮点值(表示溢出和出错)
1.正无穷
2.负无穷
3.NaN
注意:常量Double.POSITIVE_INFINITF, Double.NEGATIVE_INFINITY, Double.NaN 以及对应的float类型常量分别表示这三个特殊的值。
所有的非数值均是不相等的。即我们不能用:
if(x==Double.NaN)
来检测x是否是非数值。
最后,若我们在数值计算中不允许任何误差,则应该使用BigDecimal类。
3.3.3:字符类型
char类型的字面量需用单引号括起来,例如‘A’是编码为65的字符常量,而“A”则是包含一个字符串A的字符串
在Java中,char描述了UTF-16编码中的一个代码单元。
3.3.4:boolean类型
布尔类型有两个值:false和true
整型与布尔型之间不可相互转换。
3.3.5:Java中基本数据类型的相互转换
byte = b;
int i = b;
long l = b;
float f = b;
double d = b;
以上由小到大排列的数据类型可以直接转换(值的范围大小)
char型转整型会转换成对应的ASCII码值。
例如:char c = ‘c’;
int i = c;
System.out.println(“output=”+i)
输出应为:output=99
对于byte,short,char三种同一级别的数据类型,需用到强制转换。但强制类型转换会导致溢出或者精度下降。
3.4变量与常量
3.4.1:变量
Java中使用变量来存储值,常量即值不变的变量。下划线——不可用于变量名,变量名同时对大小写敏感。
声明变量后必须用赋值语句对其进行显式初始化。从Java10开始,对于局部变量,若可以通过初始化的值推断出其类型,则可以在声明时不声明类型,使用关键字var即可。
3.4.2:常量
在Java中,利用关键字final指示常量。final表示这个变量仅能进行一次赋值。因此即使是局部常量一旦赋值也不可能在他出进行重新赋值。习惯上,常量名使用全大写。
Java中,类常量用static final修饰,可在类中多个方法使用。
注意:类常量定义于main方法的外部,同时public常量在其他类中也可以使用。const是Java的保留关键字,Java中必须用final定义常量。
3.4.3:枚举类型
当变量的取值在一个有限集合内,我们便可以自定义一个枚举类型。枚举类型包括有限个命名的值,例如:
enum size{S.M.L.X}
现在我们可以声明变量
Size s = Size.S;
其中Size类型的变量只能存储这个类型声明中给定的某个枚举值或者空值null。
Date:2020.07.26