【实验十】
1.封装Student类(含名字和班级两个属性),利用setName()方法设置name属性(设成自己的名字),利用setBj()方法设置bj属性(设成所在班级),然后创建Student对象,并输出自己的名字和班级,运行这个测试程序查看输出结果。
import java.util.Scanner;
public class Ten1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
student n1 = new student();
System.out.println("姓名");
n1.name = in.next();
System.out.println("班级");
n1.bj = in.next();
System.out.println("姓名:"+n1.setname()+";班级:"+n1.setbj());
}
}
class student{
String name;
String bj;
public String setname() {
return name;
}
public String setbj() {
return bj;
}
}
2.封装一个汽车类,包含车牌号和车的价格以及修改价格的方法。编写一个测试类,对汽车对象进行操作,根据折扣数修改汽车的价格,最后输出修改过后的汽车信息。
public class Ten2 {
public static void main(String[] args) {
car n1 = new car();
n1.showzhe();
String info = n1.showpai();
System.out.println(info);
System.out.println("车的价格是"+(int)(n1.getjia()*0.9));
}
}
class car{
String pai = "鲁Q12345";
int jia = 123456;
public int getjia() {
return jia;
}
public int getzhe() {
return 9;
}
public void showzhe() {
System.out.println("车的折扣是"+getzhe()+"折");
}
public String getpai() {
return pai;
}
public String showpai() {
return "这辆车的车牌号是"+getpai();
}
}
3. 模拟银行账户业务
编写Account类,添加带参方法实现存款和取款业务,开户时帐户初始金额为0元,取款时如果余额不足给出提示。
import java.util.Scanner;
public class Ten3 {
public static void main(String[] args) {
Scanner in =new Scanner(System.in);
account n1 = new account();
for(int a=1;a<100;a++) {
System.out.println("存钱请选1,取钱请选2");
int c = in.nextInt();
if(c==1) {
System.out.println("请输入存钱数");
double x = in.nextDouble();
n1.cun(x);
}else if(c == 2) {
System.out.println("请输入取钱数");
double x = in.nextDouble();
n1.qu(x);
}else if(c!=1&&c!=2)
System.out.println("输入错误");
}
}
}
class account {
double money = 0;
public double getmoney() {
return money;
}
public void cun(double a) {
money+=a;
System.out.println("存款成功,当前余额为:"+getmoney());
}
public void qu(double b) {
if(b<=money) {
money-=b;
System.out.println("取款成功,当前余额:"+getmoney());
}else
System.out.println("余额不足,当前余额:"+getmoney());
}
}
4.定义一个手机(Phone)类,在类中定义品牌(brand)和价格(price)属性,定义发短信和打电话的sendMessage()和call()方法。(使用构造方法)。
import java.util.Scanner;
public class Ten4 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
phone n1 = new phone();
System.out.println(n1.showbrand()+","+n1.showprince());
System.out.println("请输入短信内容");
String c = in.next();
n1.sendmessage(c);
System.out.println("请输入拨打号码");
int x= in.nextInt();
n1.call(x);
}
}
class phone{
String brand;
double price;
public String getbrand() {
brand = "华为";
return brand;
}
public String showbrand() {
return "手机品牌是"+getbrand();
}
public double getprice() {
price = 3000;
return price;
}
public String showprince() {
return "手机价格是"+getprice();
}
public void sendmessage(String a) {
System.out.println("使用"+getbrand()+"手机发送短信:"+a);
}
public void call (int a) {
System.out.println("使用"+getbrand()+"手机拨打电话"+a);
}
}
5、宠物领养程序
(1)封装狗 Dog类,可参考下面的类图进行设计。
public class Ten5one {
public static void main(String[] args) {
dog d = new dog("哈哈哈","柯基");
d.cry();
}
}
class dog{
String name;
int energy=60;//能量值
int love=0;//亲密度
String strain;//品种
public dog(String name,String strain) {
this.name = name;
this.strain = strain;
}
public void setenergy(int energy) {
this.energy = energy;
}
public void setlove() {
this.love = love;
}
public void cry() {
System.out.println("狗的名字是"+name+",品种是"+strain+",
亲密度是"+love+",能量值是"+energy);
}
}
(2)模拟狗狗的领养程序。
import java.util.Scanner;
public class Ten5two {
public static void main(String[] args) {
System.out.print("请选择领养品种"+"\t"+"1.柯基"+"\t"+"2.哈士奇");
Scanner in =new Scanner(System.in);
int n = in.nextInt();
System.out.print("狗名");
String na = in.next();
Dog1 d;
if(n == 1) {
d = new Dog1(na,"柯基");
}else {
d = new Dog1(na,"哈士奇");
}
d.cry();
d.eat();
d.play();
}
}
class Dog1{
String name;
int energy=60;//能量值
int love=0;//亲密度
String strain;//品种
public Dog1(String name,String strain) {
this.name = name;
this.strain = strain;
}
public void setenergy(int energy) {
this.energy = energy;
}
public void setlove() {
this.love = love;
}
public void cry() {
System.out.println("======初始化=======");
System.out.println("狗的名字是"+name+",品种是"+strain+",亲密度是"+love+",能量值是"+energy);
}
public void eat() {
System.out.println("=====喂食======");
if(energy >=100)
System.out.println(name+"饱了");
else {
energy+=5;
System.out.println("谢谢喂食,能量值+5,目前能量值"+energy);
}
}
public void play() {
System.out.println("=====玩耍======");
if(energy<60)
System.out.println(name+"饿了");
else {
System.out.println(name+"正在玩,亲密度+5,能量值-5");
love+=5;
energy-=5;
}
}
}
6、实现课本P91任务3-1 超市购物程序设计。
抄的课本
public class Ten6 {
public static void main(String[] args) {
shangpin s1 = new shangpin();
shangpin s2 = new shangpin();
shangpin s3 = new shangpin();
shangpin s4 = new shangpin();
shangpin s5 = new shangpin();
shangpin s6 = new shangpin();
shangpin s7 = new shangpin();
s1.setspname("芹菜");
s2.setspname("菠菜");
s3.setspname("白菜");
s4.setspname("油菜");
s5.setspname("苔菜");
s6.setspname("韭菜");
s7.setspname("紫菜");
chaoshi c = new chaoshi();
c.setcsname("超市");
c.setspArr(new shangpin[] {s1,s2,s3,s4,s5,s6,s7});
person p = new person();
p.setname("有人");
shangpin result = p.shop(c,"菠菜");
if(result!= null)
System.out.print(p.getname()+"在"+c.getcsname()+"买到了"+result.getspname());
else
System.out.print(p.getname()+"在"+c.getcsname()+"什么也没买到了");
}
static class chaoshi{//超市
private String csname;
private shangpin[] spArr;
public String getcsname() {
return csname;
}
public void setcsname(String csname) {
this.csname = csname;
}
public shangpin[] spArr() {
return spArr;
}
public void setspArr(shangpin[] spArr) {//传入数组
this.spArr = spArr;
}
shangpin sell(String name) {
for(int i=0;i<spArr.length;i++) {
if(spArr[i].getspname() == name)
return spArr[i];
}
return null;
}
}
static class shangpin{//商品
private String spname;
public String getspname() {
return spname;
}
public void setspname(String spname) {
this.spname = spname;
}
}
static class person{//人物
private String name;
public String getname() {
return name;
}
public void setname(String name) {
this.name = name;
}
shangpin shop(chaoshi cs,String name) {
return cs.sell(name);
}
}
}