计科三班19号廖彬彬多做的实验报告.doc_第1页
计科三班19号廖彬彬多做的实验报告.doc_第2页
计科三班19号廖彬彬多做的实验报告.doc_第3页
计科三班19号廖彬彬多做的实验报告.doc_第4页
计科三班19号廖彬彬多做的实验报告.doc_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

多做的一次实验报告希望学长加分。实验10:面向对象编程基础(一)简单的类和对象实验目的:1. 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;2. 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;实验数据记录及分析(或程序及运行结果)1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:(1) 使用构造函数完成各属性的初始赋值(2) 使用getter和setter的形式完成属性的访问及修改(3) 提供计算面积的getArea()方法public class recpublic double width;public double height;public String color;public double setwidth(double w)width=w;public double setheight(double h)height=h;public double getwidth()return width;public double getheight()return height;public double getArea()return height*width;public rec();public rec(double wid,double hei)width=wid;height=hei;2. 一副牌Deck有52张扑克Card组成(不含王牌),每张牌有自己的牌型suit(用char类型)和点数rank(用String类型),补充完整下面的类的定义。已补充:public class Card public char suit; public String rank; public Card(char h,String ranks) this.suit=h; this.rank=ranks; public String toString() return suit+rank; public void display() System.out.println(this.toString(); public static void main(String args) Card d=new Card(H,2); d.display(); -public class Deckstatic final char suits =H,S,D,C;static final String ranks =A,2,3,4,5,6,7,8,9,10,J,Q,K;static Card cards=new Card52;/* * 初始化扑克牌数组 */public static void init()for(int i=0;isuits.length;i+)for(int j=0;jthis.money) System.out.println(余额小于+q+元!); return; else this.money=this.money-q; System.out.println(已取款+q+元); System.out.println(当前余额+this.money+元); public void changepsd()throws IOException/改密码BufferedReader buf; String str; buf=new BufferedReader(new InputStreamReader(System.in); System.out.print(请输入更改后的密码;); str=buf.readLine(); /将输入的文字指定给字符串变量str存放 this.psd=Long.parseLong(str); System.out.println(新密码已经改为:+str); /输出字符串public Account();public Account(String u,String n,String D,long p,double m)this.user=u;=n;this.Date=D;this.psd=p;this.money=m;public static void main(String args) Account A=new Account(1234567890a,Steve,11/25/13,123456,10000); A.display(); try A.changepsd(); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace(); A.qu(12000.0); A.qu(200.0); A.cun(1000.0);程序运行结果:4. 一个Fan有自己的品牌和型号,其调速旋钮speed可以调整Fan的速度(档级在0、1、2、3范围内),通电开关可以改变电扇状态(通电表示工作就绪或者工作,断电表示停止工作)请仔细分析并提供Fan类的定义。并编写程序对其进行测试。具体要求如下:(1) 表示该类对象的状态可以用品牌(brand,可以用字符串型表示,因为品牌通常都是多个字符组成的)、工作状态(status,用来反映一个电风扇是否处于通电就绪ready、正在转动working或者静止stop)、当前的速度(speed,可以用数值型表示);(2) 用构造函数可以创建一个电风扇对象,指定其品牌就可以了,一个电风扇的初始状态可以是静止,而且初始速度为,分析为什么不适宜直接通过构造函数的形式参数来指定初始状态和速度;(3) 给该类提供如下的方法,重点考虑每个动作导致的状态变化,形成代码逻辑;l 提供一个方法来表示电风扇的开与关,模拟一个开关动作l 通过加速和减速两个方法来调整速度,当速度超出极限(0或),向控制台输出一条告警信息作为提示,并且不执行该调速动作。l 提供一个方法能够返回电风扇当前的状态和速度(4) 添加一个main方法,按顺序完成以下工作,考虑状态与速度变化和开关动作之间的关系:l 创建一个电风扇对象,用表示;l 加速一次电风扇;l 向控制台输出f的状态和速度;l 启动电风扇(调用对象的开关方法);l 向控制台输出f的状态和速度;l 连续加速次(考虑发生什么情况);l 向控制台输出f的状态和速度;l 连续减速次(考虑发生什么情况);l 向控制台输出f的状态和速度;l 关掉电风扇(调用对象的开关方法);l 连续加速2次l 向控制台输出f的状态和速度;代码:public class fanpublic boolean Open;public String brand;public int speed;int state;public fan();public fan(String b)this.brand=b;this.speed=0;this.state=0;public void on()/启动this.Open=true;this.state=1;System.out.println(已开启);public void off()/关闭this.speed=0;this.Open=false;this.state=2;System.out.println(已关闭);public void speedup()this.state=1;if(this.speed2)System.out.println(超速!);return;this.speed+;public void speeddown()if(this.speed1)System.out.println(已经为最低!);return;this.speed-;public void display()System.out.println(当前速度为:+this.speed);switch(this.state)case 0:System.out.println(当前状态为:ready);break;case 1:System.out.println(当前状态为:working);break;case 2:System.out.println(当前状态为:stop);break;default:System.out.println(无法获知状态.);public static void main(String args)fan F=new fan(f);F.speedup();F.display();F.on();F.display();for(int s=0;s4;s+)F.speedup();F.display();for(int d=0;d4;d+)F.speeddown();F.display();F.off();F.speedup();F.speedup();F.display();运行结果:5. 解释下面的程序运行结果输出为什么是null public class My String s; public void My() s = Constructor; public void go() System.out.println(s); public static void main(String args) My m = new My(); m.go(); 没有调用My函数,应该去掉void ,即将My方法改为构造方法就可以了。6. 给出下面的类,找出后面的5个声明中,哪些是重载后的构造函数public class ConstOver public ConstOver (int x, int y, int z) A. ConstOver ( ) B. Protected int ConstOver ( ) C. Private ConstOver (int z, int y, byte x) D. Public Object ConstOver (int x, int y, int z) E. Public void ConstOver (byte x, byte y, byte z) 答案:E;7. 给出下面的类,找出后面的5个声明中,哪些是重载后的setVar函数public class MethodOver public void setVar (int a, int b, float c) A. Private void setVar (int a, float c, int b) B. Protected void setVar (int a, int b, float c) C. Public int setVar (int a, float c, int b) return a;D. Public int setVar (int a, int b, float c) return a;E. Protected float setVar (int a, int b, float c) return c;答案:C 评语:日期: 年 月 日实验11:面向对象编程基础(二)方法中的参数传递实验目的:1. 理解方法中的形参和实参传递在传递基本类型和引用类型时的差异实验要求和过程1. 程序运行后的输出是什么? class TestReferencepublic static void main(String args)int x=2;TestReference tr = new TestReference();System.out.print(x);tr.change(x);System.out.print(x);public void change(int num)num = num + 1;输出222. 写出程序运行结果public class Foo public static void main (String args) StringBuffer a = new StringBuffer (“A”);StringBuffer b = new StringBuffer (“B”);operate(a,b);/调用了Foo类的一个类方法System.out.printIn(a + “,” +b);static void operate (StringBuffer x, StringBuffer y) x.append(y);y = x;输出AB,B3. 输入下面的类,结合实验十(2)中的Card类,完成下面的要求public class JLab1201 static final char suits =H,S,D,C;static final String ranks =A,2,3,4,5,6,7,8,9,10,J,Q,K;static Card cards=new Card52;/* * 初始化扑克牌数组 */public static void init()for(int i=0;isuits.length;i+)for(int j=0;j是否为运算符-输入操作数1还是操作数2;3. 运算 由于只进行简单的运算,所以讲输入都转化为double,运算赋给result然后转化为字符串输出;程序代码:import javax.swing.*;import javax.swing.text.JTextComponent;import java.lang.String;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.awt.*;public class GUI_4 extends JFrame implements ActionListener JTextField tx=new JTextField(25); Container con=this.getContentPane(); JPanel p1=new JPanel(); JPanel p2=new JPanel(); JButton j1=new JButton(7); JButton j2=new JButton(8); JButton j3=new JButton(9); JButton j4=new JButton(+); JButton j5=new JButton(4); JButton j6=new JButton(5); JButton j7=new JButton(6); JButton j8=new JButton(-); JButton j9=new JButton(1); JButton j10=new JButton(2); JButton j11=new JButton(3); JButton j12=new JButton(*); JButton j13=new JButton(0); JButton j14=new JButton(.); JButton j15=new JButton(=); JButton j16=new JButton(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论