1.Java主类结构
Java语言是面向对象的程序设计语言,Java程序的基本组成单元是类,类体中又包括属性与方法两部分。每一个应用程序都必须包括一个main()方法,含有main()方法的类称为主类。
注意:
代码中的所有标点符号都是英文字符。不要在中文输入法状态下输入标点符号,如双引号和分号,否则会导致编译错误。
文件名必须和类名Frist相同,即Frist.java。还要注意大小写,java是区分大小写的。
2.基本数据类型
Java中有8种基本数据类型来储存数据,字符和布尔值。
2.1整数类型
整数类型用来存储整数数值,即没有小数部3分的数值,可以是正数,也可以是负数。整形]数据根据它在内存中所占大小的不同,可分为byte、short、int和long4种类型。它们具有不同的取值范围
1.byte:内存空间为8位,字节为1,取值范围为-128~127(也就是-2的7次方~2的7次方-1)
2.short:内存空间为16位,字节为2,取值范围为-32768~32767(也就是-2的7次方~2的7次方-1)
3.int:内存空间为32位,字节为4,取值范围为-2的31次方~2的31次方-1
4.long:内存空间为64位,字节为8,取值范围为-2的63次方~2的63次方-1。例:long a=100000L。“L”理论上是不区分大小写的,但是为了与数字“1”区分开,最好还是大写
也就是说,占n位,那取值范围就是-2的n-1次方~2的n-1次方-1
整型数据在Java程序中有3种表示形式,分 别为十进制、八进制和十六进制。
1.十进制:进表现形式大家都很熟悉,如 120、0、-127。注意:不能以0作为十进制数的开头(0除外)。
2.八进制:如0123(转换成进制数为83 )、-0123(转换成十进制数为-83)。注意: 八进制必须以0开头。
3.十六进制:如0x25(转换成十进制数为 37)、0Xb0le(转换成十进制数为45086)。注意:十六进制必须以 0X 或 0x开头。
2.2浮点类型
浮点类型用来存储含有小数部分的数值。Java 语言中浮点类型分为单精度浮点类型(float)和双精度浮点类型(double),它们具有不同的取值范围。 表2.2 浮点型数据类型
数据类型 | 内存空间(8位等于1字节) | 取值范围 |
float | 32位 | 1.4E-45~3.4028235E38 |
double | 64位 | 4.9E-324~1.7976931348623157E308 |
在默认情况小数都被看作double型,若想使用float型小数,则需要在小数后面添加F或f。另外,可以使用后缀d或D来明确表明这是一个double类型数据,但加不加d或D并没有硬性规定。而定义float型变量时,如果不加F或f,系统会认为是double类型数据,进而出错。
误区警告:浮点只属于近似值,在系统中运算后的结果可能与实际有偏差。
代码
文字描述法
1:定义一个double变量height存储身高赋值为1.60
2:定义一个int变量weight存储体重赋值为48
3:定义一个double变量exponent存储BMI公式计算结果
4:打印输出赋予身高height的值
5:打印输出赋予体重weight的值
6:打印输出BMI计算后赋予exponent的值
7:打印输出判断结果
8:判断,如果exponent小于18.5,则第七步输出结果显示“体重过轻”
9:判断,如果exponent大于18.5并且小于24.9,则第七步输出结果显示“正常范围”
10:判断,如果exponent大于24.9并且小于29.9,则第七步输出结果显示“体重过重”
11:判断,如果exponent大于29.9,则第七步输出结果显示“肥胖”
运行结果
2.3字符类型
1、char型
字符类型(char)用于存储单个字符,占用16位(两个字节)的内存空间。在声明字符型变量时,要以单引号表示,如's’表示一个字符。但是“s”则表示一个字符串,虽然只有一个字符,但由于使用双引号,它仍然表示字符串,而不是字符。
同 C、C++语言一样,Java 语言也可以把字符作为整数对待。由于 Unicode 编码采用无符号编码,可以存储 65536 个字符(0x0000~0xfmf),所以 Java 中的字符几乎可以处理所有国家的语言文字。
2、转义字符
转义字符是一种特殊的字符变2量,其以反斜杠“\”开头, 后跟一个或多个字符。转义子付具有
特定的含义,不同于字符原有的意义,故称“转义”。
表2,转义字符代码
文字描述
定义一个char变量c1赋值为‘\\'
定义一个char变量c2才赋值为'\' '
定义一个char变量c3才赋值为'\'' '
定义一个char变量c4才赋值为'\u2605'
定义一个char变量c5才赋值为'\101'
定义一个char变量c6才赋值为'\t'
定义一个char变量c7才赋值为'\n'
打印输出赋予c1的值
打印输出赋予c2的值
打印输出赋予c3的值
打印输出赋予c4的值
打印输出赋予c5的值
打印输出赋予c6的值
打印输出赋予c7的值
结果
2.4布尔类型
布尔类型又称逻辑类型,只有true和false两个值,分别代表布尔逻辑中的“真”和“假”。布尔值不能与整数类型进行转换。布尔类型通常被用在流程控制中作为判断条件。
通过关键字boolean 来声明布尔类型变量。
代码
文字描述
定义一个boolean变量b1赋值为true
定义一个boolean变量b2赋值为Boolean.FALSE
打印输出赋予b1的值
打印输出赋予b2的值
结果
3.变量与常量
在程序执行过程中,其值能被改变的量称为变量,其值不能被改变的量称为常量。变量与常量的命名都必须使用合法的标识符。将向读者介绍标识符与关键字、变量与常量的声明。
3.1标识符和关键字
1.标识符
Java语言规定标识符由任意顺序的字母,下划线,美元符号和数字组成,并且第一个字符不能是数字标识符,不能是Java中的保留关键字 编写Java代码有一套公认的命名规范,如下:
(1)类名:通常使用名词,第一个单词字母必须大写,后续单词首字母大写。 (2)方法名:通常使用动词,第一个单词首字母小写,后续单词首字母大写。 (3)变量:第一个单词首字母小写,后续单词首字母大写。 (4)常量:所有字母均大写。
(5)单词的拼接:通常使用"userLastName"方式拼接来单词,而不是"user_last_name"。
2.关键字
关键字是Java语言中已经被赋予特定意义的一些单词,不可以把这些字作为标识符来使用。简单理解为凡是在Eclipse 变成红色粗体的单词,都是关键字。
3.2声明变量
变量的使用是程序设计中一个十分重要的环节。为什么要声明变量呢?简单地说,就是要告诉编译器这个变量是属于哪一种数据类型,这样编译器才知道需要配置多少空间给它,以及它能存放什么样的数据。在程序运行过程中,空间内的值是变化的,这个内存空间就称为变量。为了便于操作,给这段空间取个名字,就是我们声明的变量名。内存空间内的值就是变量值。在声明变量时可
以没有赋值,也可以直接赋给初值。
对于变量的命名并不是任意的,应遵循以下几条规则:
(1)变量名必须是一个有效的标识符。
(2)变量名不可以使用 Java 中的关键字。
(3)变量名不能重复。
(4)应选择有意义的单词作为变量名。
代码
文字描述
定义一个int变量age赋值为23
定义一个double变量PI赋值为3.14
定义一个int变量number赋值为1235
打印输出赋予number的值
打印输出赋予age的值
打印输出赋予PI的值
结果
3.3声明常量
在程序运行过程中,一直不会改变的量称为常量,通常也被称为“final 变量” ,常量名通常使用大写字母,但这并不是必须的,很多Java程序员使用大写字母表示常量,是为了清楚的表明正在使用常量
3.4变量的有效范围
在程序运行过程中,一直不会改变的量称为常量,通常也被称为“final 变量” ,常量名通常使用大写字母,但这并不是必须的,很多Java程序员使用大写字母表示常量,是为了清楚的表明正在使用常量。
1.成员变量
在类体中所声明的变量被称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为两种,即静态变量和实例变量。
2.局部变量
在类的方法体中声明的变量(方法的内部定义,"{"与“}" 之间的代码中声明的变量)称为局部变量。
在项目中创建类Val,分别定义名称相同的局部变量与成员变量,当名称相同时成员变量将被隐藏。
代码 就近原则
文字描述
定义一个int变量times赋值为4
打印输出赋予+Va1.times的值
结果
4.运算符
运算符是一些特殊的符号,主要用于数学函数、一些类型的赋值语句和逻辑比较方面。Java中提供了丰富的运算符,如赋值运算符、算术运算符和比较运算符等。
4.1赋值运算符
赋值运算符以符号“=”表示,它是一个双目运算符(又对两个操作数做处理),其功能是将右边操作数所含的值赋给左边的操作数。例如:
inta=100; //该表达式是将100赋值给变量a
左边的操作数必须是一个量,而右边的操作数则可以是变量(如 a、number)、常量(如 123、'book)、有效的表达式(如45*12)。
代码
文字描述
定义一个int变量a,b,c,a赋值为4,b赋值为a+4,c赋值为b
打印输出赋予+c的值
打印输出赋予+b的值
结果
4.2算术运算符
Java中的算术运算符主要有+(加号)、-(减号)、*(乘号)、/(除号)、%(求余),它们都是双目运算符。
代码
文字描述
定义一个键盘扫描器Scanner变量为sc ,获得控制台输入的值为new Scanner
定义一个double变量记录输入num1的值
定义一个double变量记录输入num2的值
打印输出赋予num1+num2的值
打印输出赋予num1-num2的值
打印输出赋予num1*num2的值
打印输出赋予num1/num2的值
打印输出赋予num1%num2的值
关闭扫描器
结果
4.3自增和自减运算符
自增和自减运算符是单目运算符,可以放在变量之前,也可以放在变量之后。自增和自减运算符的作用是使变量的值增1或减1.
a++; ++a a--; --a
符合在前 ++i --i 先计算后使用
符合在后 i++ i-- 先使用后计算
4.4比较运算符
比较运算符属于元运算符,用于程序中的变量之间、变量和自变量之间以及其他类型的信息之间的比较。比较晕幸福的运算结果是boolean型。所有比较运算结果通常作为判断的依据用在条件语句中。
代码
文字描述
定义一个int变量number1赋值为4
定义一个int变量number2赋值为5
打印输出赋予number1>number2的值
打印输出赋予number1<number2的值
打印输出赋予number1==number2的值
打印输出赋予number1!=number2的值
打印输出赋予number1>=number2的值
打印输出赋予number1<=number2的值
结果
4.5逻辑运算符
返回类型为布尔型的表达式,逻辑运算符包括&(&&)(逻辑与)、||(逻辑成)、!(逻辑非)。逻辑运算符的操作元必须是boolean型数据。在逻辑运算符中,除了“!”是一元运算符 ,其它都是二元运算符。
4.6位运算符
位运算的操作数类型是整形,可以有符号的,也可以是无符号的,位运算符可以分为两大类,位逻辑运算符和位移运算符。
4.7三元运算符
三元运算符的使用格式为:条件式?值1:值2
三元运算符的运算规则为:若条件式的值为truc,则整个表达式取值1,否则取值 2
4.8运算符优先级
Java中的表达式就是使用运算符连接起来的符合Java规则的式子
5.数据类型转换
类型转换是将一个值从一种类型更改为另一种类型的过程。例如,不仅可以将 String类型数据“457”转换为一个数值型,而且可以将任意类型的数据转换为为 String 类型。
如果从低精度数据类型向高精度数据类型转换,则永远不会溢出,并且总是成功的;而把高精度数据类型向低精度数据类型转换则必然会有信息丢失,有可能失败。
数据类型转换有两种方式,即隐式转换与显式转换。
5.1隐式类型转换
从低级类型向高级类型的转换,系统将自动打执行,程序员无须进行任何操作。这种类型的转换称为隐式转换,也可以称为自动转换。下列基本类数据类型会涉及数据转换,不包括逻辑类型。这些类型按精度从“低”到“高”排列的顺序为 byte<short<int<long<float<double。
5.2显式类型转换
当把高精度的变量值赋给低精度的变量时 必须使用显式类型转换运算(又称强制类型转换),
当执行显式类型转换时可能会导致精度损失。
6.代码注释与编码规范
在程序代码中适当地添加注释,可以提高程序的可读性和可维护性。好的编码规范可以使程序更易阅读和理解。
6.1代码注释
通过在程序代码中添加注释可提高程序的可读性。注释中包含了程序的信息,可以帮助程序员
更好地阅读和理解程序。在 Java 源程序文年的任意位置都可添加注释语句。注释中的文字 Java 编译器不进行编译,所有代码中的注释文字对程序不产生任何影响。所以我们不仅可以在注释中写程序代码的解释说明、设计者的个人信息,也可以使用注释来屏蔽某些不希望执行的代码。Java 语言提供了3种添加注释的方法,分别为单行注释、多行注释和文档注释。
1.单行注释: “//”为单行注释标记,从“//”符号开始直到换行为止的所有内容都被作为注释而被编译器忽略,不会被运行。(注释内容不可换行)
2.文档注释: “/** */"为文档注释标记。
3.多行注释 : “/**/”为多行注释标记,符号“/**/”之间的所有内容均为注释内容。(注释内容可以换行)
6.2编码规范
在学习开发的过程中要养成良好的编码习惯,因为规整的代码格式,会给程序的开发和日后的维护提供很大方便,在此对编码规则做了以下总结:
1、每条语句要单独占一行,一条命令要以分号结束。
2、在声明变量时,尽量使每个变量的声明单独占一行,即使是相同的数据类型,也要将其放置在单独的一行上,这样有助于添加注释。
3、在java代码,中关键字与关键字之间如果有多个空格,这些空格均被视作一个。
4、为了方便日后的维护,不要使用技术性很高,难懂,易混淆判断的语句。
5、对于关键的方法要多加注释,这样有助于阅读者了解代码结构