• 第四周课程总结&试验报告(二)


    实验二 Java简单类与对象

    **实验目的**
    掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
    理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
    理解static修饰付对类、类成员变量及类方法的影响。
    **实验内容**
    一:  写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
    (1) 使用构造函数完成各属性的初始赋值
    
    (2) 使用get…()和set…()的形式完成属性的访问及修改
    
    (3) 提供计算面积的getArea()方法和计算周长的getLength()方法
    
    二:   银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
     
    
    

    一: 写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
    (1) 使用构造函数完成各属性的初始赋值

    (2) 使用get…()和set…()的形式完成属性的访问及修改

    (3) 提供计算面积的getArea()方法和计算周长的getLength()方法
    1)实验代码:

    public class Rectangle {     
    	    private String color="红色";
    	    private double width;
    	    private double height;
    	    public void setColor(String color) {         //构造法为属性初始化         
    	        this.color=color;
    	    }
    	    public void setWidth(double width) {
    	        this.width=width;
    	    }
    	    public void setHeight(double height) {
    	        this.height=height;
    	    }
    	    public String getColor() {
    	        return color;
    	    }
    	    public double getWidth() {
    	        return width;
    	    }
    	    public double getHeight() {
    	        return height;
    	    }
    	    public  double getArea() {          //计算面积
    	        return width*height;
    	    }
    	    public double getLength() {           //计算周长
    	        return 2*(width+height);    
    	    }
    	        public static void main(String args[]) {
    	            Rectangle r=new Rectangle();
    	            r.setWidth(29);
    	            r.setHeight(30);
    	            System.out.println("高 ="+r.getHeight());
    	            System.out.println("宽 ="+r.getWidth());
    	            System.out.println("颜色为:"+r.getColor());
    	            System.out.println("面积为:"+r.getArea());
    	            System.out.println("周长为:"+r.getLength());
    	            
    	    }
    	    
    	}
    

    2)实验结果

    遇到的问题:
    计算周长时遗漏了宽和高的另一边,只计算了宽和高的一边,导致答案错误,最后检查的时候发现了并改正了。

    二: 银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。

    1)实验代码

    import java.util.Scanner;
    public class Bank {          //声明
    	Scanner sc=new Scanner(System.in);
    	private String kaihu="qwertyuiopa0";
    	private String name;
    	private String  time;
    	private String mima;
    	private int money;
    	public String getKaihu() {    //构造法为属性初始化
    		return kaihu;
    	}
    	public void setKaihu(String kaihu) {
    		this.kaihu = kaihu;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	public String getTime() {
    		return time;
    	}
    	public void setTime(String time) {
    		this.time = time;
    	}
    	public String getMima() {
    		return mima;
    	}
    	public void setMima(String mima) {
    		this.mima = mima;
    	}
    	public int getMoney() {
    		return money;
    	}
    	public void setMoney(int money) {
    		this.money = money;
    	}
        public void land(){             //界面,用switch进行选择
        	System.out.println("选项:0 账户标识,1 姓名,2 取款,3 存款,4 改密码, 5 out");
        	int a=sc.nextInt();
        	switch(a) {
        	case(0):kaihu();
        	break;
        	case(1):name();
        	break;
        	case(2):qukuan();
        	break;
        	case(3):cunkuan();
        	break;
        	case(4):mima();
        	break;
        	case(5):out();
        	break;
        	}
        }
    	private void kaihuriqi() {
    		// TODO Auto-generated method stub
    		
    	}
    	private void yue() {
    		// TODO Auto-generated method stub
    		
    	}
    	
    	private void zhanghubiaoshi() {
    		// TODO Auto-generated method stub
    		
    	}
    	public void kaihu() {            //输出账户的标识
    		System.out.println("输出账户的标识"+kaihu);
    		 System.out.println("2019年9月20日");
    		land();
    	}
    	public void name() {        //姓名
    		System.out.println("请输入你的姓名");
    		Scanner sc=new Scanner(System.in);
    		String a=sc.nextLine();
    		name+=a;
    		land();	
    	}
    	public void cunkuan() {        //存款
    		System.out.println("请输入存款数");
    		Scanner sc=new Scanner(System.in);
    		int a=sc.nextInt();
    		money+=a;
    		System.out.println("余额:"+money);
    		land();
    	}
    	public void qukuan() {          //取款
    		System.out.println("请输入取款数");
    		Scanner sc=new Scanner(System.in);
    		int a=sc.nextInt();
    		money-=a;
    		System.out.println("余额:"+money);
    		land();
    	}
    	public void mima() {           //密码
    		System.out.println("请输入你的密码");
    		Scanner sc=new Scanner(System.in);
    		String a=sc.nextLine();
    		mima=a;
    		System.out.println("密码为"+mima);
    		land();
    	}
    	public void out() {             //返回界面
    		land();
    	}
    	public static void main(String args[]) {
    	    Bank a=new Bank();
    	   a.land();
    	}
    }
    

    2)结果截图

    遇到的问题:
    刚开始属性的初始化我搞错了一个,而且这道题的密码没有输出来,所以我向老谢请教了这个问题,最后在检查中发现了问题,原来是密码的英文大小写被我搞混淆了,所以把大写字母改成小写就对了。

    总结:本周的Java感觉还好,因为第一题很简单,所以我按照书上的构造法来写很快就写出来了,不过第二题有点难,可能是我之前没遇到这种题型,而且我刚开始还没有理解这道题,所以就直接输出了,之后问了李钰·之后才知道我这种方法不行,所以我跟老谢讨论了一下这道题的思路,最后决定用switch·来输入,所以最后做出来了。

    本周学到的知识点:构造法和String类,还复习了一下c语言的switch语句。

  • 相关阅读:
    十二、React 生命周期函数
    十一、React 获取服务器数据: axios插件、 fetch-jsonp插件的使用
    备份CSDN
    十、React 父组件传来值的类型控制propTypes、父组件如果不传值defaultProps
    九、React中的组件、父子组件、React props父组件给子组件传值、子组件给父组件传值、父组件中通过refs获取子组件属性和方法
    phpStudy配置多站点多域名和多端口的方法
    八、8.2自写模块,引入及使用(封装)
    八、React实战:可交互待办事务表(表单使用、数据的本地缓存local srtorage、生命同期函数(页面加载就会执行函数名固定为componentDidMount()))
    七、React表单详解 约束性和非约束性组件 input text checkbox radio select textarea 以及获取表单的内容
    索引原理与数据库优化
  • 原文地址:https://www.cnblogs.com/tzmad/p/11541471.html
Copyright © 2020-2023  润新知