Java__实验三
Java实验三实验报告1
Java实验三实验报告1一、实验目的本次 Java 实验的主要目的是深入理解和掌握 Java 中的面向对象编程概念,通过实际的编程实践,提高对类、对象、继承、多态等特性的运用能力,同时培养良好的编程习惯和代码规范。
二、实验环境1、操作系统:Windows 102、开发工具:Eclipse IDE for Java Developers三、实验内容1、设计一个名为`Shape` 的抽象类,其中包含一个抽象方法`calculateArea()`用于计算图形的面积。
2、分别创建`Circle`(圆形)、`Rectangle`(矩形)和`Triangle`(三角形)类继承自`Shape` 类,并实现各自的`calculateArea()`方法来计算具体图形的面积。
3、创建一个测试类`TestShapes`,在其中创建不同图形的对象,并调用其计算面积的方法,输出结果。
四、实验步骤1、创建`Shape` 抽象类```javaabstract class Shape {abstract double calculateArea();}```2、创建`Circle` 类继承自`Shape` 类```javaclass Circle extends Shape {private double radius;public Circle(double radius) {thisradius = radius;}@Overridedouble calculateArea(){return MathPI radius radius;}}```3、创建`Rectangle` 类继承自`Shape` 类```javaclass Rectangle extends Shape {private double length;private double width;public Rectangle(double length, double width) {thislength = length;thiswidth = width;}@Overridedouble calculateArea(){return length width;}}```4、创建`Triangle` 类继承自`Shape` 类```javaclass Triangle extends Shape {private double base;private double height;public Triangle(double base, double height) {thisbase = base;thisheight = height;}@Overridedouble calculateArea(){return 05 base height;}}```5、创建测试类`TestShapes````javapublic class TestShapes {public static void main(String args) {Circle circle = new Circle(50);Rectangle rectangle = new Rectangle(40, 60);Triangle triangle = new Triangle(30, 80);Systemoutprintln("圆形的面积:"+ circlecalculateArea());Systemoutprintln("矩形的面积:"+ rectanglecalculateArea());Systemoutprintln("三角形的面积:"+trianglecalculateArea());}}```五、实验结果运行测试类`TestShapes` 后,输出结果如下:```圆形的面积:78539816矩形的面积:240三角形的面积:120```六、实验中遇到的问题及解决方法1、在编写抽象类和子类的代码时,一开始对于抽象方法的定义和实现理解不够清晰,导致代码出现错误。
Java实验报告(三)
Java实验报告(三)实验(三)类和对象⼀、实验⽬的和要求1.掌握类的构造函数的重载2.深⼊理解类和对象3.学习NetBeans中UML项⽬的创建类并⽣成相应代码的⽅法⼆、实验内容和原理设计⼀个复数类,能够完成复数之间的基本运算,重写⽅法toString(),使其能输出此复数(形式为:实部 + 虚部i)。
要求设计的复数类必须有三个构造函数,分别为⽆参数、1个参数和2个参数的构造函数,完成的基本运算包括两个复数的加、减、乘、除法和共轭复数。
三、实验环境1.硬件环境:2.软件环境:JDK1.5四、算法描述及实验步骤1.算法描述(可以⽤类图、流程图、伪代码或源程序描述)2.实验步骤●创建⼀个UML项⽬,并设计类Complex如下图●创建⼀个Java应⽤项⽬●把UML项⽬中的Complex⾃动⽣成代码到Java应⽤项⽬中●实现Complex类中的⽅法●进⾏编译●进⾏测试,使⽤的测试⽤例:输⼊:预期输出:…代码:Complex类:package studentTaskThree;/*** 复数类* @author Administrator**/public class Complex{/*** 定义类变量,复数的实部realPart和虚部ImaginaryPart */ private double realPart;private double imaginaryPart;/*** ⽆参构造⽅法*/public Complex(){super();* 不含实部复数的构造⽅法* @param realPart*/public Complex(double imaginaryPart){super();this.imaginaryPart = imaginaryPart;}/*** 含有实部参数和虚部参数的构造⽅法* @param realPart* @param imaginaryPart*/public Complex(double realPart, double imaginaryPart) { super();this.realPart = realPart;this.imaginaryPart = imaginaryPart;}/*** 读取实部* @return*/public double getRealPart(){return realPart;}/*** 设置实部* @param realPart*/public void setRealPart(double realPart){this.realPart = realPart;* 读取虚部* @return*/public double getImaginaryPart(){return imaginaryPart;}/*** 设置虚部* @param imaginaryPart*/public void setImaginaryPart(double imaginaryPart){this.imaginaryPart = imaginaryPart;}/*** 复数相加⽅法* @param complex* @return*/public Complex plus(Complex complex){return new Complex(this.realPart + complex.realPart, this.imaginaryPart + complex.imaginaryPart); }/*** 复数相减⽅法* @param complex* @return*/public Complex minus(Complex complex){return new Complex(this.realPart - complex.realPart, this.imaginaryPart - complex.imaginaryPart); }* @param complex* @return*/public Complex times(Complex complex){return new Complex(complex.realPart * this.realPart - complex.imaginaryPart * this.imaginaryPart,complex.realPart * this.imaginaryPart +complex.imaginaryPart * this.realPart);}/*** 复数相除⽅法* @param complex* @return*/public Complex divideBy(Complex complex){double dividedPart = (this.realPart * this.realPart +this.imaginaryPart * this.imaginaryPart);return new Complex((complex.realPart * this.imaginaryPart + complex.imaginaryPart * this.realPart) / dividedPart, (complex.imaginaryPart* this.realPart- complex.realPart * this.imaginaryPart) / dividedPart);}/*** 求共轭复数⽅法* @return*/public Complex conjugate(){return new Complex(this.getRealPart(),-this.getImaginaryPart());}/*** 重写toString⽅法,实现复数的输出格式*/String str = "";// 实部为零,虚部不为零if (this.realPart == 0 && this.imaginaryPart != 0){str += this.getImaginaryPart() + "i";}// 实部不为零,虚部为零else if (this.realPart != 0 && this.imaginaryPart == 0){str += this.getRealPart();}// 实部、虚部都不为零else if (this.realPart != 0 && this.imaginaryPart != 0){str += this.getRealPart() + (this.getImaginaryPart() > 0 ? "+": "") + this.getImaginaryPart() + "i"; }return str;}}测试类:Complexdemopackage studentTaskThree;/*** 测试类* @author Administrator**/public class ComplexDemo{/*** main⽅法,测试程序⼊⼝点* @param args*/public static void main(String[] args)* 创建两个完整复数对象*/Complex com1 = new Complex(1, 2);Complex com2 = new Complex(2, 1);// 创建⽆参复数Complex com3 = new Complex();// 创建只有虚部的复数Complex com4 = new Complex(5);// 输出对象System.out.println("复数1:" + com1);System.out.println("复数2:" + com2);System.out.println("复数3:" + com3);System.out.println("复数4:" + com4);// 输出相加结果System.out.println("复数相加:(" + com1 + ") + (" + com2 + ") = " + (com1.plus(com2)).toString()); // 输出相减结果System.out.println("复数相减:(" + com1 + ") - (" + com2 + ") = "+ (com1.minus(com2)).toString());// 输出相乘结果System.out.println("复数相乘:(" + com1 + ") * (" + com2 + ") = " + com1.times(com2));// 输出相除结果System.out.println("复数相除:(" + com1 + ") / (" + com2 + ") = " + com1.divideBy(com2));// 输出所求的共轭复数System.out.println("共轭复数: " + com1 + " 共轭复数是:" +com1.conjugate());}}实际测试类:import javax.swing.JOptionPane;/*** 实际测试类* @author Administrator**//*** 测试类⼊⼝点* @param args*/public static void main(String[] args){// 创建两个复数对象Complex com1 = new Complex();Complex com2 = new Complex();// 输⼊数据com1.setRealPart(Double.parseDouble(JOptionPane.showInputDialog("请输⼊复数1的实部:")));com1.setImaginaryPart(Double.parseDouble(JOptionPane.showInputDia log("请输⼊复数1的虚部:")));com2.setRealPart(Double.parseDouble(JOptionPane.showInputDialog("请输⼊复数2的实部:")));com2.setImaginaryPart(Double.parseDouble(JOptionPane.showInputDia log("请输⼊复数2的虚部:")));// 输出各个⽅法的测试结果JOptionPane.showMessageDialog(null, "复数应⽤测试如下:\n" +"复数1:" + com1 + "\n" +"复数2:" + com2 + "\n" +"复数相加:" + com1.plus(com2) + "\n" +"复数相加:" + com1.minus(com2) + "\n" +"复数相乘:" + com1.times(com2) + "\n" +"复数相除:" + com1.divideBy(com2) + "\n" +"共轭复数:" + com1 + " 共轭复数是:" +com1.conjugate());}}五、调试过程1.编译过程没有错误。
JAVA第三次实验完整版
实验报告
院(系): 计算机科学学院
专业年级 : 电子信息科学与技术1403班姓名 : 卢丽琼
学号 : 21409030312
2016年 12 月 26 日
实验三JDBC编程
一、目的
通过Java数据库访问程序的编写、调试,使学生掌握JDBC编程的基本方法,熟悉常用的JDBC API,促进学生对概念的理解,培养动手能力。
二、基本要求
学生需要按时达到指定实验室上机。
调试教学中使用的程序示例,并加以修改,增加程序的功能;实现数据库访问的优化。
完成实验后,需要按时提交实验报告。
三、实验内容
1)复习数据库SQL语句的编写。
2)编写(JavaODBC-JDBC驱动)公共模块。
3)建立数据库应用模型,对数据库进行操作。
4)调试程序,实现数据库的访问。
四:实验步骤与结果
五:实验心得
通过本次试验,我了解了JDBC的基本概念并且深入了解了其注册方法,我明白了如何调用数据库,怎样建立数据库,以及数据库的基本架构,更深入的了解了JA V A.。
JAVA 课后实验三
实验三类与对象1、(1)创建一个Rectangle类,添加两个(private)属性width与height(2)创建一个构造方法,选择width与height为形式参数。
(3)在Rectangle类中添加两个方法计算矩形的周长和面积2、创建三角形、梯形和圆形的类封装:分别定义三角形、梯形和圆形类,要求每个类中包含构造方法、求周长及面积的方法。
最后在主方法main中为三角形、梯形和圆形类创建对象并打印输出各种图形的周长及面积。
(一个文件中包含三个class和main)a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean 型的属性,该属性用来判断三个属能否构成一个三角形。
b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
3、编写下面程序写出运行结果,谈谈成员变量的继承与隐藏,方法的覆盖与重载。
上例内B继承了类A,在子类B中定义变量num2与父类A 同名,故在子类中父类成员变量num2被隐藏,故sum3=10+200=210;同时在子类B中父类A方法sum2()被重写(覆盖),使num2为子类定义值200,故sum4=50+200=250.这个例子中,B是A的一个子类。
其中声明了一个和父类A同名的变量num2,并定义了与之相同的方法sum2,这时在子类B中,父类的成员变量num2被隐藏,程序第25行父类的方法sum2被重载。
于是子类对象所使用的变量num2为子类中定义的num2,子类对象调用的方法sum2( )为子类中所实现的方法。
4、理解下面3个类的定义,分析它们之间的关系,写出运行结果。
上例中,SubClass是SuperClass的一个子类。
其中声明了一个和父类SuperClass同名的变量x,并定义了与之相同的方法do something,这时在子类SubClass中,父类的成员变量x被隐藏,父类的方法do something被重写。
JAVA程序设计基础实验三
实验报告三一【实验目的】(1)掌握类和对象的创建方法(2)理解继承的相关概念(3)掌握子类对象的创建过程(4)掌握方法的继承与重写(5)理解多态的概念与上转型对象(6)理解抽象类和接口的概念及特点二【实验内容】【项目一】方法重写定义父类People,分别定义People类的子类ChinaPeople,AmericanPeople和BeijingPeople 并分别重写父类中的各个方法。
最后在主方法中分别创建各子类的对象并调用各自的方法打印输出信息。
该程序的模板代码见/附件/Example.java:请将其补充完整并调试运行。
(1)程序代码class People{protected double weight,height;public void speakHello(){System.out.println("yayawawa");}public void averageHeight(){height=173;System.out.println("average height:"+height);}public void averageWeight(){weight=70;System.out.println("average weight:"+weight);}}class ChinaPeople extends People{//double weight,height;//重写public void speakHello()方法,要求输出类似“你好,吃了吗”这样的 //汉语信息public void speakHello(){System.out.println("你好,你吃了吗?");}//重写public void averageHeight()方法,要求输出类似//“中国人的平均身高:168.78厘米”这样的汉语信息public void averageHeight(){height=168.78;System.out.println("中国人的平均身高:"+height);}//重写public void averageWeight()方法,//要求输出类似“中国人的平均体重:65公斤”这样的汉语信息public void averageWeight(){weight=65;System.out.println("中国人的平均体重:"+weight);}public void chinaGongfu(){//输出中国武术的信息,例如:"坐如钟,站如松,睡如弓"等System.out.println("坐如钟,站如松,睡如弓");}}class AmericanPeople extends People{//重写public void speakHello()方法,要求输出类似//“How do you do”这样的英语信息。
Java实验报告三
Java实验报告三Java实验报告班级计科⼆班学号 20188450 姓名李代传完成时间 2019.9.20评分等级实验三 String类的应⽤1. 实验⽬的1. 掌握类String类的使⽤;2. 学会使⽤JDK帮助⽂档;2. 实验内容1.已知字符串:"this is a test of java".按要求执⾏以下操作:(要求源代码、结果截图。
)3. 统计该字符串中字母s出现的次数。
4. 统计该字符串中⼦串"is"出现的次数。
5. 统计该字符串中单词"is"出现的次数。
6. 实现该字符串的倒序输出。
2.请编写⼀个程序,使⽤下述算法加密或解密⽤户输⼊的英⽂字串。
要求源代码、结果截图。
3.已知字符串"ddejidsEFALDFfnef2357 3ed"。
输出字符串⾥的⼤写字母数,⼩写英⽂字母数,⾮英⽂字母数。
1. 实验过程1. 实验代码1. 算法详解:很简单,就是使⽤字符串的indexOf()⽅法找到被查找的字符串中的第⼀个需要查找的字符串,然后从这个索引的后⼀个位置继续查找。
因为查找都是⽤的⼀种算法,只需要改变⼩部分参数就⾏了,所以我把它单独写成了⼀个⽅法。
StringBuffer中有能倒序输出的⽅法,所以把字符串当做参数new了⼀个StringBuffer就很简单。
1.实验结果2.实验代码算法详解:把输⼊的字符串⽤toCharArray()⽅法拆分成字符数组,然后⼀个字符⼀个字符的进⾏操作。
⽤x来记录是解密或者是加密,这样就能在后⾯决定是+3或者是-3,能通过这⼀个变量来节省很多重复语句。
算法详解:下⾯这个就是加密算法,⽤了String类的substring⽅法,作⽤是得到指定位置的字符串。
因为是向后移动三位,所以就直接把最后三个字符取出来放到最前⾯就好了。
但是原来的字符串没有变,所以要把最后三个字符去掉,⽤了StringBuffer类中的replace⽅法,作⽤是替换掉指定位置的字符串,我把替换为了空字符串,就相当于删除了。
java实验3
集美大学诚毅学院实验报告一、目的(本次实验所涉及并要求掌握的知识点)学习Java的异常处理方法;熟悉字符串常用的处理方法;熟悉常用的容器类。
二、实验容与设计思想(设计思路、主要数据结构、主要代码结构、主要代码段分析、输出结果图)(1)题目:设计一个特殊的整数输入类,当输入的数大于1000时,发生ExceedExcept异常。
ExceedExcept为自定义的一个异常类。
class MyException extends Exception{String message;MyException(int n){message=n+"符合要求";}public String getMessage(){return message;}}class A{public void f(int n) throws MyException{if(n<1000){MyException ex=new MyException(n);throw(ex); //抛出异常,结束方法f的执行}System.out.println(n+"不符合要求");}}public class timu01{public static void main(String args[]){A a=new A();try{a.f(1000);a.f(999);}catch(MyException e){System.out.println(e.getMessage());}}}(2)题目:设计一个字符串处理程序:实现字符串的整体、前缀、后缀比较;子字串定位;数字型字符转化为数字等各种功能。
实验代码:import java.util.Scanner;public class timu02 {public static void main(String[] args) {String s1="Java C# SQL",s2="JCS";Scanner input=new Scanner(System.in);System.out.println("----------字符串处理程序---------");System.out.println("字符串的整体比较如下:");if(pareTo(s2)<0)System.out.println("'"+s1+"' < '"+s2+"'");elseSystem.out.println("'"+s1+"' >= '"+s2+"'");System.out.println("字符串的前缀比较如下:");System.out.print("请输入要比较的前缀:");String s=input.next();if(s1.startsWith(s))System.out.println(s+"是"+s1+"的前缀。
《Java程序设计》实验报告 --实验3
else if(e.getSource()==buttontwo){//按键2操作
tf.setText(tf.getText()+"2");
flag1=Double.parseDouble(tf.getText());
}
else if(e.getSource()==buttonthree){//按键3操作
buttondevision=new JButton("/");
buttonsin=new JButton("sin");
buttontozero=new JButton(">0");
paneleast.setLayout(new GridLayout(3,1));//设置西边的布局为3行1列
//将操作按钮"+""-""*""/""sin"">0"添加到西边的面板中
JButton buttonplus,buttonminus,buttonmultiple,buttondevision,
buttonsin,buttontozero;//新建按钮"+""-""*""/""sin"和归零按钮
JButton buttonone,buttontwo,buttonthree,buttonfour,buttonfive,buttonsix,
panelcenter.add(buttonthree);
panelcenter.add(buttonfour);
panelcenter.add(buttonfive);
Java实验报告(三)
实验三Java继承与接口【实验目的】理解继承原理与机制及类继承的声明方法;掌握成员变量的隐藏及方法的重写;掌握抽象类与抽象方法;掌握super、final关键字;理解多态的内涵及实现代码;掌握4种访问修饰符的区别;掌握接口声明及使用【实验内容】1、编写一个Java应用程序,除了主类(TestOne)外,该程序中还有3个类:People、ChinaPeople和AmericanPeople。
该程序具体要求如下:①People类有public void speakHello()、public void averageHeight() 和public void averageWeight()方法。
②ChinaPeople类是People的子类,新增了public void chinaGongfu()方法。
要求ChinaPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。
③AmericanPeople类是People的子类,新增public void americanBoxing()方法。
要求AmericanPeople重写父类的public void speakHello()、public void averageHeight()和public void averageWeight()方法。
④在TestOne类的主方法中分别创建各子类的对象并调用各自的方法打印输出信息。
要求:第1题调试结果如下图:2、编写一个Java应用程序,除了主类(TestTwo)外,该程序还有Shape接口、三角形类Triangle类、矩形Rectangle类和圆形Circle类。
该程序具体要求如下:①Shape接口(用来表示一般二维图形):具有抽象方法area和perimeter,分别用来计算形状的面积和周长。
Java实验3
Java面向对象程序设计实验报告序号:实验三图13)随机数的产生与使用,请填空lucky1 = generator.nextInt(30) + 50;lucky2 = generator.nextInt(11) + 90;lucky3 = generator.nextFloat() * 30;lucky3 = lucky3 + 11;3.Working with Strings(选做)运行程序,按如下要求修改:1)声明一个String变量middle3,用substring方法取phrase中间的三个字母,加一条输出语句输出middle3.2)将switchedPhrase中的空格替换成*,最终仍保存在switchedPhrase中3)声明两个变量city和state,加语句让用户输入city和state,输出结果。
4.Rolling Dice写一个程序实现打骰子,对两个骰子随机生成1-6之间的数字,分别输出两个骰子单独的结果和总的结果。
你必须要使用到Ramdom类,可以参考例题3.2。
实验结果如同2所示:图2puting Distance文件Distance.java用来计算两点之间的距离,用公式(x1 – x2)2+ (y1 – y2)2来计算。
你需要添加赋值语句计算距离然后输出。
用以下数据测试你的程序:(3, 17)和(8, 10) 距离是8.6023 实验结果截图如图3所示:图36.Formatting Output文件Deli.java用来计算在熟食店买东西的花费1)理解程序2)加一条import语句用来引入DecimalFormat 和NumberFormat 类3)根据注释加一条语句声明NumberFormat的对象money4)根据注释加一条语句声明DecimalFormat的对象fmt5)添加语句输出以下格式(用money输出单价和总价,用fmt输出重量)。
(注意:我们所在的地区是中国,所以以下所有的$会被¥取代。
JAVA实验3
实验三内部类、常用类及异常类的用法1.实验目的(1)掌握Java中内部类的用法、异常类的用法(2)掌握Java中String类常用方法、StringBuilder类的用法;(3)掌握System类、Date类、Calender类、DateFormat类、NumberFormat类、Random类与BigInteger 及BigDecimal类的用法;(4)掌握Java中正则表达式的基本用法;2.实验内容实验题1修改实验二实验题4,声明一个局部变量String text = "";然后通过循环把数组中的成员(有序)添加到text中,修改方法JOptionPane.showMessageDialog();参数以显示text。
package .nwsuaf.jp.p4.data;publicabstractclass Product implements Comparable<Product>{protected String name;protectedfloat price;protectedstaticint count;public Product(String name, float price) {super(); = name;this.price = price;count++;}public StringgetName() {return name;}publicvoid setName(String name) { = name;}publicfloat getPrice() {return price;}publicvoid setPrice(float price) { this.price = price;}publicstaticint getCount() {return count;}publicstaticvoid setCount(int count) { Product.count = count;}publicint compareTo(Product p){returnnewFloat(p.getPrice()).compareTo(price);}}package .nwsuaf.jp.p4.data;import .nwsuaf.jp.p4.data.Product; publicclass Mobile extends Product{public Mobile(String name,float price){ super(name,price);}@Overridepublic StringtoString() {return name+price+"RMB";}}package .nwsuaf.jp.p4.data; import .nwsuaf.jp.p4.data.Product;publicclass Mp3Player extends Product{ publicint memory;public Mp3Player(Stringname,int memory,float price){ super(name,price);this.memory=memory;} publicint getMemory() { return memory;} publicvoid setMemory(int memory) { this.memory = memory;} @Overridepublic String toString() { return name+"("+memory+"MB),"+price+"RMB";} }package .nwsuaf.jp.p4;import java.util.Arrays;import javax.swing.JOptionPane;import .nwsuaf.jp.p4.data.Mp3Player; import .nwsuaf.jp.p4.data.Mobile; import .nwsuaf.jp.p4.data.Product; publicclass Store {publicstaticvoid main(String[] args) { Mobile m1=new Mobile("E365 on China Mobile", 1780.0f);Mobile m2=new Mobile("M330 on China Mobile", 1450.0f);Mp3Player p1=new Mp3Player("MeizoX3", 256, 399.0f);Mp3Player p2=new Mp3Player("MeizoE5", 512, 580.0f);Mp3Player p3=new Mp3Player("Xlive XM Mp3Player", 256, 930.0f);Product[] ps={m1,m2,p1,p2,p3};Arrays.sort(ps);String text="";for(int a=0;a<ps.length;a++){text+=ps[a].toString()+"\n";}JOptionPane.showMessageDialog(null,"The products are:"+"\n\n"+text+"\n\n"+"There are"+Product.getCount()+"products.");}}实验题2 用StringBuiler text = "";替换String text = "";然后通过循环使用StringBuiler类的append方法向text中把数组中的成员(按价格有序)添加到text中,修改方法JOptionPane.showMessageDialog()的参数以显示text。
Java第三次实验
实验4:修饰符与继承性一、实验目的了解如何使用类及其成员的修饰符,理解类的继承性,掌握方法的继承、重载和覆盖。
二、实验要求1.编写如何使用类及其成员的修饰符的程序。
2.编写如何通过传递参数来调用方法的程序。
3.编写体现类的继承性(成员变量、成员方法的继承)的程序。
三、实验内容(一)使用修饰符有时需要公开一些变量和方法,有时需要禁止其他对象使用变量和方法,这时可以使用修饰符来实现这个目的。
常用的修饰符有:public,private,protected,package,static,final,abstract等。
1.程序功能:通过两个类StaticDemo、KY4_1 来说明类变量与对象变量,以及类方法与对象方法的区别。
2.编写源程序KY4_1.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 KY4_1 {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.编译并运行程序KY4_1.java,看看该程序是否有错?如果有错请在实验报告中指出出错的地方,出错的原因,并给出修改意见以及程序正确运行的结果。
java实验三
实验三实验项目一实验目的:掌握Java中包的使用。
实验要求:建立CircleUtil.java和ImportDemo.java两个源文件,编译源文件并运行主类。
具体要求如下:(1)在命令窗口编译以上源文件,生成的字节码文件均存放在当前目录下。
(2)在命令窗口编译以上源文件,生成的字节码文件均存放在当前目录下的classes文件中(需要事先在当前目录下手动建p立classes文件夹)。
(3)在命令窗口编译源文件CircleUtil.java,将生成的字节码文件存放在当前目录下的classes文件中;编译源文件ImportDemo.java,将生成的字节码文件存放在当前目录下。
补充练习:如果将CircleUtil 类的public 去掉,编译时会出现什么错误?实验项目二实验目的:掌握对象的组合及引用型参数。
实验要求:编写一个Java 应用程序,用类描述计算机中CPU 的速度和硬盘的容量。
具体要求如下:要求Java 应用程序有4个类,名字分别是PC ,CPU 和HardDisk 和Test ,其中Test 是主类。
PC 类与CPU 和HardDisk 类关联的UML 图如下图所示。
其中,CPU 类要求getSpeed()返回speed 的值;要求setSpeed(int m)方法将参数m 的值赋值给speed 。
HardDisk 类要求getAmount()返回amount 的值,要求setAmount(int m)方法将参数m 的值赋值给amount 。
PC 类要求setCUP(CPU c) 将参数c 的值赋值给cpu ,要求setHardDisk (HardDisk h)方法将参数h 的值赋值给HD ,要求show()方法能显示cpu 的速度和硬盘的容量。
主类Test 的要求:① main 方法中创建一个CPU 对象cpu ,cpu 将自己的speed 设置为2200,② main 方法中创建一个HardDisk 对象disk ,disk 将自己的amount 设置为200, ③ main 方法中创建一个PC 对象pc ,④ pc 调用setCUP(CPU c)方法,调用时实参是cpu ,⑤ pc 调用setHardDisk (HardDisk h)方法,调用时实参是disk , ⑥ c 调用show()方法。
Java实验三
}
注意:如果要声明的异常是 Error 或者 RuntimeException 的子类,那么就不必显式地用 throws 声明它们,因为这些异常是每个方法都可能会产生的,所以不需要显式地声明它们。
异常处理的搜索 Java 的异常处理搜索机制大致是这样进行的,在程序运行过程中,一旦有一个异常发生,那 么该异常对象随即被产生并被抛出,接下来,程序就开始为该异常搜索相应的处理代码。首 先是在当前方法的 catch 块中依次搜索,若找到相应的 catch 块,则进行处理。若未找到, 则异常将被传递给该方法的上一级调用者,然后进行同样的搜索,这个过程沿着方法调用链 一直持续下去,直到该异常在某个方法中被捕获或最终由 Java 虚拟机捕获并处理。
实验步骤: (1)首先在 d:\programming 目录下创建一个文件夹,命名为 packone,然后在该文件夹下创建 一个名叫 Clock.java 的程序,打开文本编辑器按程序清单输入该程序。
//Clock.Java package packone;
public class Clock { public int hour;
Java.awt.Font; (2)创建好与包相对应的文件结构,比如说创建的包是(com.Java.myclass,那么必须在类环境 中建立一个同样的目录结构,com\Java\myclass)。 (3)编写类的时候,将该类加入到指定的包中,使用 package 表明,如下所示:
package com.Java.myclass;
catch(ArithmeticException ex){ ) catch(Exception ex){ } 正确写法
Java实验指导书(实验三)
实验三类与对象(一)一、实验目的1、掌握类与对象的基本概念;2、掌握类的声明、创建与使用方法;3、掌握类的构造方法的定义与使用方法4、掌握类的成员变量、成员方法的定义与使用方法;5、理解类变量、类方法与实例变量、实例方法的区别;6、理解Java中方法重载的实现方式。
二、实验要求1、根据实验步骤中提出的要求,使用记事本编写相应的Java程序;2、使用JDK中提供的javac以及java命令编译、运行自己所编写的Java程序;3、根据编译与运行过程中所获得的错误信息修改程序直至获得正确的结果;4、记录实验中遇到的各类问题并以及解决办法。
三、实验步骤1、类的声明、创建与使用(1)采用记事本编写下面所给的Java程序并保存为Circle.java;final static double PI;class Circle{PI=3.14;double r;double circumference(){return 2*PI*r;}double area(){return PI*r*r;}}(2)修改其中的错误,使其可以正确编译;(3)采用记事本编写下面所给的Java程序并保存为CircleTest.java;class CircleTest{public static void main(String args[]){Circle c=new Circle();System.out.printf("Area of the Circle is : %8.4f",c.area());}}(4)运行CircleTest查看结果。
(5)Java中变量都必须先赋值后使用,否则会出现编译错误(该变量未初始化),那么成员变量是否必须设定初值?2、构造方法(1)Circle类没有声明构造方法,那么语句Circle c=new Circle();中调用的构造方法Circle()会不会出错?为什么?(2)在Circle类中添加以下构造方法:Circle(double radius){r= radius;}(3)重新编译Circle.java之后(暂时不要重新编译CircleTest.Java),运行CircleTest将会出现什么错误?为什么?如何修改?3、类变量与类方法(1)在CircleTest类的main方法中添加以下代码:Circle c1=null;System.out.printf("PI is : %8.4f",c1.PI); //或Circle.PI(2)修改后编译运行是否会出错?为什么?(3)在Circle类中添加以下代码:static void setPI(double pi){PI=pi;this.r=3;}(4)重新编译Circle类会出现什么错误?为什么?如何修改?(5)修改CircleTest类的main方法为:Circle c1=null;System.out.printf("PI is : %8.4f\n",c1.PI);Circle c=new Circle(3);System.out.printf("Area of the Circle is : %8.4f\n",c.area());c1.setPI(3.1415926);System.out.printf("PI is : %8.4f\n",c1.PI);System.out.printf("Area of the Circle is : %8.4f\n",c.area());(6)上述代码将输出什么结果?通过阐述其执行过程说明出现该输出结果的原因。
Java实验三
实验三类与对象、继承【目的】①使用类来封装对象的属性和功能;②掌握类变量与实例变量,以及类方法与实例方法的区别;③掌握使用package和import语句。
④巩固以下概念:子类的继承性子类对象的创建过程成员变量的继承与隐藏方法的继承与重写【内容】1.三角形、梯形和圆形的类封装✧实验要求:编写一个Java应用程序,该程序中有3个类:Trangle、Leder和Circle,分别用来刻画“三角形”、“梯形”和“圆形”。
具体要求如下:a) Trangle类具有类型为double的三个边,以及周长、面积属性,Trangle类具有返回周长、面积以及修改三个边的功能。
另外,Trangle类还具有一个boolean型的属性,该属性用来判断三个属能否构成一个三角形。
b) Lader类具有类型double的上底、下底、高、面积属性,具有返回面积的功能。
c) Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能。
✧程序:AreaAndLength.javaclass Trangle{double sideA,sideB,sideC,area,length;boolean boo;public Trangle(double a,double b,double c){sideA=a; //参数a,b,c分别赋值给sideA,sideB,sideCsideB=b;sideC=c;if((sideA+sideB)>sideC||(sideA+sideC)>sideB||(sideB+sideC)>sideA)//a,b,c构成三角形的条件表达式{boo=true; //给boo赋值。
}else{boo=false; //给boo赋值。
}}double getLength(){double length=sideA+sideB+sideC; //方法体,要求计算出length的值并返回return length;}public double getArea(){if(boo){double p=(sideA+sideB+sideC)/2.0;area=Math.sqrt(p*(p-sideA)*(p-sideB)*(p-sideC)) ;return area;}else{System.out.println("不是一个三角形,不能计算面积");return 0;}}public void setABC(double a,double b,double c){sideA=a; //参数a,b,c分别赋值给sideA,sideB,sideCsideB=b;sideC=c;if((sideA+sideB)>sideC||(sideA+sideC)>sideB||(sideB+sideC)>sideA) //a,b,c构成三角形的条件表达式{boo=true; //给boo赋值。
Java实验3
实验三方法签名、重载、递归【实验目的和要求】实验目的:熟悉JAVA中方法的定义和调用。
实验要求:掌握方法的声明和使用;掌握方法的返回值、理解处理返回多个结果的办法;掌握方法参数传递,理解数据类型参数传递和引用类型参数传递的异同;掌握方法重;掌握递归方法的设计。
【实验原理】方法的声明和使用、方法的返回值、方法参数传递、类的继承方法。
【实验步骤】1.方法的声明和使用、参数,返回值练习任务。
设计代码,通过方法实现上次实验同样功能任务。
(增加数组查找等任务,练习数组作为参数进行传递)理解main()方法的参数,设置参数,打印main()参数的字符串数组内容。
2.方法重载练习任务设计代码,编写多个重载的方法,实现数学基本运算功能,要求参数类型和个数可变。
3.方法递归练习任务设计编写一个递归方法(如fabonacci数列等),跟踪调试,理解栈的使用。
注:fabonacci数列递归只做基本练习要求,同时用“迭代”实现,并比较两者的运行速度,在实际编程任务中代码编写中还是应“迭代”实现。
4.对象数组比较和排序。
(较高要求)注:类还没有正式学,可只要求用方法实现数组排序。
实验一:import java.util.Scanner;public class lz {public static boolean mima(String name,String password){boolean flag=false;if(name.equals("xxx")&&password.equals("123")) {flag=true;}else {flag=false;}return flag;}public static void main(String[] args){int i=3;while(i>0) {System.out.println("输入帐户名和密码");Scanner sc=new Scanner(System.in);String name=sc.next();String password=sc.next();if(mima(name,password)) {System.out.println("进入系统");break;}else {System.out.println("错误");i--;System.out.println("还有"+i+"机会");if(i==0) {System.exit(0);}}}}}实验截图:实验二:import java.util.Scanner;public class lz {public static void main(String [] args){System.out.println("请分别输入三个数,每个数以回车结束:");Scanner sc=new Scanner(System.in);float a=sc.nextFloat();float b=sc.nextFloat();float c=sc.nextFloat();float sum1=add(a,b);float sum2=add(a,b,c);System.out.println("sum1="+sum1);System.out.println("sum2="+sum2);}public static float add(float a,float b){return a+b;}public static float add(float a,float b,float c) {return a+b+c;}}实验截图:实验三:public class lz {public static void main(String[] args) {int sum=getSum(4);System.out.println("sun="+sum);}public static int getSum(int n){if(n==1){return 1;}int temp=getSum(n-1);return temp+n;}}实验截图:实验四:import java.util.Scanner;public class lz {public static void main(String[] args) {int[]arr= {7,9,66,4,18};System.out.print("冒泡排序前:");printArray(arr);bubbleSort(arr);System.out.print("冒泡排序后:");printArray(arr);}public static void printArray(int[] arr) {for (int i=0;i<arr.length;i++) {System.out.print(arr[i]+" ");}System.out.print("\n");}public static void bubbleSort(int[] arr) {for (int i=0;i<arr.length-1;i++) {for (int j=0;j<arr.length-i -1;j++) {if(arr[j]>arr[j+1]) {int temp=arr[j];arr[j]=arr[j+1];arr[j+1]=temp;}}System.out.print("第"+(i+1)+"轮到后排:");printArray(arr);}}}实验截图:。
JAVA 实验三附答案
实验三 异常处理和基础类库 实验目的 1 学会利用 Try-catch-finally 语句来捕获和处理异常; 2 掌握自定义异常类的方法。 3 掌握 Java 基础类;熟悉 System 类; 4 掌握字符串的主要功能和使用方法 实验内容 1 编写一个应用程序将二进制数转换成十进制数,并捕获所有可能的异常 2 编写一个应用程序,接受命令行中给出的一个字母串,先将该串原样输出,然后判断该串 的第一个字母是否为大写,若是大写则统计该串中大写字母的个数,并将所有大写字母输出; 否则输出信息串”第一个字母不是大写字母!”。 提示: (1)命令行参数:java 应用程序能够从命令行接受任何数量的参数,在应用程序被加载的时 候允许用户指定配置信息。该参数是一个字符串数组,用来接收从命令行输入的参数。参数 之间使用空格隔开。Java 解释器会自动处理,把用空格隔开的各个参数通过 args 数组传递 给 main 方法。参数的下标从 0 开始,args[0]表示第一个参数,例:java Test args[0] args[1] args[2]
(2)用到一个方法 charAt,方法定义为 public char charAt(int index), 返回指定索引处的 char 值.无需自己编写,直接调用。例如 String s = “oh come on”;
charAt(0ห้องสมุดไป่ตู้的结果就是'o'了,参数是一个下标,从 0 开始到字符串长度-1
答案:
程序参考如下 1 见书 P129 2 public class Class1 {
public static void main(String {
int count=0; if(args.length!=0)
Java综合实验报告_3
面向对象程序设计综合性实验(一)系统分析:本系统为学生考试成绩分析系统,系统要求可以让用户输入若干学生的基本信息、课程信息,还有对应的课程成绩。
而主要功能则是可以实现按条件进行相应学生的成绩查询和按条件进行成绩的分析,并且能够通过绘制柱状图与圆饼图来显示相应结果。
因此,我设计了3个保存数据的类,分别是年级班级类、学生类以及课程类,其中学生类继承了课程类,而年级班级类则继承学生类。
每当新建一条信息(一个学生的信息),则新建一个年级班级类,在内部会自动新建一个学生类以及课程类,用于记录一个学生的信息。
本系统采用了窗口GUI来实现,因此大量采用了按钮、文本框、单选按钮、滚动窗口等等,所以必不可少的当然是不少的监听器与对应的实现方法。
(二)系统设计:1.基本数据:Class—Grade : String—major : String—classname : String—Student : Student+getGrade() : String+getStudent() : Student+getClassname() : String+getMajor() : String+setGrade(Grade : String) : void+setClassname(classname : String) : void +setMajor(major : String) : voidStudent—StudentID : String—StudentName : String—Course : Course—couseMark : double+getCourse() : Course+getCouseMark () : double+getStudentID () : String+getStudentName () : String+setCouseMark (couseMark : double) : void+setStudentID (StudentID : String) : void+setStudentName (StudentName : String) : voidCourse—coureNumber : String—courseName : String—coureScore : double—courseHour : double+getCoureNumber () : String+getCoureScore () : double+getCourseHour () : double+getCourseName () : String+setCoureNumber (coureNumber : String) : void +setCoureScore (coureScore: double) : void+setCourseHour (courseHour: double) : void+setCourseName(courseName : String) : voidjava.io.Serializable2.主要方法实现及其他类(总共有20个,简单罗列5个):(三)系统实现:1.显示全部信息:利用窗口进行显示,而该窗口由菜单栏、滚动窗口、单选按钮和复选按钮组成。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
《Java程序设计》实验报告
目录:
1题目
2目的和要求
3功能说明
4设计流程图
5源程序
6数据结果
7实验心得与体会
1、题目
用户自行定义一个异常,编程创建并抛出某个异常类的实例,运行该程序并观察执行结果。
例如:用户密码的合法化验证,要求密码由4-6个数字组成,若长度不落在这个范围或不是由数字组成,抛出自己的异常。
2、目的和要求
熟悉ava的异常机制处理原理,掌握用户自定义异常类,掌握如何抛出异常、捕获并处理异常。
3、功能说明
用户密码的合法化验证,密码由4-6位数字组成,若不在范围内,则抛出“密码超出范围”,若不是数字,则抛出“密码格式错误”,输入密码正确则输出“密码是”。
—
4、设计流程图
5、源代码
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
class passwordException extends Exception
{
public passwordException()
{
super();
}
public passwordException(String s)
{
super(s);JOptionPane.showMessageDialog(null,s);
}
}
public class WUXING
{
public static String passwordcheck()throws passwordException
{
String str=JOptionPane.showInputDialog(null,"输入密码:");
if(str.length()<4||str.length()>6)
{
throw new passwordException("密码超出范围");
}
else if (!str.matches("\\d+"))
{
throw new passwordException("密码格式错误!!");
}
return str;
}
public static void main(String args[]) {
try{
String password = passwordcheck();
JOptionPane.showMessageDialog(null,"密码是:" + password);
}catch(passwordException e){
e.printStackTrace();
—}
}
}
6、数据结果
—。