• 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("请输入账户和密码,用空格隔开^
    ");
    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("请键盘输入想要完成的功能:
    1.存款
    2.提现
    0.退出
    ");
    40         int m=sc.nextByte();
    41         
    42         while(m!=0) {//这个while循环是实现循环输入,比如存款后,可以选择继续存款还是提现
    43             
    44             if(m==1) {
    45             System.out.println("请输入存款金额:
    ");
    46             jiaming.x=sc.nextDouble();
    47             System.out.println("您存款金额为"+jiaming.x+",账户当前余额为"+jiaming.deposit(jiaming));
    48             System.out.println("请问您接下来想干嘛:
    1.继续存款
    2.提现
    0.退出
    ");
    49         }//输入存款金额后,调用Account类中的deposit方法,然后询问用户接下来操作
    50             
    51             else if(m==2) {//提款模块
    52             System.out.println("请输入提款金额:
    ");
    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("请问您接下来想干嘛:
    1.存款
    2.继续提现
    0.退出
    ");
    61         }
    62             if(m==0) {
    63                 System.out.println("感谢使用鸭,886");
    64                 break;
    65             }//如果用户输入0,就退出系统了呀(还整得像那么回事)
    66             else {
    67             System.out.println("输入无效,请输入:
    1.存款
    2.继续提现
    0.退出
    ");
    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,并让其减速。

    输出两辆车的所有信息

    码:

  • 相关阅读:
    atan与atan2的区别
    UVALive 6324 Archery (求射箭覆盖的期望)
    哈希UVALive 6326 Contest Hall Preparation
    HDU 2489 Minimal Ratio Tree (DFS枚举+最小生成树Prim)
    UVA:11183:Teen Girl Squad (有向图的最小生成树)
    POJ3164:Command Network(有向图的最小生成树)
    UVA10462:Is There A Second Way Left? (判断次小生成树)
    UVA10600:ACM Contest and Blackout(次小生成树)
    HDU4081:Qin Shi Huang's National Road System (任意两点间的最小瓶颈路)
    HDU1233:还是畅通工程(最小生成树)
  • 原文地址:https://www.cnblogs.com/rrrrraulista/p/10918126.html
Copyright © 2020-2023  润新知