Java作业2

实验项目名称:

类与对象的定义与使用

实验目的及要求:

[1]. 类的定义、对象的创建

[2]. 类中构造方法、get/set方法、toString方法的定义

[3]. 实例成员与静态成员的特点、定义与引用方法

[4]. 类及其成员的访问控制符的作用权限

实验原理:

在Java语言运行环境下,按要求完成程序的编辑、编译、连接和运行,直至取得正确的运行结果。

实验内容(方法和步骤):

【1】    编写一个Java应用程序,该程序中有3个类:Lader、Circle和主类A。

具体要求如下:

[1].  Lader类具有类型为double的上底、下底、高、面积属性,具有返回面积的功能,包括一个构造方法对上底、下底、高进行初始化。

[2].  Circle类具有类型为double的半径、周长和面积属性,具有返回周长、面积的功能,包括一个构造方法对半径进行初始化。

[3].  主类A用来测试类Lader和类Circle的功能。

码:

 1 class Lader{
 2 
 3    double s,x,h,area;
 4 
 5    double getarea(Lader l) {
 6 
 7       area=((s+x)*h)/2;
 8 
 9       return area;
10 
11    }
12 
13    Lader(double sd,double xd,double gao){
14 
15       s=sd;
16 
17       x=xd;
18 
19       h=gao;
20 
21    }
22 
23 }
24 
25 class Circle {
26 
27     double r,c,a;
28 
29     Circle(double cr){
30 
31        r=cr;
32 
33     }
34 
35     double pi=3.1415926;
36 
37     double cArea(Circle x) {
38 
39        a= pi*r*r;
40 
41        return a;
42 
43     }
44 
45     double cRound(Circle x) {
46 
47        double d= 2*r*pi;
48 
49        return d;
50 
51     }
52 
53 }
54 
55 package Aa;
56 
57 import java.util.Scanner;
58 
59  public class A {
60 
61    public static void main(String args[]) {
62 
63       Lader l1 =new Lader(1,2,3);             //初始化一个实例
64 
65        Scanner sc=new Scanner(System.in);    //手动输入梯形的值
66 
67           System.out.print("梯形的上底:");
68 
69           l1.s=sc.nextDouble();
70 
71           System.out.print("梯形的下底:");
72 
73           l1.x=sc.nextDouble();
74 
75           System.out.print("梯形的高:");
76 
77           l1.h=sc.nextInt();
78 
79       System.out.println("题型的面积为"+l1.getarea(l1)+"。");//输出梯形面积
80 
81     
82       Circle c1=new Circle(0);//Initialize the class Circle
83 
84       System.out.print("园的半径:");
85 
86        c1.r=sc.nextDouble();
87 
88        System.out.print("圆的面积:"+c1.cArea(c1)+"。");
89 
90        System.out.print("圆的周长:"+c1.cRound(c1)+"。");     
91 
92    }
93 
94 }

 

【2】    编写西游记人物类(XiYouJiRenWu):

属性:身高(height),名字(name),武器(weapon)

方法:显示名字(printName),显示武器(printWeapon)

在主类的main方法中创建二个对象:zhuBaJie,sunWuKong:

分别为他们的两个属性(name,weapon)赋值,最后分别调用printName,,printWeapon方法显示两个对象的属性值。

码:

 

 1 package 实验报告2;
 2 
 3 class XiYouJiRenWu {
 4     public double height;
 5     public String name;
 6     public String weapon;
 7     
 8     public XiYouJiRenWu(double cheight,String cname,String cweapon) {
 9         height = cheight;
10         name = cname;
11         weapon = cweapon;
12     }
13     
14     void printName() {
15         System.out.println("角色名字为:"+name);
16     }
17     void printWeapon() {
18         System.out.println("角色使用武器(老婆)为:"+weapon);
19     }
20     void printHeight() {
21         System.out.println("角色体长为:"+height);
22     }
23     void print() {
24         printName();
25         printWeapon();
26         printHeight();
27     }
28 }
29 public class diaoyong {
30     public static void main(String args[]) {
31          XiYouJiRenWu zhuBaJie=new XiYouJiRenWu(150,"猪八戒","九齿钉耙");
32          zhuBaJie.print();
33          XiYouJiRenWu sunWuKong=new XiYouJiRenWu(197,"孙悟空","如意金箍棒");
34          sunWuKong.print();
35     }
36 }

 

【3】    编写Java应用程序。首先定义一个描述银行账户的Account类,

成员变量“账号”和“存款余额”,

成员方法有“存款”、“取款”和“余额查询”。

其次,编写一个主类,在主类中测试Account类的功能。

码:

 

 1 package 练习3;
 2 
 3 class Account {
 4     int id,pswd; //clients' card id and its pswd
 5     double balance;//clients' balance
 6     double x;
 7     Account(int cid,int cpswd,double cbalance){
 8         id = cid;
 9         balance = cbalance;
10     }//构造方法
11     double deposit(Account a) {
12         balance +=x;
13         return balance;
14     }//存款
15     double withdraw(Account a) {
16         balance -=x;
17         return balance;
18     }//提现
19 }
20 
21 import java.util.Scanner;
22 public class shixian {
23     public static void main(String[] args) {
24         Account jiaming = new Account(1,1,1);//第一步注册账号
25         Scanner sc=new Scanner(System.in);    //用户信息
26         System.out.print("请设定用户名:");
27         jiaming.id=sc.nextInt();
28         System.out.print("请设置账号密码:");
29         jiaming.pswd=sc.nextInt();
30         System.out.print("请工作人员授权输入余额:");
31         jiaming.balance= sc.nextDouble();
32         //冗长的注册结束了(撒花),接下来开始激动人心的测试环节!
33         System.out.print("请输入账户和密码,用空格隔开^\n");
34         int u1=sc.nextInt();
35         int u2=sc.nextInt();
36         if(!(u1==jiaming.id&&u2==jiaming.pswd)) {
37             System.out.print("输入有误,系统退出");
38         }
39         System.out.print("请键盘输入想要完成的功能:\n1.存款\n2.提现\n0.退出\n");
40         int m=sc.nextByte();
41         
42         while(m!=0) {//这个while循环是实现循环输入,比如存款后,可以选择继续存款还是提现
43             
44             if(m==1) {
45             System.out.println("请输入存款金额:\n");
46             jiaming.x=sc.nextDouble();
47             System.out.println("您存款金额为"+jiaming.x+",账户当前余额为"+jiaming.deposit(jiaming));
48             System.out.println("请问您接下来想干嘛:\n1.继续存款\n2.提现\n0.退出\n");
49         }//输入存款金额后,调用Account类中的deposit方法,然后询问用户接下来操作
50             
51             else if(m==2) {//提款模块
52             System.out.println("请输入提款金额:\n");
53             jiaming.x=sc.nextDouble();
54             
55                 while(jiaming.x>jiaming.balance) {
56                     System.out.println("账户余额不足,请重新输入");
57                     jiaming.x=sc.nextDouble();
58                 }//如果账户余额不足,则重复输入;
59                 System.out.println("您提现金额为"+jiaming.x+",账户当前余额为"+jiaming.withdraw(jiaming));
60                 System.out.println("请问您接下来想干嘛:\n1.存款\n2.继续提现\n0.退出\n");
61         }
62             if(m==0) {
63                 System.out.println("感谢使用鸭,886");
64                 break;
65             }//如果用户输入0,就退出系统了呀(还整得像那么回事)
66             else {
67             System.out.println("输入无效,请输入:\n1.存款\n2.继续提现\n0.退出\n");
68         }//输入其他的值不合法嗷┗|`O′|┛ !!!
69             m=sc.nextByte();//控制while循环
70        }//while终了
71     }//main的尾巴~
72 }//class shixian

 

【4】    编写Java应用程序。首先,定义一个时钟类—Clock,

三个int型成员变量分别表示时、分、秒,

一个构造方法用于对三个成员变量(时、分、秒)进行初始化,

一个成员方法show()用于显示时钟对象的时间。

定义一个主类—TestClass,在主类的main方法中创建多个时钟类的对象,使用这些对象调用方法show()来显示时钟的时间。

修改成员方法的访问控制符为“public”,再运行一次。

 

码:

 

【5】    编写Java应用程序。首先,定义描述学生的类—Student,

包括:学号(int)、姓名(String)、年龄(int)等属性;

二个方法:Student(int stuNo,String name,int age)用于对对象的初始化,outPut()用于输出学生信息。

定义一个主类—TestClass,在主类的main方法中创建多个Student类的对象,使用这些对象来测试Student类的功能。

 

码:

 

【6】    编写Java应用程序。首先,定义一个Print类,

一个方法void output(int x),如果x的值是1,在控制台打印出大写的英文字母表;如果x的值是2,在控制台打印出小写的英文字母表。

定义一个主类—TestClass,在主类的main方法中创建Print类的对象,使用这个对象调用方法output ()来打印出大小写英文字母表。

修改成员方法的访问控制符为“private”,再运行一次。

码:

 

【7】    按要求编写Java应用程序。创建一个叫做People的类:

属性:姓名、年龄、性别、身高,

行为:说话、计算加法、改名

编写能为所有属性赋值的构造方法;

创建主类:创建一个对象:名叫“张三”,性别“男”,年龄18岁,身高1.80;

让该对象调用成员方法:说出“你好!”,计算23+45的值,将名字改为“李四”。

码:

 

【8】按要求编写Java应用程序。

(1)创建一个叫做机动车的类:

属性:车牌号(String),车速(int),载重量(double)

功能:加速(车速自增)、减速(车速自减)、修改车牌号,查询车的载重量。

编写两个构造方法:一个没有形参,在方法中将车牌号设置“XX1234”,速度设置为100,载重量设置为100;另一个能为对象的所有属性赋值;

 

(2)创建主类:

在主类中创建两个机动车对象。

创建第一个时调用无参数的构造方法,调用成员方法使其车牌为“9752”,并让其加速。

创建第二个时调用有参数的构造方法,使其车牌为“5086”,车速为150,载重为200,并让其减速。

输出两辆车的所有信息

码:

 

 

posted @ 2019-05-24 14:45  ExplodedVegetable  阅读(703)  评论(0编辑  收藏  举报