Java编程基础补充案例.docx

上传人:b****6 文档编号:3785055 上传时间:2022-11-25 格式:DOCX 页数:38 大小:51.04KB
下载 相关 举报
Java编程基础补充案例.docx_第1页
第1页 / 共38页
Java编程基础补充案例.docx_第2页
第2页 / 共38页
Java编程基础补充案例.docx_第3页
第3页 / 共38页
Java编程基础补充案例.docx_第4页
第4页 / 共38页
Java编程基础补充案例.docx_第5页
第5页 / 共38页
点击查看更多>>
下载资源
资源描述

Java编程基础补充案例.docx

《Java编程基础补充案例.docx》由会员分享,可在线阅读,更多相关《Java编程基础补充案例.docx(38页珍藏版)》请在冰豆网上搜索。

Java编程基础补充案例.docx

Java编程基础补充案例

第二章Java编程基础

案例2」定义不同类型的变量

一、案例描述

1、考核知识点

编号:

00102005

名称:

变量的定义及其数据类型

2、练习目标

>了解变量的定义方式

>掌握如何为不同类型的变量赋值

3、需求分析

变量用于存储程序运行期间的一些数据。

为了加深初学者对变量的认识,本案例针对八种基本数据类型,分别定义了八个变量,并进行赋值操作。

4、设计思路(实现原理)

1)编写一个类ExainpleO1。

2)在ExampleOl的main()方法中,针对八种基本数据类型,分别定义变量并赋值。

3)使用pnndn语句打印变量的值。

二、案例实现

定义ExampleO1类,其代码如下:

classExampleOl{

publicstaticvoidmain(String[]args){

//定义字节变呈

byteb=12;

System・out・printin(b);

//定义短整型变虽

shorts=1234;

System・out・println(s);

//定义整数变呈

inti=12345;

System・out・println(i);

//定义长整型变虽

long1=12345678912345L;

System・out・println

(1);

//定义单秸度类型(7-8位的有效数字)

floatf=12・5F;

//定义双楮度类型(15-16位的有效数字)

doubled=12・5;

System・out・println(d);

//定义字符类型

charc=1a*;

//重新赋值,Java中的字符釆用的编码绘Unicode编码。

占用2个字节。

c=•中T

System・out・println(c);

//定义布尔类型

booleanflag=true;

System・out・println(flag);

}

}

运行结果如图2-1所示。

图2-1运行结果

三、案例总结

1、Java对变量的数据类型有严格的限定。

在定义变量时必须声明变量的类型,并且变量值的类型和变量类型必须一致,否则程序会报错。

2、byte类型的变量存储的值必须是-2?

〜27-1之间的整数。

赋值的时候,尽量不要超出范围,如果超出可能损失精度。

3、定义变量的方式有两种,具体如下:

方式_:

数据类型变虽名=初始化值;

方式二:

数据类型变虽名;

变呈名=初始化值;

案例2・2变量的自动类型转换

一、案例描述

1、考核知识点

编号:

00102006

名称:

变量的类型转换

2、练习目标

>了解变量进行自动类型转换的条件

3、需求分析

变量的自动类型转换,指的是两种数据类型在转换的过程中不需要显式地进行声明。

为了明确哪些数据类型可以实现自动转换,本案例演示的是将一种数据类型的值赋给另外一种数据类型变量的情形。

4、设计思路(实现原理)

1)编写一个类Example02。

2)在类Example02中,定义byte类型的变量a,mt类型的变量b,float类型的变量f,double类型的变量d,其中,变量a的初始值为10,变量f的初始值为12.5f。

3)将变量a的值赋给变量b,变量a、b、f相加后的结果值赋给变量d°

4)使用prmtln语句打印出变量b和变量d的值。

二、案例实现

定义Example02类,其代码如下:

classExample02

{

publiestaticvoidmain(String[]args)

{

//睨式转换

bytea=10;

intb=a;

floatf=12・5F;

System・out・println(b);

doubled=a+b+f;

System・out・println(d);

}

}

运行结果如图2-2所示。

图2-2运行结果

三、案例总结

1、要实现自动类型转换,必须同时满足两个条件,第一是两种数据类型彼此兼容,第二是目标类型的取值范围大于源类型的取值范围。

2、列出三种可以进行自动类型转换的情况,具体如下:

(1)整数类型之间可以实现转换,如byte类型的数据可以赋值给short、mt.long类型的变量,short、char类型的数据可以赋值给int、long类型的变量,mt类型的数据可以赋值给long类型的变量。

(2)整数类型转换为float类型,如byte、char、short,mt类型的数据可以赋值给float类型的变量。

(3)其它类型转换为double类型,如byte、char、short、mt、long、float类型的数据可以赋值给double类型的变量。

案例2・3变■的强制类型转换

一、案例描述

1、考核知识点

编号:

00102006

名称:

变量的类型转换

2、练习目标

>掌握不同数据类型间的强制类型转换

3、需求分析

强制类型转换也叫显式类型转换,指的是两种数据类型之间的转换需要进行显式地声明。

例如,两种类型彼此不兼容,或者目标类型取值范闱小于源类型,都需要进行强制类型转换。

为了明确两种不同类型的变量如何进行强制类型转换,本案例以int和byte类型为例,演示如何将int类型的变量强转为byte类型。

4、设计思路(实现原理)

1)编写一个类Example03

2)在Exaniple03中的main。

方法中定义一个mt类型的变量1和byte类型的变量b,并将变量i的值赋给变量b

3)使用pnntln语句打印出变量b的值

二、案例实现

定义Example03类,其代码如下:

classExample03

{

publicstaticvoidmain(String[]args)

{

inti=10;

byteb=(byte)i;

System・out・println(b);

}

}

运行结果如图2-3所示。

图2-3运行结果

三、案例总结

1、强制类型转换,具体格式如下:

目标类型变虽=(目标类型)值

2、在对变屋进行强制类型转换时,会发生取值范I制较人的数据类型向取值范I韦I较小的数据类型的转换,如将一个int类型的数转为byte类型,这样做极容易造成数据精度的丢失。

mt在内存中占用4个

字节。

byte类型的数据在内存中占用1个字节,当将变量1的数据在内存中占的内存人于1个字节时,前面3个高位字节的数据会丢失,数值也会发生改变。

案例2-4变量的作用域

-V案例描述

1、考核知识点

编号:

00102007名称:

变量的作用域

2、练习目标

>了解变量的作用域

3、需求分析

在程序中,变量一定会被定义在某一对人括号中,该大括号所包含的代码区域便是这个变量的作用域。

为了让初学者熟悉变量的作用域,本案例将在三层的人括号内分别定义三个变量x、y、z,用输出语句输出变量的值,观察变量的作用域。

4、设计思路(实现原理)

1)编写一个类Exainple04

2)在mam方法下定义变量x,并在每一层大括号内都使用一次x,观察x的作用域

3)在第一层扌舌号内定义变量y,并在第二层括号内使用y,观察y的作用域

4)在第二层扌舌号内定义z,并在第一层拾号内使用z,观察z的作用域

二、案例实现

(1)定义Exaniple04类,具体代码如下所示:

publicclassExample04{

publiestaticvoidmain(S匸args){

intx=12;

{

inty=96;

{

intz=0;

y=x;

}

System.out.println(nxis"+x);

System.out.println(nyis"+y);z=x;

System・out・prinisH+z);

}

运行结果如图24所示。

图2-4运行结果

(3)对上述代码进行修改,修改后的代码如下所示:

publicclassExample04{

publicstaticvoidmain(String[]args){

intx=12;

{

inty=96;

{

intz=0;

y=X;

System.out.printin(nzis"+z);

}

System.out.println(nxis"+x);

System.out.println(Hyis"+y);

}

System・out・printin(uxis"+x);

}

}

运行结果如图2-5所示。

图2-5运行结果

三、案例总结

1、第一次程序编译错误是因为程序在变量z的作用域外进行访问,所以程序找不到变量z。

如果在变量Z的作用域内访问Z,程序就会编译成功。

2、x定义在main方法下,所有main方法下的任何位置都能够使用变量X。

3、y定义在第一层括号卞,因为第二层括号在第一层括号内,所以在第二层括号内使用变量y也不会报错。

案例2-5算术运算符

一、案例描述

1、考核知识点

编号:

00102008

名称:

算术运算符

2、练习目标

>了解算术运算符的用法

3、需求分析

在程序中,经常会使用算术运算符进行四则运算,为了让初学者熟悉算术运算符的用法,本案例将以++、-、\等运算符为例,讲解不同算术运算符的作用。

4、设计思路(实现原理)

1)编写一个类ExainpleO5

2)在mam方法下定义变量a,并赋值为2,定义变量b,并赋值为4;

3)首先运算表达式++a+b++,并把计算结果赋给变量x,然后将b/a的值赋给变量y:

4)输出变量a、bsx和y的值

二、案例实现

publicclassExample05{

publicstaticvoidmain(String[]args){

inta=2;

intb=4;

intx=++a+b——;

inty=b/a;

System.out.printin(,,a=',+a);

System・out・printin(,,b=n+b);

System.out.printin(,,x=',+x);

System.out.printin(,,x=',+y);

}

}

运行结果如图2-6所示。

图2-6运行结果

三、案例总结

1、在进行自增(++)和自减(-)的运算时,如果运算符(卄或-)放在操作数的前面则是先进行自增或自减运算,再进行其它运算。

反之,如果运算符放在操作数的后面则是先进行其它运算再进行自增或自减运算。

2、在进行除法运算时,当除数和被除数都为整数时,得到的结果也是一个整数。

如果除法运算有小数参与,得到的结果会是一个小数。

案例2-6赋值运算符

一、案例描述

5、考核知识点

编号:

00102009名称:

赋值运算符

6、练习目标

>了解赋值运算符的用法

7、需求分析

在程序中,经常会使用赋值运算符,它的作用就是将常量、变量或表达式的值赋给某一个变量。

为了让初学者熟悉赋值运算符的用法,本案例将以+=运算符为例,讲解赋值运算符的作用。

8、设计思路(实现原理)

1)编写一个类Exainple06

2)在mam方法下定义变量s,并赋值为5,定义变量1,并赋值为12:

3)使用赋值运算符计算s+=i卄的值,并把计算结果赋给变量s

4)输出变量s的值

二、案例实现

publicclassExampleO6{

publicstaticvoidmain(String[]args){

shorts=5;

inti=12;

s+=i++;

System・out・printin(ns=H+s);

}

}

运行结果如图2-7所示。

图2-7运行结果

三、案例总结

1、在赋值过程中,运算顺序从右往左,将右边表达式的结果赋值给左边的变量。

2、在Jaw中可以通过一条赋值语句对多个变量进行赋值,具体示例如下:

inta,b#c,d;

a=b=c=d=5;

//为四个变呈同时赋值

案例2-7比较运算符

一、案例描述

1、考核知识点

编号:

00102010

名称:

比较运算符

2、练习目标

>了解比较运算符的用法

3、需求分析

在程序中,经常会使用比较运算符对两个变量或值进行比较,使用比较运算符的比较结果是一个布尔类型的值。

为了让初学者熟悉比较运算符的用法,本案例将以==、>=、<=、!

=比较运算符为例,讲解比较运算符的用法。

4、设计思路(实现原理)

1)编写一个类Exainple07

2)在main方法卞定义变量x、y,并依此赋值为0、1;

3)使用一运算符比较字符=97,输出运算结果;

4)使用>=运算符比较,a,>=100,输出运算结果:

5)使用<=运算符比较乂<=y,输出运算结果;

6)使用!

=运算符比较次!

=y,输出运算结果;

二、案例实现

publicclassExample07{

publicstaticvoidmain(String[]args){

intx=0;//定义变呈x,初始值为0

inty=1;//定义变呈y,初始值为0

System,out.printIn('a1==97);//判断字符a是否等J*97

System,out.printIn(*a'>=100);//判断字符a是否大于100

System,out.println(x<=y);//判断x是否小于等于y

System,out.println(x!

=y);//判断x爬不是不等于y

}

}

运行结果如图2-8所示。

图2・8运行结果

三、案例总结

1、使用比较运算符计算的表达式,返回的结果是一个布尔类型的值

2、不能将比较运算符“==”误写成赋值运算符“=”。

案例2-8逻辑运算符

一、案例描述

1、考核知识点

编号:

00102011

名称:

逻辑运算符

2、练习目标

>了解逻辑运算符的运算规则

>掌握如何使用逻辑运算符进行逻辑运算

3、需求分析

逻辑运算符用于对布尔型的数据进行操作,其结果仍是一个布尔型。

为了加深初学者对逻辑运算符的印象,本案例定义一个变量x,使用逻辑运算符连接表达式x>l和x<5,通过运行结果分析逻辑

运算符的运算规则。

4、设计思路(实现原理)

1)编写一个类ExampleOS

2)在main方法下定义变量x,其初始值为3

2)使用逻辑运算符连接两个布尔型的表达式x>l和x<5

3)使用prmtlii语句输出运算结果

二、案例实现

定义Example08类,其代码如K:

classExample08

{

publicstaticvoidmain(String[]args)

{

intx=3;

System.out.println(x>l&x<5);

System.out.println(x

System.out.println(x>lAx>5);

System・out・println(!

(x

}

}

运行结果如图2-9所示。

图2-9运行结果

三、案例总结

在使用逻辑运算符的过程中,需要注意以下几个细节:

1、逻辑运算符可以针对结果为布尔值的表达式进行运算。

如:

x>3&&y!

=0。

2、运算符“&”和“&&”都表示与操作,当且仅当运算符两边的操作数都为tee时,其结果才为true,否则结果为falseo当运算符“&”和“&&”的右边为表达式时,两者在使用上还有一定的区别。

在使用“&”进行运算时,不论左边为tee或者false,右边的表达式都会进行运算。

如果使用“&&”进行运算,当左边为false时,右边的表达式不会进行运算,因此“&&”被称作短路与。

3、运算符和“||”都表示或操作,当运算符两边的操作数任何一边的值为true时,其结果为true,当两边的值都为false时,其结果才为falseo同与操作类似,表示短路或,当运算符“||”的左边为true时,右边的表达式不会进行运算。

4、运算符“八”表示异或操作,当运算符两边的布尔值相同时(都为tine或都为false),其结果为false。

当两边布尔值不相同时,其结果为tiue。

案例2・9位运算符

一、案例描述

1、考核知识点

编号:

00102012

名称:

位运算符

2、练习目标

>了解位运算符的运算规则

>掌握使用位运算符进行逻辑运算

3、需求分析

位运算符是针对二进制数的每一位进行运算的符号,它是专门针对数字0和1进行操作的。

请使用不同的位运算符对十进制的3和4进行运算。

4、设计思路(实现原理)

1)将十进制3和4换算成二进制数

2)使用不同的位运算符对3和4进行位运算

3)编写一个类Example09

4)在mam方法下输出3和4进行不同的位运算后的结果

5)对比运算结果,判断运算是否正确

二、案例实现

1、将3和4换算成二进制数:

3的二进制为00000011;4的二进制为00000100

2、&:

位与运算:

00000100

&

00000011

00000000

所以,4&3=0

3、|:

位或运算符

00000100

00000011

00000111

所以,4|3=7

4、“异或运算符

00000100

A

00000011

00000111

所以,4人3=7

5、按位取反

00000011

711111100

原码J1111100

反码J0000011

补码J0000100

所以:

〜3=«4

6、«:

左移

00000011«2

00001100

所以:

3«2=12

7、定义Example07类,其代码如下:

classExampleOS

publicstaticvoidmain(String[]args)

{

System.out・println(4&3};

System・out・println(4|3);

System・out・println(4A3);

System・out・println(~3);

System・out.printIn(3<<2);

}

}

运行结果如图2-10所示。

图2-10运行结果由此可见,二进制位运算与程序运算的结果一致。

三、案例总结

Jaw中的位运算符以及其范例如卜•错误味找到引用源。

所示。

运算符

运算

范例

结果

&

按位与

0&0

0

0&1

0

1&1

1

1&0

0

1

按位或

0|0

0

0|1

1

11

1

1|0

1

取反

〜0

1

〜1

0

A

按位异或

/、0

0

0A1

1

11

0

1A0

1

«

左移

00000010«2

00001000

10010011«2

01001100

»

右移

01100010»2

00011000

11100010»2

11111000

»>

无符号右移

01100010»>2

00011000

11...11100010»>2

0011...111000

案例2」0运算符的优先级

一、案例描述

1、考核知识点

编号:

00102013

名称:

运算符的优先级

2、练习目标

>掌握运算符之间的优先级

3、需求分析

当使用不同的运算符进行运算时,应该按照一定的顺序进行运算,即根据运算符的优先级进行运算。

为了让初学者掌握运算符的优先级,本案例将通过表达式的运算,讲解运算符的优先级。

4、设计思路(实现原理)

1)编写一个类Example10

2)在mam方法中定义两个mt型变量x和y

3)将表达式3>2*x?

x++:

-x赋值给y

4)用输出语句分别输出变量x和y的值

二、案例实现

定义Example10类,其代码如K:

classExample10

{

publicstaticvoidmain(String[]args)

intx=l;

inty=0;

y=3>2*x?

x++:

——x;

System・out・println(x);

System・out・printin(y);

}

运行结果如图2」1所示。

图2JI运行结果

三、案例总结

1、本案例中表达式的运算过程如下所示:

1)在表达式y=3>2*x^x++:

-x:

中赋值运算符=的优先级最低,所以要先运算=右侧的表达式:

2)?

:

为三元运算符,该运算符的优先级较低,要先运算?

前面的表达式。

3)*的优先级比〉的高,所以3>2*1为ge。

按照三元运算符的运算规则表达式等价于尸x卄

4)x++的++在后面,所以要先进行其它运算再自增,最后结果为x=2,尸1

2、下表列举了Java中运算符的优先级,数字越小优先级越高。

优先级■

运算符

1

•[]()

2

卄-~!

(数据类型)

3

*/%

4

+-

5

«»»>

6

<><=>=

7

==!

=

8

&

9

A

10

1

11

&&

12

II

13

?

;

14

=*=/=%=+=-=«=»=»>=&=J1=

2、其实没有必要去刻意记忆运算符的优先级。

由于运算符“0”的优先级最高,编写程序时,尽量使用扌舌号“()”来实现想要的运算顺序,以免产生歧义。

案例2中讦条件语句

一、案例描述

1、考核知识点

编号:

00102014

名称:

if条件语句

2、练习目标

>掌握if条件语句的语法格式

>了解if条件语句的执行流程

3、需求分析

if...elseif...else语句用于对多个条件进行判断,进行多种不同的处理。

为了让初学者掌握if...elseif...else语句的用法,本案例将使用if...elseif...else语句实现判断某月是哪个季节的功能。

设计思路(实现原理)

1)编写一个类Example11

2)定义一个变量month用于存储月份。

3)用if条件语句,判断这个月份在哪一个季节并输出结果,女U:

春季是3、4、5月,夏季是6、7、8月,秋季是9、10、11月,冬季是12、1、2月

4)由于一年只有12个月,所以要过滤除1-12以外的月份值

二、案例实现

定义Example11类,其代码如下:

classExamplell

{

publiestaticvoidmain(Spring[]args)

{

intmonth=3;

if(month==3||month==4||

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1