java程序设计——实验二
《Java程序设计》实 验 报 告(二)
实验名称:java编程基础 | 实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse | |
一、实验目的:
| |
二、实验内容: 1.编写Applet 程序 (1)程序功能:这个Applet 程序要在页面上输出两个矩形,并伴有文字输出。 (2)定义一个MyBox类,包含有x, y, width, height四个成员变量以及MyBox(), MyBox(int xPos, int yPos, int w, int h), void setPosition (int xPos, int yPos) , void setSize (int w, int h), int getX() ,int getY(),void draw(Graphics g) 成员方法. | |
三、源代码 四、实验结果测试、收获与体会: 能够运行小程序,对类的继承和对函数的调用,有了进一步的学习 |
实验名称:java编程基础 | 实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse | |
一、实验目的:
| |
二、实验内容: (二).修饰符的使用 有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。 常用的修饰符如下。[public] [private] [protected] [package] [static] [final] [transient] [volatile]不同修饰符的访问控制权限如表所示。 1.程序功能:通过两个类StaticDemo、Demo2_2 说明静态变量/方法与实例变量/方法的区别。 2.编写类文件Demo2_2.java,程序源代码如下。 class StaticDemo { static int x; int y; public static int getX() { return x; } public static void setX(int newX) { x = newX; } public int getY() { return y; } public void setY(int newY) { y = newY; } } public class Demo2_2 { public static void main(String[] args) { System.out.println("静态变量x="+StaticDemo.getX()); System.out.println("实例变量y="+StaticDemo.getY()); StaticDemo a= new StaticDemo(); StaticDemo b= new StaticDemo(); a.setX(1); a.setY(2); b.setX(3); b.setY(4); System.out.println("静态变量a.x="+a.getX()); System.out.println("实例变量a.y="+a.getY()); System.out.println("静态变量b.x="+b.getX()); System.out.println("实例变量b.y="+b.getY()); } } 3.对上面的源程序进行编译,是否会有错误?如果有,错误原因是什么?将源程序中的出错语句删除或使用解释符//隐藏起来,分析运行结果,可以得出几点结论? | |
三、源代码 四、实验结果测试、收获与体会: 实验给出的源程序是错误的,对于成员变量y不是static类型,也就不是静态变量,不可以直接通过类名访问,需要实例化,用对象访问。对于静态变量,通过对象改变值,而最后确定的值是最后一次所改变的值。 |
实验名称:java编程基础 | 实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse | |
一、实验目的:
| |
二、实验内容: (三). 1.方法中参数传递的练习 在其它语言中,函数调用或过程调用时参数有传值调用和传地址调用之分。在Java 中,方法中的参数传递可以分为传值调用或对象方法调用等方式。传值调用即传递的参数是基本数据类型,调用方法时在方法中将不能改变参数的值,这意味着只能使用它们。对象调用是指先调用对象,再调用对象的方法,这种方式可以修改允许存取的成员变量。所以,如果不想改变参数的值,可以采用传值调用的方法。如果想改变参数的值,可采用对象调用的方法,间接修改参数的值。 1.编写一个传值调用的程序文件Demo2_3.java。 (1)程序功能:程序首先给整型变量x 和y 赋一个初值10,然后使用传值调用方式调用方法ff1对x 和y 做乘方及输出x 和y 的乘方值,最后再输出x 和y 的乘方值。 (2)程序源代码如下。 class Demo2_3 { public static void main(String[] args) { int x=10, y=10; ff1(x, y); System.out.println("x="+x+", y="+y); } static void ff1(int passX, int passY) { passX=passX*passX; passY=passY*passY; System.out.println("passX="+passX+", passY="+passY); } } (3)编译Demo2_3.java,分析运行结果。 | |
三、源代码 四、实验结果测试、收获与体会: 传值调用即传递的参数是基本数据类型,调用方法时在方法中将不能改变参数的值,这意味着只能使用它们。在此程序中,x与y的值通过传参将值传给形参,但本身的x与y的值不发生改变。 |
实验名称:java编程基础 | 实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse | |
一、实验目的:
| |
二、实验内容: (三). 2.方法中参数传递的练习 编写一个调用对象方法的程序文件Demo2_4.java。 (1)程序功能:通过调用对象的方法在方法调用后修改成员变量的值。 (2)Demo2_3.java 程序源代码如下。 class Demo2_3{ public static void main(String[] args) { Power p=new Power(); p.ff2(10,10); System.out.println("方法调用后 x="+p.x+", y="+p.y); } } class Power{ int x=10, y=10; void ff2(int passX, int passY) { System.out.println("初始时 x="+x+", y="+y); x=passX*passX; y=passY*passY; System.out.println("方法调用中 x="+x+", y="+y); } } (3)编译Demo2_3.java,分析运行结果。 | |
三、源代码 四、实验结果测试、收获与体会: 先调用对象,再调用对象的方法,这种方式可以修改允许存取的成员变量。在此程序中,通过对象进行传参,此时的x与y已经被改变。 | |
实验名称:java编程基础 | 实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse | |
一、实验目的:
| |
二、实验内容: (四).综合练习 1.抽象类 (1)设计一个形状类 Shape,包含一个 getArea()方法,该方法不包含实际语句。 (3)设计一个 TestShape 类,在 main 函数中新建三种类型的对象s1、s2、s3,输出 area。 | |
三、源代码 四、实验结果测试、收获与体会:
通过abstract定义抽象类和抽象方法,对抽象方法学习了只有方法名、参数表和返回值,是没有方法体的,而有抽象方法必须将此类定义为抽象类,抽象类也没有具体的对象。所以对abstract关键字有了进一步的学习。 |
实验名称:java编程基础 | 实验地点:10-306 |
所使用的工具软件及环境: JDK1.7或1.8与Eclipse | |
一、实验目的:
| |
二、实验内容: (四).综合练习 2.接口 编写求解几何图形(如三角形,矩型,圆)的面积的应用程序。其中定义一个interface getProperty { double Pi=3.1415926; double getArea(); } class triangle,class circle,class rectangle实现该接口中的方法。 要求程序能从键盘上接受几何图形的数据以便求解不同的几何图形的面积。 提示:从键盘上输入双精度数的一种方法(程序片段) …… public static void main(String args[]) throws IOException { BufferedReader keyin=new BufferedReader(new InputStreamReader(System.in)); String x; x=keyin.readLine(); double a=Double.parseDouble(x); …… 输入的另一种方法:用Scanner类的方法 Scanner scan = new Scanner(System.in); year = scan.nextInt();等等 | |
三、源代码 四、实验结果测试、收获与体会: 能够设计接口,并且学习到关于接口的使用方法,还有关键字的记忆。 |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 2025年我用 Compose 写了一个 Todo App
· 张高兴的大模型开发实战:(一)使用 Selenium 进行网页爬虫