实验二Java语言基础.docx
- 文档编号:28603217
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:41
- 大小:834.77KB
实验二Java语言基础.docx
《实验二Java语言基础.docx》由会员分享,可在线阅读,更多相关《实验二Java语言基础.docx(41页珍藏版)》请在冰豆网上搜索。
实验二Java语言基础
实验二Java语言基础
实验目的
1、了解Java的数据类型;
2、掌握各种变量的声明方式;
3、理解运算符的优先级;
4、掌握Java基本数据类型、运算符与表达式、数组的使用方法;
5、理解Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法;
6、通过以上内容,掌握Java语言的编程规则。
实验要求
1、编写一个声明Java不同数据类型变量的程序;
2、编写一个使用运算符、表达式、变量的程序;
3、编写一个使用Java数组的的程序;
4、编写表达式语句、复合语句的程序;
5、编写使用不同选择结构的程序;
6、编写使用不同循环结构结构的程序。
实验内容
1、声明不同数据类型的变量
(1)编写声明不同数据类型变量的程序文件LX2_1.java,源代码如下。
publicclassEXP2_1{
publicstaticvoidmain(Stringargs[]){
byteb=0x55;
shorts=0x55ff;
inti=1000000;
longl=0xffffL;
charc='a';
floatf=0.23F;
doubled=0.7E-3;
booleanB=true;
StringS="这是字符串类数据类型";
System.out.println("字节型变量b="+b);
System.out.println("短整型变量s="+s);
System.out.println("整型变量i="+i);
System.out.println("长整型变量l="+l);
System.out.println("字符型变量c="+c);
System.out.println("浮点型变量f="+f);
System.out.println("双精度变量d="+d);
System.out.println("布尔型变量B="+B);
System.out.println("字符串类对象S="+S);
}
}
(2)编译并运行该程序,结果如图2.1所示。
图2.1
2、了解变量的使用范围
(1)建立EXP2_2.java文件,通过本程序了解变量的使用范围,源代码如下。
publicclassEXP2_2{
staticinti=10;
publicstaticvoidmain(Stringargs[]){
{
intk=10;
System.out.println("i="+i);
System.out.println("k="+k);
EXP2_3}
System.out.println("i="+i);
System.out.println("k="+k);//编译时将出错,已出k的使用范围
}
}
(2)编译EXP2_2.java
此时会出现错误提示如图2.2所示。
因为变量k在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。
图2.2
(3)修改上面的程序
(4)成功运行该程序
思考:
EXP2_2.java程序说明了什么问题?
3、使用关系运算符和逻辑运算符
(1)建立使用关系运算符和逻辑运算符的程序文件,源代码如下。
classEXP2_3{
publicstaticvoidmain(Stringargs[]){
inta=25,b=20,e=3,f=0;
booleand=a
System.out.println("a=25,b=20,e=3,f=0");
System.out.println("因为关系表达式a
"+d);
if(e!
=0&&a/e>5){
System.out.println("因为e非0且a/e为8大于5,所以输出a/e="+a/e);}
if(f!
=0&&a/f>5){
System.out.println("a/f="+a/f);}
else
{System.out.println("因为f值为0,所以输出f="+f);
}
}
}
(2)编译并运行该程序,结果如图2.3所示。
图2.3
4、使用数组
(1)建立使用数组的程序,本程序建立了一个长度为5的1维数组,一个长度为12的2维数组,源代码如下。
publicclassEXP2_4{
publicstaticvoidmain(Stringargs[]){
inta[]=newint[5];
intarr1[][]=newint[3][4];
a[0]=10;
a[1]=10+a[0];
a[2]=30;
a[3]=40;
a[4]=a[1]+a[2];
arr1[0][0]=0;arr1[0][1]=1;arr1[0][2]=2;
arr1[1][0]=3;arr1[1][1]=4;arr1[1][2]=5;
arr1[2][0]=6;arr1[2][1]=7;arr1[2][2]=8;
System.out.println("a["+0+"]="+a[0]);
System.out.println("a["+1+"]="+a[1]);
System.out.println("a["+2+"]="+a[2]);
System.out.println("a["+3+"]="+a[3]);
System.out.println("a["+4+"]="+a[4]);
System.out.println("arr1("+0+","+0+")="+arr1[0][0]);
System.out.println("arr1("+0+","+1+")="+arr1[0][1]);
System.out.println("arr1("+0+","+2+")="+arr1[0][2]);
System.out.println("arr1("+1+","+0+")="+arr1[1][0]);
System.out.println("arr1("+1+","+1+")="+arr1[1][1]);
System.out.println("arr1("+1+","+2+")="+arr1[1][2]);
}
}
(2)编译并运行程序,结果如图2.4所示。
图2.4
5、使用表达式语句与复合语句
(1)建立包含表达式语句程序,源代码如下。
classEXP2_5{
publicstaticvoidmain(String[]args){
intk,i=3,j=4;
k=20*8/4+i+j*i;
System.out.println("表达式(20*8/4+i+j*i)="+k);
}
}
(2)建立包含复合语句程序,源代码如下。
classEXP2_6{
publicstaticvoidmain(Stringargs[]){
intk,i=3,j=4;
k=i+j;
System.out.println("在复合块外的输出k="+k);
{
floatf;
f=j+4.5F;
i++;
System.out.println("在复合块内的输出f="+f);
System.out.println("在复合块内的输出k="+k);
}
System.out.println("在复合块外的输出i="+i);
}
}
(3)编译并运行上述两个源程序,结果如图2.5、2.6所示。
(4)将变量i在块内定义会怎样?
改变其他变量的位置看看会发生什么变化。
思考:
指出程序的复合结构以及变量的使用范围。
图2.5
图2.6
6、使用选择语句
6.1、使用if...else语句
(1)程序功能:
使用if...else语句构造多分支,判断某一年是否为闰年。
闰年的条件是符合下面二者之一:
能被4整除,但不能被100整除;能被4整除,又能被100整除。
(2)编写源程序文件,代码如下。
publicclassEXP2_7{
publicstaticvoidmain(Stringargs[]){
booleanleap;
intyear=2005;
if((year%4==0&&year%100!
=0)||(year%400==0))//方法1
System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
year=2008;//方法2
if(year%4!
=0)
leap=false;
elseif(year%100!
=0)
leap=true;
elseif(year%400!
=0)
leap=false;
else
leap=true;
if(leap==true)
System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
year=2050;//方法3
if(year%4==0){
if(year%100==0){
if(year%400==0)
leap=true;
else
leap=false;
}
else
leap=false;
}
else
leap=false;
if(leap==true)
System.out.println(year+"年是闰年");
else
System.out.println(year+"年不是闰年");
}
}
(3)编译运行程序,其结果如图2.7所示。
图2.7
思考:
本程序中有几个选择语句,哪些具有嵌套关系?
6.2、使用switch语句
(1)程序功能:
在不同温度时显示不同的解释说明。
(2)程序源代码如下。
classEXP2_8{
publicstaticvoidmain(Stringargs[]){
intc=38;
switch(c<10?
1:
c<25?
2:
c<35?
3:
4){
case1:
System.out.println(""+c+"℃有点冷。
要多穿衣服。
");
case2:
System.out.println(""+c+"℃正合适。
出去玩吧。
");
case3:
System.out.println(""+c+"℃有点热。
");
default:
System.out.println(""+c+"℃太热了!
开空调。
");
}
}
}
(3)编译运行程序,其结果如图2.8所示。
图2.8
7、使用循环语句
7.1、for循环语句练习
(1)程序功能:
按5度的增量打印出一个从摄氏温度到华氏温度的转换表。
(2)程序源代码如下。
classEXP2_9{
publicstaticvoidmain(Stringargs[]){
inth,c;
System.out.println("摄氏温度\t华氏温度");
for(c=0;c<=40;c+=5){
h=c*9/5+32;
System.out.println("\t"+c+"\t"+h);
}
}
}
(3)编译并运行程序,其结果如图2.9所示。
图2.9
7.2、while循环语句练习
(1)程序功能:
运行程序后从键盘输入数字1/2/3后,可显示抽奖得到的奖品;如果输入其它数字或字符显示“没有奖品给你!
”。
(2)程序源代码如下。
importjava.io.*;
classEXP2_10{
publicstaticvoidmain(Stringargs[])throwsIOException{
charch;
System.out.println("按1/2/3数字键可得大奖!
");
System.out.println("按’Q’键可退出循环操作.");
while((ch=(char)System.in.read())!
=''){
System.in.skip
(2);//跳过回车键
switch(ch){
case'1':
System.out.println("恭喜你得大奖,一辆汽车!
");
break;
case'2':
System.out.println("不错呀,你得到一台笔记本电脑!
");
break;
case'3':
System.out.println("没有白来,你得到一台冰箱!
");
break;
case‘q’:
System.out.println(“欢迎下次再来!
”);
System.exit(0);
default:
System.out.println("真不幸,你没有奖品!
下次再来吧。
");
}
}
}
}
(3)编译源程序。
(4)在命令提示符窗口运行程序,然后分别按1、2、3、r结果如图2.10所示。
图2.10
7.3、do…while循环语句练习
(1)程序功能:
求1+2+…+100之和,并将求和表达式与所求的和显示出来。
(2)程序源代码如下。
classEXP2_11{
publicstaticvoidmain(Stringargs[]){
intn=1,sum=0;
do{
sum+=n++;
}
while(n<=100);
System.out.println("1+2+...+100="+sum);
}
}
(3)编译并运行程序,结果如图2.11所示。
图2.11
7.4、多重循环练习
(1)输出九九乘法表的程序,源代码如下。
publicclassEXP2_12
{
publicstaticvoidmain(Stringargs[])
{
inti,j,n=9;
System.out.print("*|");
for(i=1;i<=n;i++)
System.out.print(""+i);
System.out.print("\n---|");
for(i=1;i<=n;i++)
System.out.print("----");
System.out.println();
for(i=1;i<=n;i++)
{
System.out.print(""+i+"|");
for(j=1;j<=i;j++)
System.out.print(""+i*j);
System.out.println();
}
}
}
(2)编译并运行程序,结果如图2.12所示。
图2.12
思考:
观察输出的结果,发现九九表的行和列没有对齐,如何才能输出一张行列对齐的九九表?
实验三Java语言面向对象基础
实验目的
通过编程和上机实验理解Java语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握面向对象程序设计的方法,了解类的继承性和多态性的作用,了解接口的作用。
实验要求
1、编写一个体现面向对象思想的程序;
2、编写一个创建对象和使用对象的方法的程序;
3、编写一个显示当前日期和时间的程序;
4、编写不同成员变量修饰方法的程序;
5、编写不同成员方法修饰方法的程序;
6、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序;
7、编写体现类的多态性(成员方法重载、构造方法重载)的程序;
8、编写体现接口功能的程序。
实验内容
1、设计类来描述真实客观世界中的事物,使用类的成员变量来表示事物的属性和状态,使用类的成员方法来提供对成员变量的访问或修改
(1)程序功能:
设计一个用来描述汽车的类,使用类的非静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。
(2)程序源代码如下。
publicclassEXP3_1{
privateStringownerName;//车主姓名
privatefloatcurSpeed;//当前车速
privatefloatcurDirInDegree;//当前方向盘转向角度
publicEXP3_1(StringownerName){
this.ownerName=ownerName;
}
publicEXP3_1(StringownerName,floatspeed,floatdirInDegree){
this(ownerName);
this.curSpeed=speed;
this.curDirInDegree=dirInDegree;
}
publicStringgetOwnerName(){//提供对车主姓名的访问
returnownerName;
}
publicfloatgetCurDirInDegree(){//提供对当前方向盘转向角度的访问
returncurDirInDegree;
}
publicfloatgetCurSpeed(){//提供对当前车速的访问
returncurSpeed;
}
publicvoidchangeSpeed(floatcurSpeed){//提供改变当前的车速
this.curSpeed=curSpeed;
}
publicvoidstop(){//提供停车
this.curSpeed=0;
}
}
(3)编译源程序。
2、创建类的对象,使用对象的方法(类的非静态方法)来访问或修改对象的变量(类的非静态变量)
(1)创建类EXP3_1的对象,在调用类的构造函数时指定对象的变量的初始值,以后再使用对象的方法来访问或修改对象的变量的值。
(2)程序代码如下。
publicclassEXP3_2{
publicstaticvoidmain(String[]args){
EXP3_1car=newEXP3_1("成龙",200f,25f);
System.out.println("车主姓名:
"+car.getOwnerName());
System.out.println("当前车速:
"+car.getCurSpeed());
System.out.println("当前转向角度:
"+car.getCurDirInDegree());
car.changeSpeed(80);
System.out.println("在调用changeSpeed(80)后,车速变为:
"+car.getCurSpeed());
car.stop();
System.out.println("在调用stop()后,车速变为:
"+car.getCurSpeed());
}
}
(3)编译并运行,结果如图3.1所示。
图3.1
3、编写显示当前时间和日期的程序
(3)程序功能:
该程序通过使用一个自定义类Time,实现显示当前日期和时间的功能。
(4)程序代码如下。
importjava.util.Calendar;
classTime{
privateCalendart;
privateinty,m,d,hh,mm,ss;
Time(){
t=Calendar.getInstance();
y=t.get(t.YEAR);
m=t.get(t.MONTH)+1;
d=t.get(t.DATE);
hh=t.get(t.HOUR_OF_DAY);
mm=t.get(t.MINUTE);
ss=t.get(t.SECOND);
}
publicStringgetDate(){
returny+"年"+m+"月"+d+"日";
}
publicStringgetTime(){
returnhh+"时"+mm+"分"+ss+"秒";
}
}
publicclassEXP3_3{
publicstaticvoidmain(String[]args){
Timet=newTime();
System.out.println("当前日期:
"+t.getDate());
System.out.println("当前时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实验二 Java语言基础 实验 Java 语言 基础