当前位置:文档之家› 实验2 Java语言基础实验

实验2 Java语言基础实验

实验2 Java语言基础实验
实验2 Java语言基础实验

实验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是否是平方数、素数。

实验5 JAVA常用类

山西大学计算机与信息技术学院 实验报告 姓名学号专业班级 课程名称 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=0&&dec<10) return (char)('0'+dec-0); else if(dec>=10&&dec<=15) return (char)('A'+dec-10); else return '@'; }

《Java语言程序设计:基础篇》课后复习题答案-第二章

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语言基础

实验二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基础知识

实验一: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()方法。 调用的是默认的构造方法,参数为空。 实验类别:设计性

实验2 Java基本语法练习

实验二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);

《Java语言程序设计:基础篇》课后复习题答案-第二十章

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语言的基本语句练习

实验 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语言面向对象的特点、编程方法和程序设计思路;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

实验5Java常用类(一)

实验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知识 本实验目的是练习如何创建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语言程序设计基础篇第二章程序练习题答案

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程序设计基础》实验报告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语言基础》考试题

《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语言基础实验

浙江大学城市学院实验报告 课程名称 ______________ 面向对象程序设讣 实验工程名称 ________________ 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段代码,说明整数类型向浮点型转型是否可能岀现精度损失,是否需要强制 转换。 答:整数类型向浮点型转型可能会出现精度损失?不需要强制转换,可以自动类型转换。

Java基础阶段复习题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

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) 请严格准守文件名格式,下周之内把两个文件交给班长。

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) { // TODO Auto-generated method stub

实验 2 Java基本数据类型与控制语句

实验 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

相关主题
文本预览
相关文档 最新文档