第三章 java语言基础
3.1 java主类结构
java程序的基本组成单元是类,类体中包含属性和方法,每个应用程序都有一个main()方法,和有main()方法的类叫主类
3.1.1 包声明
包是java类的组织形式,以关键字package 声明,放在程序的开头。
如:package Number
3.1.2 声明成员变量和局部变量
- 成员变量
类的属性称为类的全局变量(成员变量)声明在类体中
- 局部变量
方法中的属性称为局部变量,声明在方法体中
3.1.3 编写主方法
public static void main(String[] args){
}
public、static、void分别是权限修饰符、静态修饰符、和返回值修符
3.1.4 导入API类库
关键字import导入相关的类,通过JDK的API文档,可以查询类的继承结构、类的应用、成员变量表、构造方法等。
3.2 基本数据类型
java中有8种基本数据类型
- 基本数据类型
- 数值型
- 整数类型
- byte 8位
- short 16位
- int 32位
- long 64位
- 浮点类型
- float 32位
- double 64位
- 整数类型
- 字符型 char 16位
- 布尔型 boolean
- 数值型
3.2.1 整数类型
整数类型是指没有小数有正负之分,有进制之分
- 十进制
- 八进制
通常以 0 开头 - 十六进制
通常以0X或0x开头
例3.3 Number.java
public class Number {
public static void main(String[] args) {
byte mybyte = 124;
short myshort = 32564;
int myint = 45784612;
long mylong = 46789451;
long result = mybyte + myshort + myint + mylong;
System.out.println("结果为:" + result);
}
}
运行结果
结果为:92606751
3.2.3 字符类型
- char型 16位
用单引号表示一个字符 如:‘s’
双引号表示一个字符串 如:“s” - 转义字符
转义字符,以反斜杠“\”开头
| \ddd | 1~3位八进制数据所表示的字符
转义字符 | 含义 |
---|---|
\ddd | 1~3位八进制数据所表示的字符,如\123 |
\uxxxx | 4位十六进制数据所表示的字符,如\u0052 |
\’ | 单引号 |
\\ | 反斜杠 |
\t | 垂直制表符 |
\r | 回车 |
\n | 换行 |
\b | 退格 |
\f | 换页 |
3.2.4 布尔类型
布尔类型又称逻辑类型,只有truehe 和flase两个值
3.3 变量与常量
其值不能被关闭的量称为常量,其值能被改变的量称为变量。
3.3.1 标识符和关键字
1、标识符
用来标识类名、变量名、方法名、数组名、文件名的有效字符序列。
java的标识符由字母、数字、下划线_和美元符号构成,且第一个字符不能是数字,区分大小写的组合。
2、关键字
java中有特殊意义的系统保留字符,我们自定义字符是应该避免使用保留关键字。
如:main class
3.3.2 声明变量
数据类型 变量名
变量声明是可以直接赋值,也可不赋值,留待后续赋值 例如:
int age ;
char ch = ‘B’
- 变量名必须是一个有效的标识符
- 变量名不可以使用Java中的关键字
- 变量名不能重复
- 应选择有意义的单词作为变量名
3.3.3 声明常量
在程序运行中值不会改变的量称为常量,通常用“final”关键字修饰,常量名约定使用大写,但并非必须。
final 数据类型 常量名称[=值]
final常量作为“成员变量”,定义时须赋值。
public class Part {
static final double PI=3.14;
static int age = 23;
public static void main(String[] args) {
final int number;
number = 1235;
age = 22;
System.out.println("常量PI的值为:"+PI);
System.out.println("赋值后number的值为:" + number);
System.out.println("int 型变量age的值为:" + age);
}
}
运行结果
常量PI的值为:3.14
赋值后number的值为:1235
int 型变量age的值为:22
3.3.4 变量的有效范围
变量根据“有限范围”可用分为“成员变量”和“局部变量”
1、成员变量
在类体中定义的变量称为成员变量,成员变量在整个类中都有效。类的成员变量又可分为静态变量和实例变量
class var{
int x = 45;
static int y = 90;
}
x为实例变量,y用static修饰为静态变量;静态变量可以跨类使用,以“类名.静态变量”引用。
2、局部变量
在类的方法体中定义的变量称为局部变量,局部变量只在当前代码块中有效。
局部变量可与成员变量的名字相同,这种情况成员变量在方法中暂时失效。
3.4 运算符
3.4.1 赋值运算符
赋值运算符“=”表示,是一个二元运算符,其功能将右方数值复制给左方的变量
public class Eval {
public static void main(String[] args) {
int a,b,c;
a = 15;
c = b = a + 4;
System.out.println("c值为:" + c);
System.out.println("b值为:" + b);
}
}
运行结果
c值为:19
b值为:19
3.4.2 算术运算符
java中的算术运算符+、-、*、/、%(取余),都是二元运算。
public class Arith {
public static void main(String[] args) {
float number1 = 45.56f;
int number2 = 152;
System.out.println("和为:" +(number1 + number2));
System.out.println("差为:" +(number2 - number1));
System.out.println("积为:" +(number1 * number2));
System.out.println("商为:" +(number1 / number2));
}
}
运行结果
和为:197.56
差为:106.44
积为:6925.12
商为:0.29973686
3.4.3 自增和自减运算符
自增、自减运算是单目运算,要注意放在操作元前后的区别
a = 4
b = ++a ; //先将a的值加1,然后再赋值给b,此时a值为5,b值为5
b = a++ ; //先将a值赋给b,再将a的值变为5,此时a值为5,b值为4
3.4.4 比较运算符
比较运算符是二元运算符,运算的结果是boolean型。
运算符 | 作用 |
---|---|
> | 大于 |
< | 小于 |
== | 等于 |
>= | 大于等于 |
<= | 小于等于 |
!= | 不等于 |
public class Compare {
public static void main(String[] args) {
int num1 = 4;
int num2 = 5;
System.out.println("num1 > num2 的返回值:" + (num1 > num2));
System.out.println("num1 < num2 的返回值:" + (num1 < num2));
System.out.println("num1 == num2 的返回值:" + (num1 == num2));
System.out.println("num1 != num2 的返回值:" + (num1 != num2));
System.out.println("num1 >= num2 的返回值:" + (num1 >= num2));
System.out.println("num1 <= num2 的返回值:" + (num1 <= num2));
}
}
运行结果
num1 > num2 的返回值:false
num1 < num2 的返回值:true
num1 == num2 的返回值:false
num1 != num2 的返回值:true
num1 >= num2 的返回值:false
num1 <= num2 的返回值:true
3.4.5 逻辑运算符
运算符 | 含义 | 快速判断 |
---|---|---|
&&、& | 逻辑与 | 串联 |
|| | 逻辑或 | 并联 |
! | 逻辑非 | 翻转 |
当两个表达式都为true时,逻辑与的结果才会是true
通常将只从表达式的左端就可以推断出整个表达式的值的运算符称为“短路”,“&&”属于“短路”,而“&”属于“非短路”运算符。
public class Calculation {
public static void main(String[] args) {
int a = 2;
int b = 5;
boolean result = ((a > b) && (a !=b));
boolean rusult2 = ((a > b) ||(a !=b));
System.out.println(result);
System.out.println(rusult2);
}
}
运行结果
false
true
3.4.6 位运算符
3.4.7 三元运算符
条件式?值1:值2
三元运算符的运算规则:若条件式的值为true,则整个表达式取值1,否则取值2.
运算符优先级
表达式运算的先后顺序
- 增量和减量运算
- 算术运算
- 比较运算
- 逻辑运算
- 赋值运算