Java的类—多态(二)实验

Winola ·
更新时间:2024-09-20
· 791 次阅读

本实验基于前期刚接触java的人群来说是一个比较好的锻炼机会,此次实验的内容分为3个内容(三个题),前提是大家需要对java中的类具有些许的了解,以及具有一定的定义类的能力!
接下来,我们介绍java的编程软件,本人用的系统是windows10系统,java编程软件是Myeclipse这需要注册,如果注册有问题,大家先实现可以用eclipse这不需要注册!!!
随后,我们开始进入今天的正题,那就是三道题的解答!!
在这里插入图片描述
其实在此之前我对这三道题题意的理解具有一定的奇异(第二题除外)
第一题:
理解目的:首先我们需要定义一个静态变量,计算人数,那么小朋友具有哪些特点?自然而然想到:他的年龄以及名字,于是开启一下定义和代码,代码如下:

package Test; class Children{ String name; int age; static int count;//定义小朋友初始人数为2; public Children(int age,String name){ this.age=age; this.name=name; }//输入小朋友年龄和姓名表示要加入游戏 public void jryx(){ System.out.println("有1位小朋友加入啦!");//有小朋友加入 count++; } } public class sy71 { public static void main(String[] args) { // TODO Auto-generated method stub Children.count=2; Children s1=new Children(5,"晴晴"); Children s2=new Children(8,"欢欢"); Children s3=new Children(6,"贝贝"); s1.jryx(); s2.jryx(); s3.jryx(); System.out.println("目前参加游戏的总人数为:"+Children.count); } }

下面让我们开始简略地讲解代码:
首先我们现在头部定义出,需要我们定义的类Class!随后,我们开始定义Class内的变量,也就是年龄和name啦!同时,不要忘记定义方法,在这里我定义了2个方法,一个是Children,另一个是jryx,一个用于记录小朋友的年龄和名字,另一个用于记录人数!
接下来就是实验结果啦!
代码显示有三位小朋友加入:
在这里插入图片描述
最终结果为:
在这里插入图片描述
好啦!我们第一个实验讲完啦!后面几个实验就简略地带过啦!
第二题:
是一道实现温度转换的题,我在此道题的基础上,加大了他的难度,既要实现摄氏度转化为华氏度,又要实现华氏度转化为摄氏度。
实验代码如下:

package Test; import java.util.Scanner; class wenduzhuanhua{ double ssd; double hsd; public void getFahrenheit(double ssd){ this.ssd=ssd; hsd=1.8*ssd+32; } public void getCentigrade(double hsd){ this.hsd=hsd; ssd=(double)(hsd-32)/1.8; } } public class sy72 { public static void main(String[] args) { // TODO Auto-generated method stub Scanner scanner=new Scanner(System.in); double sheshidu; double huashidu; int i; wenduzhuanhua wdzh=new wenduzhuanhua(); System.out.println("请输入i(0为摄氏度转华氏度,1为华氏度转摄氏度):"); i=scanner.nextInt(); if(i==0){ System.out.println("请输入摄氏度:"); sheshidu=scanner.nextDouble(); wdzh.getFahrenheit(sheshidu); System.out.println(sheshidu+"摄氏度转华氏度的结果为:"+wdzh.hsd+"华氏度"); }else{ System.out.println("请输入华氏度:"); huashidu=scanner.nextDouble(); wdzh.getCentigrade(huashidu); System.out.println(huashidu+"华氏度转摄氏度的结果为:"+wdzh.ssd+"摄氏度"); } } }

在此段代码中需要实现选择模式:0为将摄氏度转化为华氏度,1为将华氏度转化为摄氏度。代码中也定义了两个不同的方法!
实验结果如下:
在这里插入图片描述
在这里插入图片描述
这样实验二也完成啦!
接下来开始第三个实验!
第三题:
第三题是一道比较繁琐的题!对于不少人来说,题目比较难以理解,他的要求一定要看清!
在这里我建了两个java文件,一个用于建立Class,另一个用于调用,在这里需要用get()和set(),这里有一个笨方法和一个快捷的方法来建立get()和set()函数,你们可以自己选哦!
sy74用于建立Class;sy741用于调用。
下面先插入代码:
sy74中的代码:

package Test; class Wallet{ String xyk; int sfk; int yhk; int xj; public int getSfk() { return sfk; } public void setSfk(int sfk) { this.sfk = sfk; } private String getXyk() { return xyk; } private void setXyk(String xyk) { this.xyk = xyk; } private int getYhk() { return yhk; } private void setYhk(int yhk) { this.yhk = yhk; } private int getXj() { return xj; } private void setXj(int xj) { this.xj = xj; } public Wallet(String xyk,int sfk,int yhk,int xj){ this.xyk=xyk; this.sfk=sfk; this.yhk=yhk; this.xj=xj; } public void cx(String xyk){ System.out.println("校园卡为"+this.xyk); System.out.println("身份证为"+this.sfk); System.out.println("银行卡为"+this.yhk); System.out.println("现金为"+this.xj); } }

sy741中的代码:

package Test; public class sy741 { public static void main(String[] args) { // TODO Auto-generated method stub Wallet wallet1=new Wallet("hh1",123,124,1000); Wallet wallet2=new Wallet("hjw",19,34,10000); Wallet wallet3=new Wallet("lch",20,35,10); wallet2.cx("hjw"); } }

下面先介绍笨方法,所谓笨方法就是老老实实敲代码!聪明人自然会选择快捷的方法:
我们选中自己定义的变量如图:
在这里插入图片描述
之后我们鼠标右键,往中间看,看到Sourse了吗?将鼠标移到上面(也可以使用快捷键Alt+shift+S)随后我们选择Generate Getters and Setters点击后他就会自动生成get()和set()!
这样实验三就完成了!
我完成的是通过查询校园卡,来抄找他的其他信息(题目中所说的访问私有变量)
实验结果如下:
我们定义了以下数据:
在sy741代码中可以找到哦!

在这里插入图片描述我们查找hjw的数据!!!
在这里插入图片描述
好啦!今天就讲到这啦!大家加油!


作者:L C H



多态 java的 JAVA

需要 登录 后方可回复, 如果你还没有账号请 注册新账号