实验项目名称:java 类与对象的定义与使用测试 |
实验目的及要求:spa [1]. 类的定义、对象的建立code [2]. 类中构造方法、get/set方法、toString方法的定义对象 [3]. 实例成员与静态成员的特色、定义与引用方法blog [4]. 类及其成员的访问控制符的做用权限ci |
实验原理:get 在Java语言运行环境下,按要求完成程序的编辑、编译、链接和运行,直至取得正确的运行结果。it |
实验内容(方法和步骤):编译 【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,并让其减速。 输出两辆车的全部信息 源代码: |