(参考答案版)福建农林大学_java_实验二_数值类型与变量声明
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Java面向对象程序设计
实验二
数值类型与变量声明
学号:
姓名:
学院:计算机与信息学院
专业班级:
指导教师:***
2 015.10.15
实验二、数值类型与变量声明(1)程序运行结果如下:
说明如下:
第一个数定义的类型为int,而1234578900+987543210的结果为2222122110,超过了231-1,故表示为负数。
第二个数定义的类型虽为long,但在java中,整形数值默认为int,第二个数赋值时未在数值后加L,故默认为int类型,因此,得到的数也为负数。
第三个数定义的类型为long,赋值时进行运算的两个数中,前一个数虽未加L,但后一个数已定义为long,故java进行自动类型转化将其转为long类型,又结果未超过263-1所以得到的结果是正确的。
第四个数定义的类型为long,赋值时进行运算的两个数也都定义为long,又结果未超过263-1,所以得到的结果是正确的。
(2)程序运行的结果如下:
源代码如下:
public class Example1{
public static void main(String args[]){
int x=45;
float y=3.14f;
double z=3.1415;
boolean truth=true;
char c='6';
System.out.println("各变量的值是:");
System.out.println("x的值是:"+x);
System.out.println("y的值是:"+y);
System.out.println("z的值是:"+z);
System.out.println("truth的值是:"+truth);
System.out.println("c的值是:"+c);
}
}
“+”的作用是在输出时起连接作用,将前后内容连接起来进行输出。
(3)程序源代码及解释如下:
public class TypeConversion{
public static void main(String args[]){
char a=1;
int b=4;
double c=24.6f;
byte d;
d=(byte)(a+b+c);//a、b两个数自动转换为double类型,
//并将运算结果强制转换为byte类型,结果为29 short e;
e=(short)(a+b+c);//a、b两个数自动转换为double类型,
//并将运算结果强制转换为short类型,结果为29 double g;
g=a+b+c;//a、b两个数自动转换为double类型,
//运算结果为29.600000381469727
System.out.println("d="+d);
System.out.println("e="+e);
System.out.println("g="+g);
}
}
(4)程序运行结果如下:
源代码如下:
public class CharSample{
public static void main(String[]args){ System.out.println("H"+"Bird");
System.out.println('H'+"Bird");
String s="";
char c=65;
int i=1;
System.out.println(c);
System.out.println(i);
System.out.println(c+i);
System.out.println(c);
System.out.println(c+i+i);
System.out.println(++c);
System.out.println(i);
System.out.println(s+c+i);
System.out.println(c+i);
s+=i;
System.out.println(s);
s+=c;
System.out.println(s);
}
}
(5)各字符解释如下:
\ \ t :表示键盘上的“TAB ”键,ascii 码为 9,Unicode 码为 0009。
n :在 Windows 中表示换行且回到下一行的最开始位置,
在 Linux 、unix 中只表示换行,但不会回到下一行的开始位置, ascii 码为 10,Unicode 码为 000A 。
\ \ \ \ r :在 Linux 、unix 及 Windows 中表示返回到当行的最开始位置, ascii 码为 13,Unicode 码为 000D 。
”:表示“””这个符号,即双引号,ascii 码为 34,Unicode 码为 0 022。
’:表示“’”这个符号,即单引号,ascii 码为 39,Unicode 码为
027。
\:表示“\”这个符号,即反斜杠,ascii 码为 92,Unicode 码为
05C 。
0
程序运行结果如下:
源代码如下:
public class TestChar {
public static void main(String[] args) {
String s1="Java",s2="Object-Oriented",s3="Software", s4="Design";
String sp="";
System.out.print(s1+'\t'+s2+sp+s3+sp+s4+'\n');
System.out.print(s1+'\n');
System.out.print(s1+'\r'+s2+sp+s3+sp+s4+'\n');
System.out.print(s1+'\n');
System.out.print(s2+sp+s3+sp+s4+'\n');
System.out.print('\"'+s1+s2+sp+s3+sp+s4+'\"'+'\n');
System.out.print('\''+s1+s2+sp+s3+sp+s4+'\''+'\n');
System.out.print('\\'+s1+s2+sp+s3+sp+s4+'\\'+'\n');
}
}
(6)1、程序编译及运行结果如下:
2、修改后代码如下:
public class Variable{
public static void main(String[]args){
char ch='a';
System.out.println(ch);
}
}
程序编译及运行结果如下:
3、修改后代码如下:
public class Variable{
public static void main(String[]args){ char ch=100;
System.out.println(ch);
}
}
程序编译及运行结果如下:
4、修改后代码如下:
public class Variable{
public static void main(String[]args){ char ch=65536;
System.out.println(ch);
}
}
程序编译结果如下:
编译发现一个错误,原因是java中的char是一个特殊的2字节int类型的整形,其表示的范围为0~216-1,而65536超过了
这个范围,故编译报错。
、修改后代码如下:
5
public class Variable{
public static void main(String[]args){
float f=10.0f;
System.out.println(f);
}
}
程序编译及运行结果如下:
6、修改后代码如下:
public class Variable{
public static void main(String[]args){
double d=10.0;
System.out.println(d);
}
}
程序编译及运行结果如下:
、程序编译结果如下:
7
编译发现一个错误,原因是f定义为float,而d定义为double,double可表示的数值范围比float大,故double数转换成float 会丢失精度,因此编译报错。
8、程序编译及运行结果如下:
程序结果中输出的字符串在源代码中表示为("c=%c",a),其中c=直接输出,而%c指的是输出一个字符,其值为后面给出
的a所对应的值,即10+‘a’,又’a’对应的整形数为65,所以此时a=75,故输出’k’。
9、定义布尔类型的变量,其初值为真,代码如下:
boolean flag=true;
10、程序编译及运行结果如下:
运行结果中输出的字符串在源代码中表示为("v="+v),其中v=
直接输出,后面输出的内容是Variable类默认的toString方法
所返回的内容,其中@前表示的是该类名,@后表示的是v这
个对象在内存中的hashCode,出现这个方法的原因是java中
所有的类都继承于Object类,Object类有toString方法,而
Variable这个类又没有重写toString方法,故java按照Object
类的默认方法返回hashCode。
关于Object类中的toString方法,API文档说明如下:
(7)程序源代码如下:
public class FahrenheitToCelsius{
public static void main(String[]args){
double fah=78;
double cel=Transform(fah);
System.out.println("Fahrenheit="+fah);
System.out.println("Celsius="+cel);
}
static double Transform(double x){
return((5.0/9)*(x-32));
}
}
程序编译及运行结果如下:
(8)程序源代码如下:
public class CharToInteger{
public static void main(String[]args){ char ch='C';
System.out.println(ch+0);
}
}
程序编译及运行结果如下:。