实验报告
【实验名称】第二章类和对象
【实验目的】
1.学习Java的基本语法
2.学习Java的运算符和控制语句
3.学习类和对象的概念
【实验原理】
1.Java程序设计基本原理
2.面向对象程序设计基本原理
【实验内容】
一、填空题
1. System.out.println(“12”+ 5);语句的输出结果是 125 。
2. Java语言中“2.5%1.2”的运算结果是 0.1 。
二、简答
1. 为什么类成员方法只能操作类成员变量,而不能操作实例变量?
[解答]
因为类方法是静态方法,静态方法在加载class的时候就会初始化,而非静态成员(实例成员)还未进行初始化,所以类成员方法只能操作类成员变量,而不能操作实例变量。
2. 简述指针和引用有什么区别?
[解答]指针表示的是地址,引用表示的也是地址,但是指针可以进行修改,引用则不能进行改动。并且使用指针具有三大缺点,指针指向的内存并不是我们所需要的内存、指针所访存的内存空间是不允许被访存的、指针访存的空间并不存在。
三、实验题
1. 指出程序中的错误,并修正
public class Example{
public static void main(String args[]){
int a=1.0;
float fa=216;
float fb=21.656f;
double da=125e45d;
double db=123.45;
float fc=0.1;
}
}
[解答]:
int a=1.0 修改为 double a=1.0 (float型比int型级别高)
float fc=0.1 修改为 double fc=0.1 (double的类型比float级别高)
2.写出如下程序输出结果,并说明原因
public class E_c{
public static void main(String args[]){
String sx1="my";
String sx2="god";
char cx='a';
System.out.println(sx1+sx2);
System.out.println(sx2+cx);
System.out.println(sx1+5);
System.out.println(cx+5);
}
}
结果:
mygod
goda
my5
102
原因:
因为在输出内容包含字符串的时候,输出结果就全部为字符串,因此前三个结果为字符,第四个并不是,c的ascii为97,所以结果为102
3、把如下程序改成从键盘输入两个整数,并判断大小。
public class FindBigone{
public static void main(String args[]){
int i1=127;
int i2=59;
if(i1>=i2){
System.out.println("The Bigger One is:"+i1);
}else{
System.out.println("The Bigger One is:"+i2);
}
}
}
修改:
import java.util.Scanner;
public class FindBigone{
public static void main(String args[]){
Scanner reader=new Scanner(System.in);
System.out.println("输入两个整数,进行比较");
int i1=reader.nextInt();
int i2=reader.nextInt();
if(i1>=i2){
System.out.println("The Bigger One is:"+i1);
}else{
System.out.println("The Bigger One is:"+i2);
}
}
}
4、写出下列程序输出,并解释
public class Student{
String name;
static String school="北京大学";
public static void main(String args[]){
Student stu1=new Student();
Student stu2=new Student();
Student stu3=new Student();
https://www.doczj.com/doc/d818832189.html,="1";
https://www.doczj.com/doc/d818832189.html,="2";
https://www.doczj.com/doc/d818832189.html,="3";
System.out.println(https://www.doczj.com/doc/d818832189.html,+","+stu1.school);
System.out.println(https://www.doczj.com/doc/d818832189.html,+","+stu2.school);
System.out.println(https://www.doczj.com/doc/d818832189.html,+","+stu3.school);
stu2.school="安徽大学";
System.out.println(https://www.doczj.com/doc/d818832189.html,+","+stu1.school);
System.out.println(https://www.doczj.com/doc/d818832189.html,+","+stu2.school);
System.out.println(https://www.doczj.com/doc/d818832189.html,+","+stu3.school);
} //思考程序的输出结果
}
1,北京大学
2,北京大学
3,北京大学
1,安徽大学
2,北京大学
3,北京大学
原因:因为school是静态变量,name是非静态变量,所以对于前三个来说,name可以有多个,分别为1,2,3;但是school在内存中共享,表示为北京大学。因此可得出此结果。同理,对school进行修改,则school中存的值变为安徽大学,共享的缘故,stu1,stu2,stu3的school均为安徽大学,因此得出后面三个结果。
【小结或讨论】
这次实验课主要讲了三个方面的内容,类与对象,Java的基本算法以及Java的运算符和控制对象。首先回顾了类的使用方法,对比了面向对象与Java的不同,如何区分指针和引用,以及Java中类的使用。接着介绍了Java的基本用法,Java 的操作符、数据类型和基本输入输出语句,需要注意的部分,boolern型只有整数、汉字也是Java的一种,整数默认是int型,浮点数默认是double型。最后是简单讲述了运算符和控制语句,之中需要注意的是浮点数也可以进行取余操作,if的判断语句中必须是true或者false。