java实验二

合集下载

jav实验二

jav实验二

jav实验⼆实验内容1.初步掌握单元测试和TDD2.理解并掌握⾯向对象三要素:封装、继承、多态3.初步掌握UML建模4.熟悉S.O.L.I.D原则5.了解设计模式实验内容1.参考Intellj IDEA 简易教程提交最后三个测试⽤例都通过的截图,截图上要有画图加⽔印,输⼊⾃⼰的学号。

2.参考积极主动敲代码使⽤JUnit学习Java,以 TDD的⽅式研究学习StringBuffer,提交你的单元测试⽤例和测试通过的截图,截图要加上学号⽔印。

3.实验⼆ Java⾯向对象程序设计对设计模式⽰例进⾏扩充,体会OCP原则和DIP原则的应⽤,初步理解设计模式⽤⾃⼰的学号%6进⾏取余运算,根据结果进⾏代码扩充:0:让系统⽀持Byte类,并在MyDoc类中添加测试代码表明添加正确11:让系统⽀持Short类,并在MyDoc类中添加测试代码表明添加正确2:让系统⽀持Boolean类,并在MyDoc类中添加测试代码表明添加正确3:让系统⽀持Long类,并在MyDoc类中添加测试代码表明添加正确4:让系统⽀持Float类,并在MyDoc类中添加测试代码表明添加正确5:让系统⽀持Double类,并在MyDoc类中添加测试代码表明添加正确4.以TDD的⽅式开发⼀个复数类Complex⽀持加减乘除。

5.使⽤StarUML对实验⼆中的代码进⾏建模,发类图的截图,加上学号⽔印。

类图中⾄少两个类。

实验步骤(⼀)单元测试(1)三种代码•产品代码public class MyUtil{public static String percentage2fivegrade(int grade){//如果成绩⼩于60,转成“不及格”if (grade < 60)return "不及格";//如果成绩在60与70之间,转成“及格”else if (grade < 70)return "及格";//如果成绩在70与80之间,转成“中等”else if (grade < 80)return "中等";//如果成绩在80与90之间,转成“良好”else if (grade < 90)return "良好";//如果成绩在90与100之间,转成“优秀”else if (grade < 100)return "优秀";//其他,转成“错误”elsereturn "错误";}}•测试代码为了检测代码的健硕性,避免出现bug需要对代码进⾏测试,这个时候就需要使⽤测试代码。

实验二 Java类编程实验

实验二  Java类编程实验

实验二Java类编程实验实验目的1.掌握Java类的基本定义和使用方法2.熟悉Java语言的基本语法和运行原理3.掌握Java的基本数据类型、表达式和程序控制结构4.熟悉Eclipse开发环境的基本使用方法实验内容1. 对象的创建和使用使用集成开发环境编写一个圆环类Ring的Java程序。

圆环类有3个数据成员,分别是内半径innerRadius,外半径outerRadius和颜色color,这些属性通过get和set方法进行封装。

另外,圆环类中的getArea方法可以返回其面积。

把程序中的代码补充完整,并查看结果。

public class Ring {private double innerRadius;private double outerRadius;private String color;public Ring(double iRadius, double oRadius, String c) { //初始化数据成员}//用get和set方法封装数据成员public double getArea() {}public static void main(String[] args) {Ring ring = new Ring(5,8,"red");System.out.println("圆环的内半径: " +ring.getInnerRadius( ));System.out.println("圆环的外半径: " + ring.getOuterRadius( ));System.out.println("圆环的颜色: " + ring.color);System.out.println("圆环的面积: " + ring.getArea() + "\n");ring.setInnerRadius(4);//设置圆环ring的外半径为6ring.setColor("blue");System.out.println("圆环的内半径: " + ring.getInnerRadius( ));System.out.println("圆环的外半径: " + ring.getOuterRadius( ));System.out.println("圆环的颜色: " + ring.color);System.out.println("圆环的面积: " + ring.getArea());}}思考:1)将程序中的语句Ring ring = new Ring(5,8,"red"); 改成Ring ring = newRing();修改后编译运行,此时有错误发生吗?分析错误的原因。

Exam02_Java实验二(new)

Exam02_Java实验二(new)

简单总结:如何在集成开发环境Eclipse下编写和执行Java应用程序。

(1)启动Eclipse⏹打开Eclipse启动进入后,有可能会出现三个视图:包括资源管理,层次结构等视图。

初学阶段可以先将它们关闭,然后打开“导航器”窗口,步骤为:窗口→显示视图→导航器。

(备忘:Java源程序编辑窗口的字体大小设置方法:窗口→首选项→常规→外观→颜色和字体→基本→文本字体,然后选择右侧的“编辑”按钮,即可做相应的设置。

)⏹文件→新建→Java项目(第1步是建立项目),然后输入项目名(如Hello),该名和类名可同也可不同。

输入项目名后即可点击“完成”按钮,系统将自动建立一个与项目名相对应的文件夹。

同学们也许会问,文件夹放在哪里呢?注意观察….我们机房是在E:盘的Javafiles下。

⏹在窗口左侧的“导航器”中,在项目名如Hello上点击右键,选择:新建→类(第2步是建立类)。

⏹在弹出的Java类对话框中,在“名称”栏中输入类名,如Myfile,注意:类名和项目名Hello可以不同,建议首字符大写。

⏹在“想要创建哪些方法存根”处,建议选择:public static void main(String[]args),单击完成即可进入编程窗口下面再次认识一下Java的编程窗口:特别提醒:如果程序中只有一个类,则类名与文件名一定是相同的。

(2)编写Java程序:在写代码的地方写一条信息输出语句,每写一条语句就要以分号结束。

如下所示:System.out.println("Hello Java");解释:System ------ 是java内置的类,名为System,你注意到它的首字母是大写的吗?out --------- 是System的一个对象println ----- 是out对象的一个方法(又可说为:操作或行为),方法往往对应一个功能,在这里是完成输出功能或输出操作。

(3)运行程序:菜单中有“运行”命令,如果没有语法等错误,则将执行程序,其结果显示在“控制台”窗口中。

JAVA实验报告_实验2__

JAVA实验报告_实验2__

Java Object-Oriented Programming Experimental ReportStudent ID Name ClassLocation Teacher Time1.Experimental purposes and requirements1.1 Print and println, String literals, String concatenation, Escape sequences1.2 Variables, Constants, Assignment, Integers and Floating point, Arithmetic Expressions, Operator Precedence, Input using the Scanner class1.3 HTML, Applets, Graphics, Colors2.Experimental equipment (environment) and requirements2.1 Eclipse2.2 Window XPb Exercises(Please see Lab Manual)3.1 Names and Places(Choose to do)3.1.13.1.23.1.33.2 Table of Student Grades(Choose to do)/\\\\\\\\\\\\\\\\\\\\\\\ (1)(2)(3)3.3 Two Meanings of Plus(1)(2)(3)解释语句一:第一个输出结果是85,没加括号从左到右运算前第一句为字符串则8和5为字符串,有85(4)解释语句二:第二个输出结果为13,在输出语句中默认优先进行带括号的运算,8和5为整型,变成数字之后在从左到右运算,左面第一个为字符串则运算完的13也为字符型(5)解释语句三:无括号,从左到右运算,其中第三句为字符串则从左到右全识别为字符型则853.4 Pre-lab Exercises(1)常量是静态变量,不会更改,全程序共用同一个常量名变量可以在不同类中同时存在不属于本类的变量名,值可以不同(2)第一句:定义变量x第二句:定义整型变量x值为3第三句:啥都不是(3)(4)A 73B -14C 0.3D 3.333E 1.57F 4.03G 0.248H 4.29I 0.31J 1K 1(5)修改语法错误(已修改完)import java.util.Scanner;public class errors{public static void main (String[] args){String Name; // Name of the userint number;int numSq;Scanner scan = new Scanner(System.in);System.out.print ("Enter your name, please: ");Name = scan.nextString();System.out.print ("What is your favorite number?“);number = scan.nextInt();numSq = number * number;System.out.println (Name +", the square of your number is "+numSquared);}}3.5 Area and Circumference of a Circle(1)(2)(3)3.6 Painting a Room(Choose to do) (1)(2)3.7 Ideal Weight(1)(2)3.8 Lab Grades(Choose to do)3.9 Base Conversion(Choose to do)3.10 Introduction to HTML(Choose to do) 3.11 Drawing Shapes(2)x,y修改为0(3)高和宽改为200 300(4)400 40 50 200(4)矩形打印(5)椭圆3.12 The Java Coordinate System(Choose to do)3.13 Drawing a Face(Choose to do)3.14 Creating a Pie Chart(Choose to do)3.15 Colors in Java(Choose to do)4.Experimental results and data processing5.Analysis and discussionScore: 6.Teacher ReviewsExperimental Report List1 Names and Places1) Source code list3.1package test_java_01;//*************************************************************** //Names.java////Prints a list of student names with their hometowns//and intended major//*************************************************************** public class Test_java_01_1{// ------------------------// main prints the list// ------------------------public static void main (String[] args){System.out.println ();System.out.println ("\tName\t\tHometown");System.out.println ("\t====\t\t========");System.out.println ("\tprince\t\tblack_dragon_river_province"); System.out.println ("\tcircle\t\tWashington");System.out.println ();}}package test_java_01;//*************************************************************** //Names.java////Prints a list of student names with their hometowns//and intended major//*************************************************************** public class Test_java_01_1{// ------------------------// main prints the list// ------------------------public static void main (String[] args){System.out.println ();System.out.println ("\tName\t\tHometown\t\tmajor\t");System.out.println ("\t====\t\t========\t\t==========="); System.out.println ("\tprince\t\tblack_drass\t\tcomputer");System.out.println ("\tcircle\t\tWashington\t\tghhhh");System.out.println ();}}3.2public class Test_java_01_1{// ------------------------// main prints the list// ------------------------public static void main (String[] args){System.out.println("\t//////////////////////\t"+"\t\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\ \\\\ \t");System.out.println ("\t======\t\tStudent Points\t\t=====\t ");System.out.println ("\tName\t\tLab\t\tBonus\t\tTotal ");System.out.println ("\t----\t\t---\t\t-----\t\t----- ");System.out.println ("\tJoe\t\t43\t\t7\t\t50\t ");System.out.println ("\tWiam\t\t50\t\t8\t\t58 ");System.out.println ("\tMaue\t\t3\t\t1\t\t4 ");System.out.println ("\tMarSue\t\t9\t\t10\t\t9 ");System.out.println ("\tMSue\t\t39\t\t10\t\t49 ");}}3.3(3)package test_java_01;import java.util.Scanner;public class PlusTest {public static void main (String[] args){int vail1,vail2,vail3;double average;Scanner scan=new Scanner(System.in);vail1=scan.nextInt();vail2=scan.nextInt();vail3=scan.nextInt();average=((double)vail1+(double)vail2+(double)vail3)/3;System.out.println("Please enter three integers and " +"I will compute their average :"+average);}}3.43.5(1)package test_java_01;public class sdd_3_5 {public static void main(String[] args){final double PI = 3.14159;int radius = 10;double area = PI * radius * radius;double line = PI * 2 * radius;System.out.println("The area of a circle with radius " + radius + " is " + area);radius = 20;area = PI * radius * radius;area = PI * radius * radius;System.out.println("The area of a circle with radius " + radius + " is " + area);}}(2)package test_java_01;public class sdd_3_5 {public static void main(String[] args){final double PI = 3.14159;int radius = 10;double area = PI * radius * radius,area2=4*area,area3;double line = PI * 2 * radius,line2=2*line,line3;double a,a1;a=line2-line;a1=area2/area;System.out.println("The area of a circle with radius " + radius + " is " + area);System.out.println("The line of a circle with radius " + radius + " is " + line);System.out.println(a+" "+a1);radius = 20;line3 = PI * 2 * radius;area3 = PI * radius * radius;System.out.println("The line of a circle with radius " + radius + " is " + line3);System.out.println("The area of a circle with radius " + radius + " is " + area3);}}(3)package test_java_01;import java.util.Scanner;public class sdd_3_5 {public static void main(String[] args){final double PI = 3.14159;Scanner scan=new Scanner(System.in);System.out.println("put in two number:");int a=scan.nextInt(),b=scan.nextInt();int c=a*b;System.out.println("number :"+c);}}3.6(1)package test_java_01;import java.util.Scanner;public class Area_jisuan_2 {public static void main(String[] args) {final int COVERAGE = 350;Scanner scan = new Scanner(System.in);System.out.print("put in length width and height:");int length = scan.nextInt(),width = scan.nextInt(),height =scan.nextInt();double totalSqFt,paintNeeded;paintNeeded = height*width*2 + width*length*2 + length*height*2;totalSqFt = paintNeeded/COVERAGE;System.out.print("the paintNeeded:"+ paintNeeded+" the totalSqFt:" +totalSqFt);}}(2)package test_java_01;import java.util.Scanner;public class Area_jisuan_2 {public static void main(String[] args) {final int COVERAGE = 350,doorsarea = 20,windowarea = 15 ;Scanner scan = new Scanner(System.in);System.out.println("put in length width and height:");int length = scan.nextInt(),width = scan.nextInt(),height =scan.nextInt();int doors,window;System.out.println("windows number and doors number:");window=scan.nextInt();doors=scan.nextInt();char i;double totalSqFt,paintNeeded;paintNeeded = height*width*2 + width*length*2 + length*height*2 - doors*doorsarea - windowarea*window;totalSqFt = paintNeeded/COVERAGE;System.out.print("the paintNeeded:"+ paintNeeded+" the totalSqFt:" +totalSqFt);}}3.7package test_java_01;import java.util.Scanner;public class weight {public static void main(String[] args) {int male1 = 14, female1 = 5;int weightreall,i=0,l;System.out.print("put in male or female:");Scanner scan = new Scanner(System.in);String c=scan.next();String b=new String("male");System.out.print("put in your height:");double height=scan.nextDouble(),ol,k;ol=height%1;ol=(2*ol*100+1)/20;if(b.equals(c)){weightreall = male1*(int)ol + 100;}else{weightreall = female1*(int)ol + 100;}System.out.print(weightreall);}}(2)package test_java_01;import java.util.Scanner;public class weight {public static void main(String[] args) {int male1 = 14, female1 = 5;int weightreall,i=0,l,weightreallf;System.out.print("put in male or female:");Scanner scan = new Scanner(System.in);String c=scan.next();String b=new String("male");System.out.println("put in your height:");double height=scan.nextDouble(),ol,k;ol=height%1;ol=(2*ol*100+1)/20;weightreall = male1*(int)ol + 100;double wei=weightreall,min,max;min=wei*0.85;max=wei*1.15;System.out.println("最佳体重范围男"+min+"-----"+max);weightreallf =female1*(int)ol +100;wei = weightreallf;min=wei*0.85;max=wei*1.15;System.out.println("最佳体重范围男"+min+"-----"+max);if(b.equals(c)){System.out.print("你的体重"+weightreall);}else{System.out.print("你的体重"+weightreallf);}}}3.8(1)四矩形打印//********************************************//Hello.java////Print a Hello, World message.//********************************************package test_java_01;import javax.swing.JApplet;import java.awt.*;public class hello extends JApplet{public void paint (Graphics page){final int MAX_SIZE = 300;final int PAGE_WIDTH = 600;final int PAGE_HEIGHT = 400;int x, y;int width, height;setBackground (Color.yellow);page.setColor (Color.blue);x = 400;y = 400;width = 150;height = 150;// Draw the rectanglepage.fillRect(x, y, width, height);page.setColor (Color.cyan);page.fillRect(x, y, width-50, height-50);page.setColor (Color.green);page.fillRect(x, y-40, width-100, height+50);page.fillRect(x-200, y-200, width-100, height+50);}}(2)来两个椭圆//********************************************//Hello.java////Print a Hello, World message.//******************************************** package test_java_01;import javax.swing.JApplet;import java.awt.*;public class hello extends JApplet{public void paint (Graphics page){final int MAX_SIZE = 300;final int PAGE_WIDTH = 600;final int PAGE_HEIGHT = 400;int x, y;int width, height;setBackground (Color.yellow);page.setColor (Color.blue);x = 400;y = 400;width = 150;height = 150;// Draw the rectanglepage.fillOval(x, y, width, height);page.setColor (Color.cyan);page.fillRect(x, y, width-50, height-50);page.setColor (Color.green);page.fillRect(x, y-40, width-100, height+50);page.fillOval(x-200, y-200, width-10, height+50);}}2) Results data processing3)Answer questions4)Error Analysis and Discussion。

JAVA实验二

JAVA实验二

实验二Java语言基础
一、实验目的
1.掌握标识符的定义规则。

2.掌握表达式的组成。

3.掌握各种数据类型及其使用方法。

4.理解定义变量的作用,掌握定义变量的方法。

5.掌握各种运算符的使用及其优先级控制。

二、实验内容
1.运行下面的程序,掌握变量定义与数据类型。

2.运行下面的程序,掌握算术运算。

3.运行下面的程序,掌握关系运算与逻辑运算
三、思考题
1.定义变量的作用是什么?
2.Java运算符的优先级与结合性是怎样的?
3.将本实验的实验内容1中的
long l=3615L;
改为:
long l=3615;
会出现什么情况?为什么?
提示:缺省的整型常量为int型,long型常量后面要加l或L。

4.将本实验的实验内容1中的
float f=0.23F;
改为: float f=0.23;
会出现什么情况?为什么?
提示:缺省的浮点型常量为双精度(double)型,单精度(float)型常量后面加f或F。

5.分析本实验的实验内容2中的语句
int j=i++;
int k=++i;
的执行过程。

提示: j=i i=i+1
以及 i=i+1 k=i
6.分析本实验的实验内容3中的语句
d=(f!=0&&a/f>5);
和语句
d=(f!=0&a/f>5);
有什么区别?
提示:对于快速逻辑与运算,当运算符左侧表达式的值为true时,不再计算右侧表达式的值。

java实验2

java实验2

实验二面向对象基础一、实验目的:熟悉Java类的结构,掌握类的定义、方法和属性的定义以及对象的实现,通过编程和上机实验理解Java 语言是如何体现面向对象编程基本思想,了解类的封装方法,以及如何创建类和对象,了解成员变量和成员方法的特性,掌握OOP 方式进行程序设计的方法二、实验内容:1.定义一个“圆”类,该圆类的数据成员包括:圆心点位置及圆的半径;方法成员有:设置圆心位置、获取圆的圆心位置及构造方法。

要求构造方法、可以接收圆心位置参数,而半径使用缺省值1;2.定义以上圆的子类,使它具有获取半径方法、设置半径方法和构造方法,要求构造方法可同时接收圆心位置及半径两个参数;3.编写完整的程序实现上述两个圆类的对象,并且分别调用各种方法,对比这些方法的执行结果,并据此写出详细的实验报告。

4.掌握对修饰符的使用三、实验要求:1. 实现两个类的继承关系;2. 用多种方法实现两个类的对象;3. 程序应包括各个被调用方法的执行结果的显示。

4.四、实验步骤:第一部分:1.进入Java编程环境;2. 新建一个Java文件,命名为circles. java;3. 定义圆类fatherCircle,按实验内容1定义它的属性和方法;4. 定义子类sonCircle,按实验内容2定义它的属性和方法;5. 定义主类和主方法,构建上述两个类的对象fatherObject和sonObject,并通过这两个对象调用它们的属性和方法,输出方法执行结果。

第二部分:使用修饰符有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。

常用的修饰符如下。

[public] [private] [protected] [package] [static] [final] [transient] [volatile]不同修饰符的访问控制权限如表6.1 所示。

(1)程序功能:通过两个类说明静态变量、方法与实例变量、方法的区别。

java实验二附答案

java实验二附答案

Java实验二实验二类与对象实验目的1、掌握面向对象程序设计的方法和Java作为面向对象程序设计语言的特点;2、掌握修饰符和构造方法的使用规则;3、掌握接口的特点、结构、调用和继承;4、掌握如何创建包,通过包如何管理类;5、掌握Java的继承机制和实现多态的方法实验内容(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。

SetRecord赋值学号、姓名和成绩,GetRecord通过学号得到考生的成绩。

通过实例验证编程无误。

(2)定义一个接口Area,其中包含一个计算面积的抽象方法calculateArea(),然后设计Circle和Rectan两个类实现这个接口的方法calculateArea(),分别计算圆和矩形的面积。

通过实例验证编程无误。

(3)假定根据学生的3门学位课程的分数决定其是否可以拿到学位,对于本科生,如果3门课程的平均分数超过60分即表示通过,而对于研究生,则需要平均分超过80分才能够通过。

根据上述要求,请完成以下Java类的设计:(i)设计一个基类Student描述学生的共同特征。

(ii)设计一个描述本科生的类Undergraduate,该类继承并扩展Student类。

(iii)设计一个描述研究生的类Graduate,该类继承并扩展Student类。

(iv)设计一个测试类StudentDemo,分别创建本科生和研究生这两个类的对象,并输出相关信息附实验一名称是Java语言基础实验报告分为以下几个部分一实验名称二实验目的三实验仪器四实验步骤(把你的操作一步一步写清楚,java 程序代码要写)五实验结果(程序运行后的结果就是DOS环境下运行出来的结果写在实验报告上)六实验讨论(实验过程中的错误及如何改正,你的心得体会等)答案:(1)定义一个类Student,属性为学号、姓名和成绩;方法为增加记录SetRecord和得到记录GetRecord。

java实验报告实验2答案

java实验报告实验2答案

实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。

了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。

实验内容:创建一个java项目,命名为experiment2。

(如何创建项目参考《实验一》的项目创建方法。

)(一)创建图形用户界面图形用户界面(Graphic User Interface ,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。

组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。

组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。

通过容器的add方法把组件加入到容器中。

1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。

(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet{Label l1;Button b1, b2, b3, b4, b5, b6;public void init(){setLayout(new GridLayout(3,3)); // 设置网格布局(3 行3 列共9 个网格)l1=new Label("标签1");b1 = new Button("按钮1");b2 = new Button("按钮2");b3 = new Button("按钮3");b4 = new Button("按钮4");add(l1);add(b1);add(b2);add(b3);add(new Label());add(b4);add(new Button("按钮5"));add( new Button("按钮6"));add(new Label("标签2"));}}(3)编译程序LX6_1.java。

java实验二

java实验二

java实验二、类与对象一、实验目的1.掌握类的声明。

2.掌握对象的创建。

3.掌握方法的定义和调用。

4.掌握构造函数的使用。

二、实验内容1.编程创建一个Box类,在其中定义三个变量表示一个立方体的长、宽和高,再定义一个方法setDemo对这三个变量进行初始化,然后定义一个方法求立方体的体积。

创建一个对象,求给定尺寸的立方体的体积。

将方法setDemo再改用构造函数实现初始化。

3.编程创建一个Point类,在其中定义两个变量表示一个点的坐标值,再定义构造函数完成初始化,然后定义一个方法实现点的移动,再定义一个方法打印当前点的坐标。

并创建一个对象验证。

提示:关键代码如下:void move(int newX,int newY){x=newX;y=newY;}void print(){System.out.println(":x="+x+" y="+y);}…p.print();p.move(50,50);System.out.println("**after moving**");p.print(); //call method of an object4.定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"和"查询余额"。

定义主类,创建帐户类的对象,并完成相应操作。

提示:关键代码如下:public int getleftmoney(){return leftmoney;}public void savemoney(double money){leftmoney+=money;}public void getmoney(double money){if(money<=leftmoney)leftmoney-=money;elseSystem.out.println("只能取:"+leftmoney);}…Bankaccount ba=new Bankaccount(123456,1000);ba.savemoney(2000);System.out.println("存入2000元后余额为:"+ba.getleftmoney()); ba.getmoney(1500);System.out.println("取1500元后余额为:"+ba.getleftmoney());。

java实验2实验报告1

java实验2实验报告1

java实验2实验报告1Java 实验 2 实验报告一、实验目的本次 Java 实验 2 的主要目的是通过实际编程操作,深入理解和掌握Java 语言中的一些重要概念和技术,包括面向对象编程的基本思想、类和对象的创建与使用、方法的定义与调用,以及异常处理等方面的知识。

通过实践,提高我们的编程能力和解决问题的能力。

二、实验环境本次实验使用的开发工具是 IntelliJ IDEA,Java 版本为 JDK 18。

操作系统为 Windows 10。

三、实验内容1、设计一个简单的学生类(Student)包含学生的姓名(name)、学号(studentID)、年龄(age)等属性。

定义构造方法用于初始化学生对象的属性。

定义获取和设置学生属性的方法。

2、实现一个计算学生平均年龄的方法接受一个学生对象数组作为参数。

计算并返回学生的平均年龄。

3、异常处理在计算平均年龄的方法中,处理可能出现的除数为 0 的异常情况。

四、实验步骤1、创建学生类(Student)```javapublic class Student {private String name;private int studentID;private int age;public Student(String name, int studentID, int age) {thisname = name;thisstudentID = studentID;thisage = age;}public String getName(){return name;}public void setName(String name) {thisname = name;}public int getStudentID(){return studentID;}public void setStudentID(int studentID) {thisstudentID = studentID;}public int getAge(){return age;}public void setAge(int age) {thisage = age;}}```2、计算平均年龄的方法```javapublic class AverageAgeCalculator {public double calculateAverageAge(Student students) {int totalAge = 0;int studentCount = studentslength;for (Student student : students) {totalAge += studentgetAge();}if (studentCount == 0) {throw new ArithmeticException("除数不能为 0,学生数组为空。

java实验报告 二

java实验报告 二

实验二:面向对象编程一、实验目的通过编程和上机实验了解Java语言是如何体现面向对象编程基本思想,熟悉类的封装方法以及如何创建类和对象,熟悉成员变量和成员方法的特性,熟悉类的继承性和多态性的作用,熟悉包、接口的使用方法,掌握OOP方式进行程序设计的方法。

二、实验要求1、编写程序实现类的定义和使用。

2、编写不同成员和不同成员方法修饰方法的程序。

3、编写体现类的继承性(成员变量、成员方法、成员变量隐藏)的程序和多态性(成员方法重载、构造方法重载)的程序。

4、编写接口的定义和使用的程序。

5、编写包的定义和使用的程序。

三、实验内容及运行结果1、类的定义和使用●定义一个满足如下要求的Date类:a.用下面的格式输出日期:日/月/年b.可运行在日期上加一天操作c.设置日期用该类编写一个显示当前日期的程序。

●创建一个桌子Table类,该类中有桌子名称、重量、桌面宽度、长度及桌子高度属性。

其中有:a.构造函数初始化所有数据成员b.Area():计算桌面的面积c.Display():在屏幕上输出所有数据成员的值d.ChangeWeight(int ):改变桌子重量的函数e.在main()中实现创建一个桌子对象,计算桌面的面积,改变桌子重量,并在屏幕上输出所有桌子数据成员的值。

源代码:class Table{private String name;private double weight;private double width;private double length;private double height;//构造函数public Table(String name,double weigth,double width,double length,double height){ = name;this.weight = weight;this.width = width;this.length = length;this.height = height;}//计算桌面的面积public double Area(){return width*length;}//在屏幕上输出所有数据成员的值public void Display(){System.out.println("桌子的名称: "+name+", "+"重量(kg): "+weight);System.out.println("桌面的宽度(cm): "+width+", "+"长度(cm): "+length);System.out.println("桌子的高度(cm): "+height);}//改变桌子重量的函数public void ChangeWeight(double weight){this.weight = weight;}}class TestTable{public static void main(String[] args){Table t = new Table("桌神",10,100,60,130);//计算桌面的面积System.out.println("桌面的面积为:"+t.Area());//改变桌子重量t.ChangeWeight(15);//在屏幕上输出所有桌子数据成员的值t.Display();}}运行结果:2、修饰符的使用:有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。

Java实验2

Java实验2

实验2类和对象一、实验目的:1、学习定义类和使用类创建对象。

2、掌握对象变量和普通变量的区别,学习掌握使用对象调用其成员的方法。

3、学习掌握类的构造方法。

4、学习掌握给方法传递对象。

5、学习掌握类变量、类方法。

6、学习掌握关键字this。

7、学习掌握类抽象的概念。

二、实验任务:1、使用Java SDK建立一个非图形化的标准Java程序,学习类的定义、使用类创建对象、通过对象调用其成员、类的构造方法的作用、如何给方法传递对象、掌握静态变量、静态方法的用法。

程序要求:(1)首先创建Circle类表示平面上的圆,要求该类具备构造方法,以初始化表示半径的私有数据成员radius;具备求圆面积的方法;还要具备一个静态数据成员numOfObjects,用来统计程序运行过程中创建圆对象的个数。

(2)创建一个静态方法public static void printCircle(Circle c),功能是输出参数圆对象c的相关信息,包括半径和面积的值。

(不是Circle的成员方法)(3)程序运行中创建2个以上的圆对象,分别输出相关信息,并统计输出对象的数目。

2、使用Java SDK建立一个非图形化的标准Java程序,进一步学习上述的内容以及关键字this的使用和类抽象的概念。

程序要求:(1)首先创建有理数类Rational,该类包含构造方法和加、减、乘、除方法。

(2)程序主方法中创建两个有理数对象,分别进行加、减、乘、除运算,并输出运算结果。

三、实验步骤:1、使用Windows写字板编辑源程序如下。

public class TestInstanceAndClassVariable{// Main methodpublic static void main(String[] args){// Create circle1Circle circle1 = new Circle();// Display circle1 BEFORE circle2 is createdSystem.out.println("Before creating circle2");System.out.print("circle1 is : ");printCircle(circle1);// Create circle2Circle circle2 = new Circle(5);// Change the radius in circle1circle1.setRadius(9);// Display circle1 and circle2 AFTER circle2 was createdSystem.out.println("\nAfter creating circle2 and modifying " +"circle1's radius to 9");System.out.print("circle1 is : ");printCircle(circle1);System.out.print("circle2 is : ");printCircle(circle2);}// Print circle informationpublic static void printCircle(Circle c){System.out.println("radius (" + c.getRadius() +") and number of Circle objects (" +c.getNumOfObjects() + ")");}}// Circle.java: Circle class with instance and class variablesclass Circle{private double radius;private static int numOfObjects = 0; // Class variable// Default constructorpublic Circle(){radius = 1.0;numOfObjects++;}// Construct a circle with a specified radiuspublic Circle(double r){radius = r;numOfObjects++;}// Getter method for radiuspublic double getRadius(){return radius;}// Setter method for radiuspublic void setRadius(double newRadius){radius = newRadius;}// Getter method for numOfObjectspublic static int getNumOfObjects(){return numOfObjects;}// Find circle areapublic double findArea(){return radius*radius*Math.PI;}}2、把上面编辑的源程序保存成Java源程序文件(扩展名为java),程序文件名为TestInstanceAndClassVariable.java。

Java实验二

Java实验二

Java实验⼆⼀、实验内容1. 初步掌握单元测试和TDD2. 理解并掌握⾯向对象三要素:封装、继承、多态3. 初步掌握UML建模4. 熟悉S.O.L.I.D原则5. 了解设计模式⼆、实验过程(本次试验都是在⾃⼰电脑上完成,没有使⽤实验楼)(⼀)单元测试⽤程序解决问题时,要会写三种码:伪代码、产品代码、测试代码TDD的⼀般步骤如下:1.明确当前要完成的功能,记录成⼀个测试列表2.快速完成编写针对此功能的测试⽤例3.测试代码编译不通过(没产品代码呢)4.编写产品代码5.测试通过6.对代码进⾏重构,并保证测试通过(重构下次实验练习)7.循环完成所有功能的开发(⼆)⾯向对象三要素1.抽象抽象就是抽出事物的本质特征⽽暂时不考虑他们的细节。

对于复杂系统问题⼈们借助分层次抽象的⽅法进⾏问题求解;在抽象的最⾼层,可以使⽤问题环境的语⾔,以概括的⽅式叙述问题的解。

在抽象的较低层,则采⽤过程化的⽅式进⾏描述。

在描述问题解时,使⽤⾯向问题和⾯向实现的术语。

程序设计中,抽象包括两个⽅⾯,⼀是过程抽象,⼆是数据抽象。

2.封装、继承与多态⾯向对象(Object-Oriented)的三要素包括:封装、继承、多态。

过程抽象的结果是函数,数据抽象的结果是抽象数据类型。

封装实际上使⽤⽅法(method)将类的数据隐藏起来,控制⽤户对类的修改和访问数据的程度,从⽽带来模块化(Modularity)和信息隐藏(Information hiding)的好处;接⼝(interface)是封装的准确描述⼿段。

(三)设计模式初步(1)S.O.L.I.D原则⾯向对象三要素是“封装、继承、多态”,任何⾯向对象编程语⾔都会在语法上⽀持这三要素。

如何借助抽象思维⽤好三要素特别是多态还是⾮常困难的,S.O.L.I.D类设计原则是⼀个很好的指导。

(2)模式与设计模式模式是某外在环境(Context) 下﹐对特定问题(Problem)的惯⽤解决之道(Solution)。

Java实验报告_实验二

Java实验报告_实验二

Java实验报告_实验⼆实验2 类和对象【实验宗旨】每天做⼀点编程练习。

【实验⽬的】1、学习和掌握Java创建对象的⽅法。

2、学习和掌握通过创建对象、使⽤类的⽅法。

3、学习和掌握Java类定义的⽅法。

4、了解类设计的⼀般原则。

【实验内容】1、(Java API类的应⽤)使⽤java.util.Random类,创建种⼦是1000的Random对象,然后使⽤nextInt(100)⽅法显⽰0到100 之间前50个随机整数。

【实验预习】创建Random对象,含有1000个种⼦,然后输出其中的前50个⽆输⼊,创建Random random = new Random(1000);利⽤for循环输出前50的随机数。

【实验过程及结果记录】import java.util.Random;public class JavaText {public static void main(String[] args) {Random random = new Random(1000);for (int i = 0; i < 50; i++)System.out.print(random.nextInt(100) + " ");}}【实验总结】练习产⽣随机数的⽅法(Random).2.(使⽤StackOfIntegers类,显⽰素数因⼦)编写⼀个程序,提⽰⽤户输⼊⼀个正整数,然后以降序显⽰它的所有最⼩因⼦。

例如:如果整数为120,那么显⽰的最⼩因⼦为5、3、2、2、2。

使⽤StackOfIntegers类存储因⼦(如:2、2、2、3、5),获取之后按倒序显⽰这些因⼦。

【实验预习】练习类的调⽤,使⽤StackOfIntegers类【实验过程及结果记录】import java.util.*;import java.awt.*;import javax.swing.*;public class zhiyinshu{public static void main (String[] args) {StackOfIntegers h1 =new StackOfIntegers(); StackOfIntegers h2 =new StackOfIntegers();String str=JOptionPane.showInputDialog(null,"请输⼊⼀个正整数","分解质因数",JOptionPane.QUESTION_MESSAGE); int yuanshu = Integer.parseInt(str);int i=2;int b=0;int c=0;do{i=2;b=0;do{if(yuanshu%i==0){yuanshu=yuanshu/i;h1.jilu(i);b=1;}i++;}while(b==0&&i}while(ih1.jilu(yuanshu);c=h1.getsize();for(int v=0;vh2.jilu(h1.esc());for(int v=0;vSystem.out.print(""+h2.esc()+"\n"); }}class StackOfIntegers {private int size;private int[] zhan;public static final int a=16;public StackOfIntegers(){this(a);}public StackOfIntegers(int n){zhan = new int[n];}public void jilu(int up) {if(size>=zhan.length){int[] temp = new int[zhan.length * 2];System.arraycopy(zhan,0,temp,0,zhan.length);zhan=temp;}zhan[size++]=up;}public int esc(){return zhan[--size];}public int getsize(){return size;}}【实验总结】练习了创建随机数的⽅法以及Java的输出⽅法,在编码的过程中还是经常出现⼤⼩写打错的情况。

java实验报告实验2答案(共5篇)

java实验报告实验2答案(共5篇)

java实验报告实验2答案(共5篇)第一篇:java实验报告实验2答案互联网软件应用与开发实验指导书实验二熟悉Applet,GUI编程实验目的:本实验旨在巩固同学们对上课所讲Applet,异常处理,java的控制加深理解,图形用户界面基本组件窗口、按钮、文本框、选择框、滚动条等的使用方法,对java的语法和编程有一个更加深入的理解,为同学们以后的能够用Java进行独立地编写桌面程序打下一定的基础。

了解如何使用布局管理器对组件进行管理,以及如何使用Java的事件处理机制。

实验内容:创建一个java项目,命名为experiment2。

(如何创建项目参考《实验一》的项目创建方法。

)(一)创建图形用户界面图形用户界面(Graphic User Interface,简称GUI)是为方便用户使用设计的窗口界面,在图形用户界面中用户可以看到什么就操作什么,取代了在字符方式下知道是什么后才能操作什么的方式。

组件(Component)是构成GUI的基本要素,通过对不同事件的响应来完成和用户的交互或组件之间的交互。

组件一般作为一个对象放置在容器(Container)内,容器是能容纳和排列组件的对象,如Applet、Panel(面板)、Frame(窗口)等。

通过容器的add方法把组件加入到容器中。

1.在Applet中添加标签、按钮并使用网格布局(1)程序功能在Applet 容器中添加组件标签、按钮,并使用网格布局管理器排列组件在容器中的位置。

(2)编写LX6_1.java 程序文件,源代码如下:import java.awt.*;import java.applet.Applet;public class LX6_1 extends Applet { Label l1;Button b1, b2, b3, b4, b5,b6;public void init(){互联网软件应用与开发实验指导书setLayout(new GridLayout(3,3));// 设置网格布局(3 行3 列共9 个网格)l1=new Label(“标签1”);b1 = new Button(“按钮1”);b2 = new Button(“按钮2”);b3 = new Button(“按钮3”);b4 = new Button(“按钮4”);add(l1);add(b1);add(b2);add(b3);add(newLabel());add(b4);add(new Button(“按钮5”));add(new Button(“按钮6”));add(new Label(“标签2”));} }(3)编译程序LX6_1.java。

JAVA实验2报告

JAVA实验2报告

实验二系统类和数组一、实验目的1、通过字符串处理类的应用,掌握系统类的使用方法。

2、掌握数组的定义和使用。

3、进一步掌握 Java 程序设计的基本过程和基本方法。

二、实验内容1、应用数组和字符串,编写一个用于统计学生成绩的程序,运行之后,首先能接受用户输入不超过10 个学生的姓名和 Java 课的分数。

输入结束之后,能输出这批学生的 Java 课最高分者和最低分者的姓名和分数。

还能接受用户输入学生姓名来查询某学生的成绩,当姓名不存在时,向用户提示不存在该学生。

2、通过应用 Java 中常用的数组和字符串,编写一个简单的通讯录程序,来熟悉系统类和数组的应用。

通讯录由多条记录构成。

每条记录包括一个联系人的姓名、性别、电话、通信地址,并具有显示、查询、增加、修改、删除等功能,且每执行一次功能操作后,可以选择用类似以下的格式,输出通讯录的所有信息记录:编号姓名性别电话通信地址01 张三男 123456 上海02 李四女 456789 桂林可考虑用数组分别存储姓名,性别,电话,通信地址,那么显示、查询,增加、修改、删除操作就可转换为对数组元素的操作。

通讯录中的所有记录的每一个字段可以采用一维或二维或其它类型数组来存放。

请发挥自己的思考能力,用自己熟悉的或者觉得更合理的方式来设计程序解决问题,完成该实验。

三、设计过程分析1)定义一个学生类,学生类的成员变量包括String 类的学生姓名,Float类型的JAVA 成绩。

然后在,main类中申明、创建学生类对象数组,并且通过对象的成绩成员变量查找最高分和最低分。

2)定义一个People类,包含编号、姓名、性别、电话、通讯地址五个成员变量。

在main类中的主函数里,申明并创建People类对象数组。

通过调用数组对象的成员变量实现查找、修改、删除的作用,而添加直接是一个新的People类对象,并赋值给数组。

四、测试数据和运行结果1)依次输入四名学生的姓名和成绩李明 88王红 75张丽 60黄敏 90输出最高分和最低分学生信息输入要查询的学生姓名王红输出查询的该学生信息(测试截图如下)2)初次使用先添加2个成员,然后再测试添加功能、查询功能、删除功能、显示功能,部分测试数据及输出结果如下截图五、问题与总结问题:定义一个对象数组时,运行时,会导致NullPointerException错误,在循环对象数组成员元素时发生逻辑错误,导致查询成功后仍然提示未找到该成员。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

信息工程学院Java程序设计实验/实习报告学院: 班级:地信姓名: 学号:2 成绩:A面向对象编程一、实验/实习过程(一)实验目的掌握Java程序面向对象编程的基本架构,会运用面向对象的思想编写Java程序。

(二)实验过程【实验题1】完成如下程序,完成思考题[基本要求] 运行程序并观察运行结果。

[思考问题] 试述程序中主要语句的作用运行结果:主要程序语句的作用已标注为注释:class CCircle // 类的声明{ double pi; //申明成员变量double radius; //申明成员变量double getRadius() //创建方法实验报告的内容与格式按任课教师的要求书写。

{ return radius; //返回 radius}void setCircle(double r, double p) //创建方法{ pi=p; //初始化数据成员radius=r; //初始化数据成员}}public class Ex2_1 //类的声明{ public static void main(String args[]) //主方法{ CCircle cir1=new CCircle(); //创建对象cir1.setCircle(2.0,3.1416); //调用对象System.out.println("radius="+cir1.getRadius()); //输出结果}}【实验题2】设计一个用来描述汽车的类,使用类的静态成员变量来表示汽车的车主姓名、当前的速率和当前方向盘的转向角度,使用类的非静态成员方法来表示改变汽车的速率和停车两个操作。

package zz1;public class Car{String name;int speed;int jiaodu;public Car(String name,int speed,int jiaodu){=name;this.speed=speed;this.jiaodu=jiaodu;System.out.println("车主:"+);System.out.println("车速为:"+this.speed);System.out.println("方向盘角度:"+this.jiaodu);}void changename(String name){=name;System.out.println("当前车主为:"+);}void changespeed(int speed){this.speed=speed;System.out.println("当前速度为:"+this.speed);}void changejiaodu(int jiaodu){this.jiaodu=jiaodu;System.out.println("当前方向盘角度为:"+this.jiaodu);}void stop(){this.speed =0;System.out.println("停车后,车速为:"+this.speed);}public static void main(String args[]){Car car=new Car("张三",0,0);car.changename("好友");car.changespeed(20);car.changejiaodu(30);car.stop();}}结果:【实验题3】定义一个类MyProgram,包含两个属性:一个是private的整型属性data、一个是private的String类型的属性str,封装这两个属性的四个方法setData()和getData()、setStr( )和getStr();将这两个属性转变为字符串的方法是toStr ()。

编写程序,使用MyProgram类,实现数据的访问和修改,并调用toStr()方法显示该类的属性。

[基本要求] 编写完整程序。

[思考问题] 试述程序中各个方法的作用。

代码如下:package zz1;public class Myprogram {private int data;private String str;void setdata(int data){this.data=data;}int getdata(){return data;}void setstr(String str){this.str=str;}String getstr(){return str;}String toStr(){String a=data+" ";a=str;return a;}public static void main(String args[]){Myprogram m=new Myprogram();m.data=1000;m.str="jgfldjsglkdj";System.out.println("转换之前:"+m.data);System.out.println("转换之后:"+m.str);}}结果如下:[思考问题] 试述程序中各个方法的作用。

setData()和setStr()方法的作用是获得数据和资料,getData()、和getStr()作用为设置数据和资料。

toStr()函数用来将其他类型转化为字符串类型。

【实验题4】定义一个类实现银行帐户的概念,包括的变量有"帐号"和"存款余额",包括的方法有"存款"、"取款"、"查询余额"和”显示帐号”。

定义主类,创建帐户类的对象,并完成相应操作。

提示:关键代码如下:public int getleftmoney(){return leftmoney;}public void savemoney(double money){leftmoney+=money;}public void getmoney(double money){if(money<=leftmoney)leftmoney-=money;elseSystem.out.println("只能取:"+leftmoney);}…bankaccount ba=new bankaccount(888123,1000);ba.savemoney(21000);System.out.println("存入21000元后余额为:"+ba.getleftmoney()); ba.getmoney(11500);System.out.println("11500元后余额为:"+ba.getleftmoney());代码如下:package zz1;public class Bankaccount {int acc;int leftmoney;Bankaccount(int acc,int leftmoney){this.acc=acc;this.leftmoney=leftmoney;}public int getleftmoney(){return leftmoney;}public void savemoney(double money){leftmoney+=money;}public void getmoney(double money){if(money<=leftmoney)leftmoney-=money;elseSystem.out.println("只能取:"+leftmoney);}public static void main(String args[]){Bankaccount ba=new Bankaccount(888123,1000);ba.savemoney(21000);System.out.println("存入21000元后余额为:"+ba.getleftmoney());ba.getmoney(11500);System.out.println("取出11500元后余额为:"+ba.getleftmoney());}}结果如下:【实验题5】完成课本4.13(102页)jar文件的生成并产生Use类的运行结果。

【实验题6】对象的组合。

现有一个Rectangle类,请设计一个柱形类cuboid。

1. 此类具有两个成员变量,(1)Rectangle类型的成员变量rect(长方体以长方形做底)和(2)height(柱形的高)。

2. 此类应具有构造方法。

3. (1)此类应具有求面积的方法getVolme()。

(2)此类应具有设置和获得底的长度和宽度的方法:getBottomWidth(),setBottomWidth(),getBottomLength(),setBottomLength()。

Rectangle的代码如下:public class Rectangle {double width,length;public void setWidth(double w) {if(w > 0)this.width=w;}public double getWidth(){return width;}public void setLength (double h) {if(length > 0)this.length =h;}public double getLength () {return length;}}代码如下:package zz1;public class Cuboid {double rect,height;double width,length;Cuboid(double height){this.height=height;}public void getBottomWidth(double width){ if(width > 0)this.width=width;}public void setBottomWidth(){System.out.println("底面宽是:"+width); }public void getBottomLength(double length) { if(length > 0)this.length =length;}public void setBottomLength (){System.out.println("底面长是:"+length); }public void getVolme(){double V;V=width*length*height;System.out.println("柱形的体积是:"+V); }public static void main(String args[]){Cuboid cub=new Cuboid(20);cub.getBottomWidth(15);cub.getBottomLength(17);cub.setBottomWidth();cub.setBottomLength();cub.getVolme();}}结果如下:【实验题5】有图形类的父类Shape,参照圆Circle类补充完整正方性Square和三角形Triangle类,并分析运行结果。

相关文档
最新文档