系列文章目录
Java第三章总结
文章目录
- 3.1:Java主类结构
- 3.2:基本数据类型
- 3.3:变量与常量
- 3.4:运算符
- 3.5:数据类型转换
- 3.6:代码注释和编码规范
前言
Java语言基础
3.1:Java主类结构
1.包声明:package Number为声明类的包
2.声明局部变量和成员变量:s1为成员变量,s2为局部变量
3.编写主方法:main为主方法。从花括号开始({)至花括号结束(}),public static void是main()的修饰符、静态修饰符,必须声明public static void main(String[] args)一组字符串,字符串为main()的主参数。[文字描述算法在代码中]
public class Hi { //类名
static String s1="你好";//声明成员变量
public static void main(String[] args) { //主函数
String s2="java";//声明局部变量
System.out.print(s1);//输出s1内容
System.out.print(s2);//输出s2内容
}
} //例题3.1
3.2:基本数据类型
3.2.(1.2) 数据类型:分为整数类型和浮点类型。(byte,short,interesting,long) (float、double)
数据类型 | 内存空间 | 取值范围 | 默认值 |
byte | 8 | -128~127 | 0 |
short | 16 | -2¹⁵~2¹⁵ | 0 |
int | 32 | -2³²~2³²⁻¹ | 0 |
long | 64 | -2⁶³~2⁶⁴⁻¹ | 0L |
float | 32 | 1.4E-45~3.4028235e358 | 0.0F |
double | 64 | 4.9E-324~1.7976931348623157E308 | 0.0 |
public class Thirdone {
public static void main(String[] args) {
// TODO Auto-generated method stub
byte b=1;//定义byte形
System.out.println(b);//输出换行
short z=12345;//定义short形
System.out.println(z);//输出换行
int i=11254;//定义int形变量
System.out.println(i);//输出换行
long l=7946626126L;//定义long形L大写
System.out.println(l);//输出换行
float h=9.99F;//定义float单精度浮点型
System.out.println(h);//输出
double m=5.66D;//定义double双精度浮点型
System.out.println(m);//输出
}
}
浮点类型例题
public class BMIexponent{
public static void main(String[] args) {
// TODO Auto-generated method stub
double height=1.71;//定义double型,height为高度,将数值赋予这个量
int weight=70;//douuble为局部变量,定义int类型,weight为重量
double exponent=weight/(height*height);//算法为重量除以升高和重量的乘积
System.out.println("您的身高为:"+height);//输入身高
System.out.println("您的体重为:"+weight);//输入体重
System.out.println("您的BMI指数为:"+exponent);//计算bmi指数
System.out.println("您的体重属于:");//判断语句
if(exponent<18.5) {
System.out.println("体重过轻");//如果exponent小于18.5,输出体重过轻
}
if(exponent>=18.5&&exponent<24.9) { //如果exponent大于等于18.5并且小于24.9,输出正常范围
System.out.println("正常范围");
}
if(exponent>=24.9&&exponent<29.9) {//如果exponent大于等于24.9且小于29.9,输出体重过重
System.out.println("体重过重");
}
if(exponent>=29.9){//如果exponent大于等于29.9,输出肥胖
System.out.println("肥胖");}
}
}
//例题3.2
(文字描述算法在代码里)
3.2.3 字符类型:.char型:储存单个字符,占用16位,用单引号表示
.转义字符:特殊的字符变量,以反斜杠"\"开头
转义字符 | 含义 | 转义字符 | 含义 |
\ddd | 1~3位八进制数据所表示的字符,如\123 | \r | 回车 |
\uxxxx | 4位十六进制数据所表示的字符,如\u5002 | \n | 换行 |
\' | 单引号字符 | \b | 退格 |
\\ | 反斜杠字符 | \f | 换页 |
\t | 垂直制表符,将光标移到下一个制表符的位置 |
public class Char {
public static void main(String[] args) {
// TODO Auto-generated method stub
char c1='\\';//定义char字符类型
char c2='\u2650';//Unicode编码
System.out.println(c1);//打印输出c1
System.out.println(c2);//输出c2
}
}
//例题3.4
.布尔类型:只有true和false两个值
public class TrueOrFalse {
public static void main(String[] args) {
// TODO Auto-generated method stub
boolean b1=true;//定义布尔类型字符b1
boolean b2=Boolean.FALSE;//定义布尔类型字符b2(注意大写)
System.out.println(b1);
System.out.println(b2);//打印输出
}
}
3.3:变量与常量
1.标识符:用来标识类名、变量名、方法名、数组名、文件名的有效字符序列
由任意顺序字母(A/a)、下划线(-)、美元符号($)和数字(不能放开头)组成。
.只能包含字母、下划线、美元符号、数字
.不能以数字开头
.要避开关键字(关键字即为代码中彩色的字)这里用任意代码作为示例。
2.变量:变化的
定义和赋值:类型+变量名 例如:(double+weight)
.局部变量:在方法内部定义,只在该方法内有效
.成员变量:在类里在方法外,在整个类和方法里有效
public class Thirdtwo {
static int times=3;//成员变量
public static void main(String[] args) {
int times=4;//局部变量
System.out.println("times的值为:"+times);//当局部变量和成员变量名字相同使用就近原则
}
}
//将局部变量删除就会输出成员变量的值或者将成员变量输出
上段代码结果为:
public class Thirdtwo {
static int times=3;//成员变量
public static void main(String[] args) {
int times=4;//局部变量
System.out.println("times的值为:);//当局部变量和成员变量名字相同使用就近原则
System.out.println("Thirdtwo.times")//类+times
}//如果将类times删掉的话输出就会报错
}
//将局部变量删除就会输出成员变量的值或者将成员变量输出
上段代码结果为:
常量:固定的
public class ThirdPart {
public static void main(String[] args) {
final int number;//定义一个int类型number数字
number=1125;
System.out.println(number);
}
}
重新赋值,使之报错(错误为红色部分)
(final是特殊的变量)
在成员变量中定义常量
public class ThirdPart { //创建类
static final double PI =3.14; //声明变量pi
public static void main(String[] args) {
final int number;//定义一个int类型number数字 //static为静态
number=1125;//赋值1125
System.out.println(number);//输出number
System.out.println(PI);//输出pi
}
}
3.4:运算符
3.4.1赋值运算符
以“=”表示,将右边数赋值给左边
public class Eval { //创建类
public static void main(String[] args) {//主方法
// TODO Auto-generated method stub
int a,b,c;//声明int类型变量a,b,c
a = 15;//将15赋值给a
c=b = a+4;//把a+4的值赋给b,然后赋给c
System.out.println("c值为:"+c);//输出c的值
System.out.println("b值为:"+b);//输出b的值
//c=b=a+4;//从右往左看,一般是b=a+4;c=a;
}
}
//例题3.7
3.4. 2算术运算符
运算符 | 说明 | 实例 | 结果 |
+ | 加 | 12.45f+15 | 27.45 |
- | 减 | 4.56-0.16 | 4.4 |
* | 乘 | 5L*12.45f | 62.25 |
/ | 除 | 7/2 | 3 |
% | 取余 | 12%10 | 2 |
import java.util.Scanner;//例题3.8
public class Eval {//创建类
public static void main(String[] args) {
Scanner sc =new Scanner(System.in);//scanner为输入,意思为扫描键盘输入,创建扫描器,获取控制台输入值
System.out.println("请输入两个数字,用空格隔开(num1 num2):");//输入提示
double num1=sc.nextDouble();//可以改为int类型,记录第一个数
double num2=sc.nextDouble();//记录第二个数
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("num%num2的余数为:"+(num1% num2));//计算两数余数
sc.close();//关闭扫描器
}
}
3.4.3 自增和自减
a++,++a;a--,--a;(运算符在前,先运算后使用;运算符在后,先使用后运算);
3.4.4比较运算符
运算符 | 作用 | 举例 | 操作数据 | 结果 |
> | 比较左方是否大于右方 | ‘a’>'b' | 整形、浮点型、字符型 | false |
< | 比较左方是否小于右方 | 156<456 | 整形、浮点型、字符型 | true |
= | 比较左方是否等于右方 | 'c'='c' | 基本数据类型、引用型 | true |
>= | 比较左方是否大于等于右方 | 479>=426 | 整形、浮点型、字符型 | true |
<= | 比较左方是否小于等于右方 | 12.45<=45.5 | 整形、浮点型、字符型 | true |
!= | 比较左方是否不等于右方 | 'y'!='t' | 基本数据类型、引用型 | true |
public class Compare {//创建类
public static void main(String[] args) {
// TODO Auto-generated method stub
int number1=4;//声明int型变量number1
int number2=5;//声明int型变量number2
System.out.println("number1 > number2的返回值为:"+(number1 > number2));//判断1是否大于2
System.out.println("number1 < number2的返回值为:"+(number1 < number2));//判断1是否小于2
System.out.println("number1 == number2的返回值为:"+(number1 == number2));//判断1是否等于2
System.out.println("number1 != number2的返回值为:"+(number1 != number2));//判断1是否等于2
System.out.println("number1 >= number2的返回值为:"+(number1 >= number2));//判断1是否大于等于2
System.out.println("number1 <= number2的返回值为:"+(number1 <= number2));//判断1是否小于等于2
}
}
//例题3.9
3.4.5 逻辑运算符
&&(与):两者都为真,结果才是真;
||(或):只要有一者为真,结果就是真;
!(非):非真即假,非假即真;
false&&.....&&.....:结果一定为false(短路现象)
true||.....||.....:结果一定为true(短路现象)
3.4.6位运算符
二进制之间进行运算使用位运算符
&(与):两者都为1,结果才是1;
|(或):只要有一者为1,结果就是1;
~(取反):0变1,1变0;
^(异或):两者相同即为0,不同为1;
<<(左移):整体往左移一位,空位补0,溢出去掉。
>>(右移):整体往右移一位,正数补0,负数补1,溢出去掉。
>>>(无符号右移):整体往右移,空位补0,溢出去掉。
3.4.7 三元运算符
例如:A?B:C
A:一定是一个条件语句
B:A为真结果为B
C:A为假结果为C
int a=3;
int b=a>2? a++/a--/++a:8;
a=4;b=3 / a=2 b=4 /a=4 b=4
转换if else语句:if(a>2){
b=a++/a--/}
else{
b=8}
3.5:数据类型转换
自动类型转换:一定不会丢失数据(即低精度数据类型向高精度数据类型转换 例如:byte型转换为short型,系统会自动进行转换)
强制类型转换:有可能会丢失数据(即高精度数据类型向低精度数据类型转换 例如:short型转换位byte型)
数据类型排列顺序:byte<short<int<long<float<double
3.5.1隐式类型转换
操作数1的数据类型 | 操作数2的数据类型 | 转换后的数据类型 |
byte、short、char | int | int |
byte、short、char、int | long | long |
byte、short、char、int、long | float | float |
byte、short、char、int、long、float | double | double |
public class Conver {//创建类
public static void main(String[] args) {
// TODO Auto-generated method stub
byte mybyte=127;//定义byte型变量mybyte,并赋值
int myint=(int)45.232323; //强制类型转换
float myfloat=452.12f;//定义float型变量myfloat,并赋值
char mychar=10;//定义char型变量mychar,并赋值
double mydouble=45.46546;//定义double型变量mydouble,并赋值
System.out.println("byte型与float型数据进行运算结果为:"+(mybyte+ myfloat));//输出结果
System.out.println("byte型与int型数据进行运算结果为:"+(mybyte* myint));
System.out.println("byte型与char型数据进行运算结果为:"+(mybyte/ mychar));
System.out.println("double型与char型数据进行运算结果为:"+(mydouble+ mychar));
}
} //例题3.11
3.6:代码注释和编码规范
3.6.1代码注释
单行注释
//....(注释内容)
多行注释
/*
....
注释内容
*/
文档注释
/** */