实验2 Java语言基础实验
一、实验目的
1. 掌握Java语言的基本数据类型、字符串、数组
byte,short,char,int,long,float.double,boolean;
String;
int[],char[],short[],long[],float[],double[],boolean[];
2. 掌握Java语言的运算符、表达式、语句
+,-,*,/,%,!,^,&,|,++,--,<<,>>;
3.能够编写Java应用程序
二、实验内容
1. 局部变量与final变量实验
2. 基本数据类型与转换实验
3. 算术运算的精度问题实验
4. 移位运算实验
5. 运算赋值实验
6. 短路逻辑运算实验
7. 编程实验:输出Unicode特定区间的字符。
8. 编程实验:分析输入的数字
三、实验步骤
1. 局部变量与final变量实验。编写以下程序,并回答问题。
public class LocalVariableInitExample {
public static void main(String[] args) {
int a ;
System.out.print(a);
final int b = 100;
b++;
System.out.print(b);
}
}
请问上述程序有何错误?如何改正?
错误:
a没有初始化,不能使用;
b是常量,只能赋值一次,不能进行b++;
改正:
对a进行初始化:int a=10;
把b++去掉。
2. 基本数据类型与转换实验。编写以下程序,分析代码的输出结果,并回答问题。
class Test2{
System.out.println("第1段测试代码输出");
System.out.println((byte)255);
System.out.println((short)65535);
System.out.println((byte)-129);
System.out.println((byte)129);
System.out.println((byte)128);
System.out.println("第2段测试代码输出");
int i = 123456789;
float f = i;
System.out.println(f);
long j = 123456789123456789L;
double d = j;
System.out.println(d);
System.out.println("第3段测试代码输出");
System.out.println(077);
System.out.println(0x77);
System.out.println(77);
}
}
请分析并回答以下问题:
(1)分析第1段代码,说明在什么情况下,int类型的数字转换为byte或者short类型,会出
现符号变化,即正数变负数,负数变正数?为何输出会不同?
答:当int类型的数字二进制中第8位,第16位为1时,转换成byte和short类型,就会出现符号变化。他们的占有的字节数不一样,当往更小的类型转换时,就会出现数据截断和符号丢失。
(2)分析第2段代码,说明整数类型向浮点型转型是否可能出现精度损失,是否需要强制转
换。
答:整数类型向浮点型转型可能出现精度损失;
因为浮点型的级别比整型的级别高,所以当整型向浮点型转换时,是自动转换,不需强制转换,当还是有可能出现精度损失,这需要编程员自己注意。
(3)分析第3段代码,说明整数的八进制、十六机制、十进制的书写格式(即字面值格式)
都是什么?
答:八进制:以0开头,后接数字(0-7);如:077;
十进制:由数字(0-9)组成,前不能导0;如:77;
十六进制:以0x开头,后接由数字(0-9)和字母(a-f)或(A-F)组成;如:0x77;
3. 算术运算的精度问题实验。编写以下程序,并回答问题。
class Test3{
public static void main(String[] args){
short a = 10;
a = a + 2;
byte b = 1;
b = b + 1;
short a = 10;
byte b = 5;
a = a + b;
char c = 'a';
c = c+1;
}
}
请问上述程序有何错误?如何改正?
错误:
a是short类型,int转换成short类型时要强制转换。
b是byte类型,int转换成byte类型时要强制转换。
C是char类型,int转换成char类型时要强制转换。
a和b出现重复定义。
改正:
4. 移位运算实验。编写以下程序,分析代码的输出结果,并回答问题。class Test4{
public static void main(String[] args){
System.out.println("第1段测试代码输出");
System.out.println(1>>32);
System.out.println(1L>>32);
System.out.println("第2段测试代码输出");
System.out.println(10>>5);
System.out.println(-10>>5);
System.out.println("第3段测试代码输出");
System.out.println(1<<31);
System.out.println(1L<<31);
System.out.println(1L<<63);
System.out.println("第4段测试代码输出");
System.out.println(1<<100);
System.out.println(1L<<100);
System.out.println("第5段测试代码输出");
System.out.println(7<<2);
System.out.println(7<<1<<1);
System.out.println("第6段测试代码输出");
int n = 34; int q=7;
System.out.println(q< q= 7; for(int i = 0;i q = q<<1; System.out.println(q); System.out.println("第7段测试代码输出"); int m = 2000000000; System.out.println(m<<1); System.out.println(m*2); System.out.println("第8段测试代码输出"); System.out.println(-2>>1); System.out.println(-2>>>1); } } 请分析并回答以下问题: (1)分析第1段代码,为何输出会不同? 答:1是int型,所以1>>32,等价于1>>0,所以结果等于1; 1L是long型,所以1L>>32的结果是等于0; (2)分析第2段代码,正整数右移的最小值是什么?负整数右移的最大值是什么? 答:正整数右移的最小值是0; 负整数右移的最大值是-1; (3)分析第3段代码,三个语句输出为何不同? 答:1是int型,所以1<<31的二进制结果是10000000 00000000 00000000 00000000,所以结果是-(2^32-1),即-2147483648; 1L是int型,所以1L<<31的二进制结果是00000000 00000000 00000000 00000000 10000000 00000000 00000000 00000000,所以结果是2^32-1,即2147483648; 1L<<63的二进制结果是1000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000,所以结果是-(2^64-1),即-9223372036854775808; 所以他们的输出不一样。 (4)分析第4段代码,两个语句输出为何不同? 答: (5)分析第5段代码,两个移位运算是否等价? 答:等价。 (6)分析第6段代码,q< 同? 答:当移位的位数总和大于32时不等价。如7>>33和7>>15>>20的结果是不一样的; 当移位的位数总和小于32时等价。 (7)分析第7段代码,左移1位与乘2是否等价?左移1位是否一定值翻倍? 答:等价。左移1位一定值翻倍。 (8)分析第8段代码,“-1>>1”和“-1>>>1”有何差别? -1>>>1是有符号移位,即符号位会跟着移动。 5. 运算赋值实验。编写以下程序,并回答问题。 class Test5{ public static void main(String[] args) { byte a = 10; a = a >> 1; // 是否出错? a >>= 1; // 是否出错? char c = 'a'; c = c + 1;// 是否出错? c += 1; // 是否出错? } } 上述程序代码有何编译错误?并请说明运算赋值的特点。 答:a是byte类型,a>>1是int类型,所以无法进行赋值。 c是char类型,c+1是int类型,所以无法进行赋值。 特点:当变量是byte,char类型时,进行移位和加一个int型的值时会自动提升到int类型。 6. 短路逻辑运算实验。编写以下程序,并回答问题。 class test6{ public static void main(String[] args) { int x = 1, z = 2; System.out.println("第1段测试代码输出"); if(false&&(x == (z = 1))) System.out.println(x); else System.out.println(z); z = 2; x =1; System.out.println("第2段测试代码输出"); if(true&&(x == (z = 1))&&false) System.out.println(x); else System.out.println(z); x=0; z = 2; System.out.println("第3段测试代码输出"); if(true||(x == (z = 1))) System.out.println(z); x=0; z = 2; System.out.println("第4段测试代码输出"); if(false||(x == (z =1))||true) System.out.println(z); } } 请分析并回答以下问题: (1)第1段代码的输出结果是什么,为何? 因为(false&&(x == (z = 1)))中,遇到false就推出来,z=1不会执行,所以z=2不变。 (2)第2段代码的输出结果是什么,为何? 因为if(true&&(x == (z = 1))&&false)中,遇到false退出来,但之前z=1已经执行,所以z==1; (3)第3段代码的输出结果是什么,为何? (4)第4段代码的输出结果是什么,为何? 7. 编程实验:输出Unicode特定区间的字符。功能要求:屏幕输出所有大写英文字母、小写字母)、某两个汉字字符之间的所有Unicode字符。提示:以下代码可以输出所有大写字母。 8. 编程实验:分析输入的数字。功能要求:输入若干个数字,依次判断这些数字是否是奇数、平方数、素数,并输出判断信息。设计要求:需要设计静态方法isOdd(int n)来判断参数n是否是奇数;相似地,还需要设计静态方法isSquareNumber(int n)和isPrime(int n),来分别用于判断参数n是否是平方数、素数。 山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称 Java实验实验日期成绩指导教师批改日期 实验5 JAVA常用类实验名称 一.实验目的: (1)掌握常用的String,StringBuffer(StringBuilder)类的构造方法的使用;(2)掌握字符串的比较方法,尤其equals方法和==比较的区别; (3)掌握String类常用方法的使用; (4)掌握字符串与字符数组和byte数组之间的转换方法; (5)Date,Math,PrintWriter,Scanner类的常用方法。 二.实验内容 1.二进制数转换为十六进制数(此程序参考例题249页9. 2.13) 程序源代码 import java.util.*; public class BinToHexConversion{ //二进制转化为十六进制的方法 public static String binToHex(String bin){ int temp; //二进制转化为十六进制的位数 if(bin.length()%4==0) temp = bin.length()/4; else temp = bin.length()/4 + 1; char []hex = new char[temp]; //十六进制数的字符形式 int []hexDec = new int[temp];//十六进制数的十进制数形式 int j = 0; for(int i=0;i Chapter2Elementary Programming 1.Valid identifiers:applet,Applet,$4,apps,x,y, radius Invalid identifiers:a++,--a,4#R,#44,class,public, int Keywords: class,public,int 2.double miles=100; final double KILOMETERS_PER_MILE= 1.609; double kilometers=KILOMETERS_PER_MILE*miles; System.out.println(kilometers); The value of kilometers is160.9. 3.There are three benefits of using constants:(1) you don’t have to repeatedly type the same value;(2) the value can be changed in a single location,if necessary;(3)the program is easy to read. final int SIZE=20; 4. a=46/9;=>a=5 a=46%9+4*4-2;=>a=1+16–2=15 a=45+43%5*(23*3%2);=>a=45+3*(1)=48 a%=3/a+3;=>a%=3+3;a%=6=>a=a%6=1; d=4+d*d+4;=>4+ 1.0+4=9.0 d+= 1.5*3+(++a);=>d+= 4.5+2;d+= 6.5;=>d=7.5 d-= 1.5*3+a++;=>d-= 4.5+1;=>d=1– 5.5=-4.5 5. 2 2 -4 -4 1 6.(2+100)%7= 4.So it is Thursday. 实验二Java语言基础 实验目的 1、了解Java 的数据类型; 2、掌握各种变量的声明方式; 3、理解运算符的优先级; 4、掌握Java 基本数据类型、运算符与表达式、数组的使用方法; 5、理解Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方 法; 6、通过以上内容,掌握Java 语言的编程规则。 实验要求 1、编写一个声明Java 不同数据类型变量的程序; 2、编写一个使用运算符、表达式、变量的程序; 3、编写一个使用Java 数组的的程序; 4、编写表达式语句、复合语句的程序; 5、编写使用不同选择结构的程序; 6、编写使用不同循环结构结构的程序。 实验内容 1、声明不同数据类型的变量 (1)编写声明不同数据类型变量的程序文件LX2_1.java,源代码如下。 public class EXP2_1 { public static void main(String args[]) { byte b=0x55; short s=0x55ff; int i=1000000; long l=0xffffL; char c='a'; float f=0.23F; double d=0.7E-3; boolean B=true; String S="这是字符串类数据类型"; 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 实验一:java基础知识 实验目的: 1.掌握jave中变量的类型。 2.掌握常用的运算符 3.程序流程控制:顺序,选择和分支 实验内容: 1、回文数: 编写一个Java程序。用户从键盘输入一个1-9999之间的数,程序将判断这个数是几位数,并判断这个数是否回文数。回文数是指该数含有的数字逆序排列后得到的数和原数相同。 实验类别:验证性 2、猜数字游戏 编写一个Java应用程序,实现如下功能: 程序随机分配给客户一个1-100之间的整数 用户在输入对话框中输入自己的猜测 程序返回提示信息,提示信息分别是:“猜大了”、“猜小了”、和“猜对了”用户可以根据提示信息再次输入猜测,直到提示信息是“猜对了” 实验类别:设计性 3、输出希腊字母表 为了输出希腊字母表,首先获取希腊字母表的第一个字母和最后一个字母在unicode表中的位置,然后使用循环输出剩余的希腊字母 要观察一个字符在uniclde表中的顺序位置 实验类别:设计性 实验二类和对象 实验目的: 1.理解类的基本概念。 2.掌握如何定义类,定义类的成员变量和成员方法.创建和使用对象。 3.掌握定义重载方法和构造方法,方法参数的传递。 4. static变量和方法的使用。 实验内容: 1、定义一个名为Rectangle的类表示矩形,其中含有length,width两个double型 的成员变量表示矩形的长和宽。要求为每个变量定义访问方法和修改方法,定义求矩形周长的方法peremeter和求面积的方法area。定义一个带参数构造方法,通过给出的长和宽创建矩形对象。定义默认构造方法,在该方法中调用有参构造方法,将矩形长宽设置为1.0。 实验类别:验证性 2、方法重载: 编写一个Java程序,反映方法重载的使用特点,该程序包含多个重载的加法的运算,如整型加法,实型加法。 实验类别:验证性 3、学生类的创建: 1)创建一个student类,包括的域有学号、班号、姓名、性别、年龄等 2)声明一个构造方法,以初始化对象的所有域 3)声明分别获得各属性(学号、班号、姓名、性别、年龄)的各个public方法。4)声明修改各属性(学号、班号、姓名、性别、年龄)的各个public方法。5)创建一个具体学生对象,进行输出。 实验类别:设计性 4、定义一个类,类中有两个整型变量x和y,并定义构造函数初始化这两个变量。(通过构造函数传数据,数据值自定) 类中还可定义以下方法: 求两个数的和(x+y)并返回结果,求两个数的差(x-y)并返回结果,求两个数商(x/y)并返回结果,求两个数的余数(x%y)并返回结果,求两个数的最大值并返回结果。 编写应用程序,测试上面定义的类,使用类中定义的各个方法并将其结果输出。实验类别:验证性 5、用set()、get()方法传递数据: 本工程共有三个类,Person类、Employee类、和Test类,其中Test类 为测试类,其中有main()方法。 调用的是默认的构造方法,参数为空。 实验类别:设计性 实验二Java基本语法练习 (对应于课本第二章与第四章的内容)一、实验目的 1.了解Java 的数据类型 2.掌握各种变量的声明方式 3.理解运算符的优先级 4.掌握Java 基本数据类型、运算符与表达式、数组的使用方法 5.理解Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法6.通过以上内容,掌握Java 语言的编程规则 二、实验要求 1. 编写一个声明Java 不同数据类型变量的程序。 2. 编写一个使用运算符、表达式、变量的程序。 3. 编写一个使用Java 数组的程序。 4. 编写表达式语句、复合语句的程序。 5. 编写使用不同选择结构的程序。 6. 编写使用不同循环结构的程序。 三、实验内容(验证性实验) (一)声明不同数据类型的变量(可选做) 1.编写声明不同数据类型变量的程序文件LX2_1.java,源代码如下。 public class LX2_1 { public static void main(String args[]) { byte b=0x55; short s=0x55ff; int i=1000000; long l=0xffffL; char c='a'; float f=0.23F; double d=0.7E-3; boolean B=true; String S="这是字符串类数据类型"; System.out.println("字节型变量b = "+b); System.out.println("短整型变量s = "+s); System.out.println("整型变量i = "+i); System.out.println("长整型变量l = "+l); Chapter20Recursion 1.A method that calls itself.One or more base cases(the simplest case)are used to stop recursion.Every recursive call reduces the original problem,bringing it increasingly close to a base case until it becomes that case. 2.f(n)=2if n=1 f(n)=2*2^(n-1)for(n>1) 3.f(n)=x if n=1 f(n)=x*x^(n-1)for(n>1) 4.f(n)=1if n=1 f(n)=f(n-1)+n for(n>1) 5.six times.(base case factorial(0)) 6.25times(Why? number of time fib is invoked in fib(0)= 1 number of time fib is invoked in fib(1)= 1 number of time fib is invoked in fib(2)= 1+number of time fib is invoked in fib(1)+number of time fib is invoked in fib(2) =1+1+1=3 number of time fib is invoked in fib(3)= 1+number of time fib is invoked in fib(1)+number of time fib is invoked in fib(2) =1+1+3=5 number of time fib is invoked in fib(4)= 1+number of time fib is invoked in fib(2)+number of time fib is invoked in fib(3) =1+3+5=9 number of time fib is invoked in fib(5)= 1+number of time fib is invoked in fib(3)+number of time fib is invoked in fib(4) =1+5+9=15 number of time fib is invoked in fib(6)= 1+number of time fib is invoked in fib(4)+number of time fib is invoked in fib(5) =1+9+15=25 实验 2 Java语言的基本语句练习 一、实验目的 1.了解 Java的数据类型 2.掌握各种变量的声明方式。 3.理解运算符的优先级。 4.掌握 Java基本数据类型、运算符与表达式、数组的使用方法。 5.理解 Java程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。6.通过以上内容,掌握 Java语言的编程规则。 二、实验要求 1. 编写一个声明 Java不同数据类型变量的程序。 2. 编写一个使用运算符、表达式、变量的程序。 3. 编写一个使用 Java数组的的程序。 4. 编写表达式语句、复合语句的程序。 5. 编写使用不同选择结构的程序。 6. 编写使用不同循环结构结构的程序。 三、实验内容 (一)声明不同数据类型的变量 1.编写声明不同数据类型变量的程序文件LX2_1.java,源代码如下。 public class LX2_1 { public static void main(String args[]) { byte b=0x55; short s=0x55ff; int i=1000000; long l=0xffffL; char c='a'; float f=0.23F; double d=0.7E-3; boolean B=true; String S="这是字符串类数据类型"; 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); } } Java语言程序设计实验报告一 班级:姓名:学号: 一、实验教学目的与基本要求 Java程序设计的实验是Java程序设计课程重要的实践教学环节。实验的目的不仅仅是验证理论知识,更重要的是通过上机加强学生的动手能力,掌握常用Java开发环境的使用方法,培养学生分析问题、解决问题、应用知识的能力和创新精神。充分放手让学生自行设计、自主调试,真正培养学生的实践动手能力,全面提高学生的综合素质。 本课程是一门程序设计语言课程,通过本课程的学习,学生能够掌握Java 语言程序的基本特点、基本编程方法和基本开发技巧,培养学生阅读、分析、设计和调试Java语言的能力,并具备一定的面向对象程序设计思想。 本课程的主要任务是在已学习的编程语言基础上,讲述Java语言的数据结构和语法规则;基本控制结构和编程技巧;Java语言面向对象的特点、编程方法和程序设计思路;Java语言的GUI程序和文件及I/O流的编程方法;能够正确配置Java开发环境,并使用相关的编辑、编译、调试、运行命令。 (1)掌握Java语言的编程技巧,能够独立进行面向对象的开发能力。 (2)具有根据编程需求独立查询Java类库文档及相关资料,完成系统的能力。 (3)具有分析、寻找和排除程序中常见问题的能力。 二、实验内容与收获 (1)Java的安装与配置。熟悉语言环境及简单程序设计的使用练习,正确配置Java 开发环境(Eclipse 集成开发环境的安装、配置与使用) a)安装JDK Sun公司为所有的Java程序员提供了一套免费的Java开发和运行环境。 可以通过IE或Netscape浏览器浏览网址:https://www.doczj.com/doc/6f14057682.html,/j2se,根据提示可以下载支持Microsoft Windows操作系统的jdk-1_5_0-windows-i586.exe到本地硬盘。 安装的时候可以选择安装到任意的硬盘驱动器上,例如安装到D:\jdk1.5.0目录下,如图1-2。正确安装后,在JDK目录下有bin、demo、lib、jre等子目录,如图1-3,其中bin目录保存了javac、java、appletviewer等命令文件,demo目录保存了许多java的例子,lib目录保存了Java的类库文件,jre目录保存的是Java的运行时环境(JRE)。 图1-2 实验5 Java类库和常用类(一) 一. 实验目的及实验环境 1理解类库的概念,掌握分析、应用类库中的类的方法。 2熟练掌握Math类的常用方法。熟悉Random类的常用方法。 3理解String类的特性,熟练掌握String类的常用方法。 4能用Date类创建对象,熟练掌握Date类的常用方法。 5熟练掌握SimpleDateFormat解析日期和设置日期输出格式。 6学会查阅Java API在线参考文档和离线文档的方法。 二. 实验内容 1 基本内容(实验前请及时熟悉如下相关内容) 1)练习使用Math类的常用方法。 2)应用String类编程练习。 3)编写程序应用Random类生成随机数。 4)练习使用Date类的常用方法。 5)查阅Java API在线参考文档和下载Java API离线文档。 示例1. 应用SimpleDateFormat类的程序示例如下,共同学们模仿参考。 import java.text.*; import java.util.Date; public class FormatDateTime { public static void main(String[] args) { SimpleDateFormat myFmt = new SimpleDateFormat("yyyy年MM月dd日 HH 时mm分ss秒"); SimpleDateFormat myFmt1 = new SimpleDateFormat("yy/MM/dd HH:mm"); SimpleDateFormat myFmt2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 等价于now.toLocaleString() SimpleDateFormat myFmt3 = new SimpleDateFormat("yyyy年MM月dd日 HH 时mm分ss秒 E "); SimpleDateFormat myFmt4 = new SimpleDateFormat("一年中的第 D 天一年中第w个星期一月中第W个星期在一天中k时 z时区"); Date now = new Date();//当前时间 System.out.println(myFmt.format(now)); System.out.println(myFmt1.format(now)); System.out.println(myFmt2.format(now)); System.out.println(myFmt3.format(now)); System.out.println(myFmt4.format(now)); System.out.println(now.toGMTString());//The method toGMTString() from the type Date is deprecated. System.out.println(now.toLocaleString()); System.out.println(now.toString()); } } 实验四java知识 本实验目的是练习如何创建Java 的基本语法,以及面向对象的知识,为后续的实验作好准备工作。 【课堂练习】一 (1)对数组排序 【实验效果】 根据实验要求,您必须在浏览器的地址栏中输入:Tomcat服务器的IP地址和端口号,如:http://localhost:8080/sort.jsp 【课堂练习】Java面向对象思想 课堂练习——包创建和引用 案例:新建Project项目,在该项目中创建aa.bb包,然后再引入java.util包中的Date类,并创建ShiJian类,练习包的创建和引用。 课堂练习——相同包之间的访问 案例:在已经建立Project项目中创建mr.bbb包,然后在该包中创建Test和ImpTest两个类,测试同包之间类的访问。 课堂练习——不同包中类之间的访问 案例:在已经建立Project项目中创建mr.aaa包和mr.zzk包,然后分别在包中创建Exam 和ImpExam两个类,测试不同包之间类的访问。 课堂练习——final变量 案例:在已经建立Project项目中创建mingri包,并在该包中创建T1类,在该类中定义一个final变量,然后再主方法中创建T1类的实例,并测试能否改变final变量的值。 课堂练习——final方法 案例:在已创建的项目Project的包mingri中创建T1类的之类ExT1,然后再ExT1类中测试是否能重写父类T1中的final方法。 课堂练习——继承性 案例:在项目的包aaa中创建A和B两个类,使类B是类A的子类,然后在子类B中创建B的实例,并通过该实例分别调用类A和类B的方法,掌握继承的原理。 课堂练习——抽象类 案例:在项目的包aaa中创建抽象类Example及其子类SubExample,在抽象类Example 中分别定义一个成员方法和一个抽象方法,并在子类中进行测试。 课堂练习——权限访问 案例:在项目的包aaa中创建类Exm,在该类中分别定义4种权限修饰符的成员变量并附初值,然后在主方法中创建类的实例,并分别输出这4个成员变量的值,测试上述4种权限修饰符的成员变量在当前类中的可见性。 案例:在项目的包aaa中创建类SameExm,也就是和前一个例子中创建的Exm类都放在同一个包aaa中,然后在SameExm类的主方法中创建类Exm的实例,并分别输出类Exm中4个成员变量的值,测试上述4种权限修饰符的成员变量在相同包的其他类中的可见性。 java语言程序设计基础篇第二章程序练习题答案 2.1(将摄氏温度转化为华氏温度) import java.util.*; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter a degree in celsius: "); double Celsius = input.nextDouble(); double Fahrenheit; Fahrenheit = (9.0/5) * Celsius + 32; System.out.println(Celsius + " Celsius is" + Fahrenheit + " Fahrenheit"); } } 2.2(计算圆柱体的体积) import java.util.*; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter the radius and length of a cylinder: "); double radius = input.nextDouble(); double length =input.nextDouble(); double area = radius * radius * Math.PI; double volume = area * length; System.out.println("The area is " + area); System.out.println("The volume is " + volume); } } 2.3(将英尺转换为米) import java.util.Scanner; public class test { public static void main(String[] args) { 河南工业大学 《JAVA程序设计基础》实验报告2 实验单元二Java基本语法 实验二数据类型与表达式 实验时间: 2019/3/8 【实验目的】 1.掌握Java语言数据类型以及变量的声明。 2.掌握Java语言的赋值运算符、赋值表达式、赋值语句。 3.掌握Java语言的整型和字符型的混合运算。 4.掌握Java语言的输入格式。 【实验环境】 JDK、Eclipse 【实验内容】 1.编写程序,获取用户通过键盘输入的两个整数,计算它们的和,并输出。 2.编写程序,计算如下表达式的值 a)ax+b(a,b,x的值自己指定) b)a+b>a+c(a,b,c的值自己指定) c)28>20&&30>24||58<12 3.编写程序,要求从键盘输入3个整数,并打印它们的和、平均值、最小值 和最大值。 4.编写程序,要求读入一个园的半径(整数),并输出园的直径、周长和面积。π的值去3.14159。 【实验源码及结果】 1.编写程序,获取用户通过键盘输入的两个整数,计算它们的和,并输出。 打开eclipse创建包并创建一个class 代码: package beautiful; import java.util.Scanner; public class Java1 { p ublic static void main(String[] args) { // TODO Auto-generated method stub System.out.println("可输入两个整数,求和."); S canner bs=new Scanner(System.in); i nt x=0,y=0,sum=0; S ystem.out.print("请输入第一个整数:"); x=bs.nextInt(); S ystem.out.print("请输入第二个整数:"); y=bs.nextInt(); s um=x+y; S ystem.out.println("两个整数之和:"+x+"+"+y+"="+sum); 《java语言基础》练习题 一、单项选择题 1.Java是从()语言改进重新设计。 A.Ada B.C++ C.Pasacal D.BASIC 答案:B 2.下列语句哪一个正确() A.Java程序经编译后会产生machine code B.Java程序经编译后会产生byte code C.Java程序经编译后会产生DLL D.以上都不正确 答案:B 3.下列说法正确的有() A.class中的constructor不可省略 B.constructor必须与class同名,但方法不能与class同名C.constructor在一个对象被new时执行 D.一个class只能定义一个constructor 答案:C 4.提供Java存取数据库能力的包是() A.java.sql B.java.awt C.https://www.doczj.com/doc/6f14057682.html,ng D.java.swing 答案:A 5.下列运算符合法的是() A.&& B.<> C.if D.:= 答案:A 6.执行如下程序代码 a=0;c=0; do{ --c; a=a-1; }while(a>0); 后,C的值是() A.0 B.1 C.-1 D.死循环 答案:C 7.下列哪一种叙述是正确的() A.abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 答案:D 8.下列语句正确的是() A.形式参数可被视为local variable B.形式参数可被字段修饰符修饰 C.形式参数为方法被调用时,真正被传递的参数D.形式参数不可以是对象 答案:A 浙江大学城市学院实验报告 课程名称 ______________ 面向对象程序设讣 实验工程名称 ________________ Java语言基础实验__________________________________ 学生姓名专业班级学号 实验目的和要求 1.掌握Java语言的基本数据类型、字符串、数组 2.掌握Java语言的运算符、表达式、语句 3.能够编写Java应用程序 二. 实验内容 1.局部变量与final变量实验 2.基本数据类型与转换实验 3.算术运算的精度问题实验 4.移位运算实验 5.运算赋值实验 6.短路逻辑运算实验 7.编程实验:输出Unicode特泄区间的字符。 &编程实验:分析输入的数字 三. 实验结果与分析(可将程序运行结果截屏,也可分析运行结果) 1.局部变量与final变量实验。编写以下程序,并回答问题。 public class LocalVariablcInitExample { public static void main(String[] args) { int a o System.out.print(a)o final int b = 100。 b++o System.out.print(b)c } } (1)程序的错误 1、S ystem.out.print(a)o出错,局部变量a没有进行过初始化或赋值 2、b++。岀错,不能对终态局部变量b赋值。它必须为空白,并且不使用复合赋值 (2)改正方式 public class LocalVariablelnitExample { public static void main(String[] args) { int a=10 o System.out.print(a)o final int b= 100° Systeni.out.print(b)o } } 2.基本数据类型与转换实验。编写以下程序,分析代码的输出结果,并回答问题。class Test2{ public static void main(String[] args){ System.out.println(M第1段测试代码输出”)。 System.out.println((byle)255)o System.out.println((short)65535)0 System.out.println((byte)-129)。 System.out.println((byte)129)o System.out.println((byte) 128)。 System.out.printing第2段测试代码输出”)。 int i= 123456789 c float f =仁 System.out.println(f)0 longj=123456789123456789L, double d = j。 System.out.println(d)o System.out.println(H第3段测试代码输出 System.out.println(077) <> System.out.println(0x77)o System.out.println(77)o } } 请分析并回答以下问题: (1)分析第1段代码,说明在什么情况下,int类型的数字转换为byte或者short类型,会岀 现符号变化,即正数变负数,负数变正数?为何输出会不同? 答:在强制类型转换时,如果数值超过目标类型的取值范用,那么某些数据位会被强行截断(即数据截断),从而导致数据丢失,甚至符号丢失。 例如:byte的取值范围是-27~2U, int类型的255不在这个范围内,强制转换的结果是-lo (2)分析第2段代码,说明整数类型向浮点型转型是否可能岀现精度损失,是否需要强制 转换。 答:整数类型向浮点型转型可能会出现精度损失?不需要强制转换,可以自动类型转换。 复习题2 如有雷同,纯属巧合! 1.下列哪一种叙述是正确的() A. abstract修饰符可修饰字段、方法和类 B.抽象方法的body部分必须用一对大括号{ }包住 C.声明抽象方法,大括号可有可无 D.声明抽象方法不可写出大括号 2.下列说法正确的有() A. class中的constructor不可省略 B. constructor必须与class同名,但方法不能与class同名 C. constructor在一个对象被new时执行 D.一个class只能定义一个constructor 3.以下哪个表达式是不合法的() A、String x=”Hello”; int y=9; x+=y; B、String x=”Hello”; int y=9; if(x= =y) { } C、String x=”Hello”; int y=9; x=x+y; D、String x=null; int y=(x!=null)&&(x.length()>0) ? x.length() : 0 4.下列关于修饰符混用的说法,错误的是() A.abstract不能与final并列修饰同一个类 B.abstract类中不可以有private的成员 C.abstract方法必须在abstract类中 D.static方法中能处理非static的属性 5.()修饰符允许对类成员的访问不依赖于该类的任何对象 A、abstract B、static C、return D、public 6.关于被私有访问控制符private修饰的成员变量,以下说法正确的是() A.可以被三种类所引用:该类自身、与它在同一个包中的其他类、在其他包中的该类的子类 B.可以被两种类访问和引用:该类本身、该类的所有子类 C.只能被该类自身所访问和修改 D.只能被同一个包中的类访问 Java 语言程序设计习题2 1.创建类,表示职员,取名为Employee。 a)添加成员变量,姓名、年龄、岗位、月薪。(名称随意) b)添加构造方法,可以设定姓名、年龄、岗位、月薪。 c)添加成员方法,可以读取并显示姓名、年龄、岗位、月薪。 d)添加成员方法,涨薪,给职员增加指定比例的月薪。 e)进行测试:创建3个职员实例,姓名、年龄、月薪任意。 f)进行测试:创建数组Employee e[],将创建的3个职员放入e。 g)进行测试:使用循环语句显示e中所有职员的信息。 h)进行测试:使用循环语句于e中所有职员增加10%月薪,重新显示所有 职员。 2.编写如下程序。 a)创建类,表示饭卡,取名为Card。 b)Card添加成员变量,double balance,表示余额。 c)Card添加构造方法,创建实例时设置余额。 d)Card添加成员方法,charge(double b),表示付费,调用后余额减b。 e)Card添加成员方法,getBalance(),返回余额值。 f)创建类,表示食堂,取名为Canteen。 g)Canteen添加成员方法,order(Card c, String s),表示用“c”这张卡购买 “s”这个食物。如果购买的是“rice”,c的余额减1,并显示余额值; 如果购买的是“milk”,c的余额减2,并显示余额值;如果都不是,显 示“No such food!” h)进行测试,创建Card与Canteen实例,购买“rice”、“milk”、“coffee”。 3.剩余时间调试教科书2、3章例题。 报告书电子版:新建记事本(.txt)文件,复制各题的程序代码(复制时请标注class 名称,如:p1.java)。文件名为: 学号_姓名.txt 程序源代码:左侧project文件->鼠标右键->properties,可查看源代码路径。将project文件夹(例:123456_小明)整体压缩。文件名为: 学号_姓名.zip(或rar) 请严格准守文件名格式,下周之内把两个文件交给班长。 2.1(将摄氏温度转化为华氏温度) import java.util.*; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter a degree in celsius: "); double Celsius = input.nextDouble(); double Fahrenheit; Fahrenheit = (9.0/5) * Celsius + 32; System.out.println(Celsius+ " Celsius is"+ Fahrenheit + " Fahrenheit"); } } 2.2(计算圆柱体的体积) import java.util.*; public class test { public static void main(String[] args) { // TODO Auto-generated method stub Scanner input = new Scanner(System.in); System.out.print("Enter the radius and length of a cylinder: "); double radius = input.nextDouble(); double length =input.nextDouble(); double area = radius * radius * Math.PI; double volume = area * length; System.out.println("The area is " + area); System.out.println("The volume is " + volume); } } 2.3(将英尺转换为米) import java.util.Scanner; public class test { public static void main(String[] args) { // TODO Auto-generated method stub 实验 2 Java基本数据类型与控制语句 一、实验目的 1.了解Java 的数据类型 2.掌握各种变量的声明方式。 3.理解运算符的优先级。 4.掌握Java 基本数据类型、运算符与表达式。 5.理解Java 程序语法结构,掌握顺序结构、选择结构和循环结构语法的程序设计方法。 6.通过以上内容,掌握Java 语言的编程规则。 二、实验要求 1. 编写一个声明Java 不同数据类型变量的程序。 2. 编写一个使用运算符、表达式、变量的程序。 3. 编写一个使用Java 数组的的程序。 4. 编写表达式语句、复合语句的程序。 5. 编写使用不同选择结构的程序。 6. 编写使用不同循环结构结构的程序。 三、实验内容 (一)声明不同数据类型的变量 1.编写声明不同数据类型变量的程序文件KY2_1.java,源代码如下。 public class KY2_1 { public static void main(String args[]) { byte b=0x55; short s=0x55ff; int i=1000000; long l=0xffffL; char c='a'; float f=0.23F; double d=0.7E-3; boolean B=true; String S="这是字符串类数据类型"; 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.编译并运行该程序 (二)了解变量的使用范围 1.建立KY2_2.java 文件,通过本程序了解变量的使用范围,源代码如下。 public class KY2_2 { static int i=10; public static void main(String args[]) { { int k=10; System.out.println("i="+i); System.out.println("k="+k); } System.out.println("i="+i); System.out.println("k="+k); //编译时将出错,已出k 的使用范围 } } 2.编译KY2_2.java 此时会出现错误提示。因为变量k 在方法块中声明,在方法块之外它是不存在的,所以编译时会出错。 3.修改上面的程序。 4.成功运行该程序。 思考:KY2_2.java 程序说明了什么问题? (三)使用关系运算符和逻辑运算符 1.建立使用关系运算符和逻辑运算符的程序文件,源代码如下。 class KY2_3 { public static void main(String args[]) { int a=25, b=20, e=3, f=0; boolean d=a
实验5 JAVA常用类
《Java语言程序设计:基础篇》课后复习题答案-第二章
实验二 Java语言基础
实验一java基础知识
实验2 Java基本语法练习
《Java语言程序设计:基础篇》课后复习题答案-第二十章
实验 2 Java语言的基本语句练习
JAVA实验报告一
实验5Java常用类(一)
实验四 Java知识
java语言程序设计基础篇第二章程序练习题答案
《JAVA程序设计基础》实验报告2
《java语言基础》考试题
Java语言基础实验
Java基础阶段复习题2(附答案)
Java语言程序设计-实验2
java语言程序设计(基础篇)第二章程序练习题答案
实验 2 Java基本数据类型与控制语句