1、java 实验十实验10:面向对象编程基础(一)简单的类和对象实验目的:1. 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;2. 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;实验数据记录及分析(或程序及运行结果)1. 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:(1) 使用构造函数完成各属性的初始赋值(2) 使用getter和setter的形式完成属性的访问及修改(3) 提供计
2、算面积的getArea()方法class Rectangle private double height; private double width; private String color; public double getHeight() return height; public void setHeight(double height) this.height = height; public double getWidth() return width; public void setWidth(double width) this.width = width; public S
3、tring getColor() return color; public void setColor(String color) this.color = color; public Rectangle(double width,double height,String color) this.setColor(color); this.setHeight(height); this.setWidth(width); public void getArea() double area=0; area=this.height*this.width; System.out.println(矩形的
4、面积为:+area); public String toString() String recStr=矩形的宽度:+this.getWidth()+高度:+this.getHeight() +颜色:+this.getColor(); return recStr; public class JavaApplication public static void main(String args) Rectangle rec=new Rectangle(5, 8, 蓝色); rec.getArea(); System.out.println(rec.toString(); 2. 一副牌Deck有52
5、张扑克Card组成(不含王牌),每张牌有自己的牌型suit(用char类型)和点数rank(用String类型),补充完整下面的类的定义。public class Card public Card() this.suit = suit; this.rank = rank; public String toString() return suit+rank; public static void main(String args) Card c=new Card(红,10); System.out.println(c); public class Card private char suit;
6、private String rank; public Card(char suit,String rank ) this.suit = suit; this.rank = rank; public String toString() return suit+rank; public static void main(String args) Card c=new Card(红,10); System.out.println(c); 3. 银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期(Date),账户密码(六位的数字,可以用0开头),当前
7、的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。import java.util.Date; import java.util.Scanner;public class Bank private String id; private String name; private Date createTime; private String mima; private int b
8、alance; public amount(String id,String name, int balance) super(); this.id=id; this.name=name; this.balance=balance; this.createTime=new Date(); this.mima=123456; public void deposit(int amount) this.balance+=amount; public void withdraw(int amount) this.balance-=amount; public Date getCreateTime()
9、return createTime; public void setCreateTime( Date createTime) this.createTime=createTime; public void changemima() Scanner sc=new Scanner(System.in); System.out.println(请输入新的密码:); String mima=sc.nextString(); this.mima=new mima; public static void main(String args) Bank a=new Bank(1234567890,luxi,1
10、000); a.deposit(100); a.withdraw(150); a.changemima(); a.createTime(); System.out.println(账户账号:+a.getId(); System.out.printf(账户姓名: +a.getName(); System.out.println(账户日期: +a.getCreateTime(); System.out.println(账户余额: +a.getAmount(); 4. 一个Fan有自己的品牌和型号,其调速旋钮speed可以调整Fan的速度(档级在0、1、2、3范围内),通电开关可以改变电扇状态(通电
11、表示工作就绪或者工作,断电表示停止工作)请仔细分析并提供Fan类的定义。并编写程序对其进行测试。具体要求如下:(1) 表示该类对象的状态可以用品牌(brand,可以用字符串型表示,因为品牌通常都是多个字符组成的)、工作状态(status,用来反映一个电风扇是否处于通电就绪ready、正在转动working或者静止stop)、当前的速度(speed,可以用数值型表示);(2) 用构造函数可以创建一个电风扇对象,指定其品牌就可以了,一个电风扇的初始状态可以是静止,而且初始速度为,分析为什么不适宜直接通过构造函数的形式参数来指定初始状态和速度;(3) 给该类提供如下的方法,重点考虑每个动作导致的状态
12、变化,形成代码逻辑; 提供一个方法来表示电风扇的开与关,模拟一个开关动作 通过加速和减速两个方法来调整速度,当速度超出极限(0或),向控制台输出一条告警信息作为提示,并且不执行该调速动作。 提供一个方法能够返回电风扇当前的状态和速度(4) 添加一个main方法,按顺序完成以下工作,考虑状态与速度变化和开关动作之间的关系: 创建一个电风扇对象,用表示; 加速一次电风扇; 向控制台输出f的状态和速度; 启动电风扇(调用对象的开关方法); 向控制台输出f的状态和速度; 连续加速次(考虑发生什么情况); 向控制台输出f的状态和速度; 连续减速次(考虑发生什么情况); 向控制台输出f的状态和速度; 关掉
13、电风扇(调用对象的开关方法); 连续加速2次 向控制台输出f的状态和速度;import java.util.Scanner;public class Fan private String brand; private String type; private int level; private String status; public Fan(int level,String status) this.brand=apple; this.type=123; this.level=level; this.status=status; public void start() this.leve
14、l=1; this.status=on; System.out.printf(风扇已启动转速是%dn,this.level); public void stop(int level,String status) this.level=level; this.status= status; System.out.printf(风扇已关闭进入待机状态n); public void setspeed(int level) this.level=level; System.out.printf(你已经设置的转速等级是%dn,this.level); public void speed() System.out.printf(请设置你要的转速*1,2,3*n); Scanner conn=new Scanner(System.in); int le=conn.nextInt(); switch(le) case 1:this.setspeed(1);break; case 2:this.setspeed(2);break; case 3:this.setspeed(3);break; case 0:this.stop(0,o
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1