zoukankan      html  css  js  c++  java
  • 第四周课程总结&试验报告(二)

    实验二 Java简单类与对象

    实验目的
    掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
    理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
    理解static修饰付对类、类成员变量及类方法的影响。
    实验内容:
    写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
    (1) 使用构造函数完成各属性的初始赋值

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

    (3) 提供计算面积的getArea()方法和计算周长的getLength()方法

    一,实验代码:

    package project1;
    
    public class Rectangle {
    		private double height;
    		private double width;
    		private String color;
    		public Rectangle(double width,double height,String color){
    		      this.setColor(color);
    		      this.setHeight(height);
    		      this.setWidth(width);
    		}
    		public double getHeight() {
    		     return height;
    		}
    		public void setHeight(double height) {
    		     this.height = height;
    		}
    		public double getWidth() {
    		     return width;
    		}
    		public void setWidth(double width) {
    		     this.width = width;
    		}
    		public String getColor() {
    		     return color;
    		}
    		public void setColor(String color) {
    		     this.color = color;
    		}
    		public void getArea(){
    		     double area=0;
    		     area=this.height*this.width;
    		     System.out.println("矩形的面积:"+area);
    		}
    		public void getLength(){
    		     double length;
    		     length=width+height+width+height;
    		     System.out.println("矩形的周长:"+length);
    		}
    		public String toString(){
    		     String recStr="矩形的高度:"+this.getHeight()+"宽度:"+this.getWidth()+"颜色:"+this.getColor();
    		     return recStr;
    		}
    		public static void main(String[] args) {
    		     Rectangle rec=new Rectangle(5,10,"黑色");
    		     rec.getArea();
    		     rec.getLength();
    		     System.out.println(rec.toString());
    		}
    }
    

    二,实验截图:

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

    package project1;
    
    import java.text.DecimalFormat;      //格式化数字
    import java.util.Scanner;      //调用控制台输入信息
    
    class Account {
    	private String id,name;                              
        private int time,key;
        private double balance;
        public Account(String id,String name,int time,int key,int balance){     
            this.setId(id);                                       
            this.setName(name);
            this.setTime(time);
            this.setKey(key);
            this.setBalance(balance);
        }
        public /*static*/ void deposit(){              //此处static
            System.out.println("1.存款 2.取款");
            System.out.print("再次输入你要进行的操作的序号:");
            DecimalFormat df=new DecimalFormat("0.00");           
            Scanner sc=new Scanner(System.in);       //接受控制台输入,同下所有Scanner sc=new Scanner(......)
            int a1=sc.nextInt();
            if(a1==1){
                System.out.println("当前余额:"+df.format(+getBalance())+"元");
                System.out.print("请输入要存入的钱数:");
                double money1=sc.nextDouble();
                setBalance(getBalance()+money1);       
                System.out.println("成功!当前余额:"+df.format(+getBalance())+"元");
            }
            else if(a1==2){
                System.out.println("当前余额:"+df.format(+getBalance())+"元");
                System.out.print("请输入要取出的钱数:");
                double money2=sc.nextDouble();
                setBalance(getBalance()-money2);
                if(getBalance()<0){
                    System.out.println("余额不足!");
                }
                else{
                    System.out.println("成功!当前余额:"+df.format(+getBalance())+"元");
                }
            }
            
        }
        public /*static*/ void change(){               
            System.out.print("请设置新密码:");
            Scanner sc=new Scanner(System.in);
            int key1=sc.nextInt();
            System.out.print("请再次确认密码:");
            int key2=sc.nextInt();
            if(key1==key2){
                setKey(key1);            
                System.out.println("设置成功!你的密码为:"+getKey());
            }
            else{
                System.out.println("两次输入的密码不同!");
            }
            
        }
        public /*static*/void inquire(){              
            System.out.print("输入六位数密码查询信息:");
            Scanner sc=new Scanner(System.in);
            int data=sc.nextInt();
            if(data==getKey()){
            DecimalFormat df=new DecimalFormat("0.00");      
            System.out.println("标识:"+getId());
            System.out.println("姓名:"+getName());
            System.out.println("开户日期:"+getTime());
            System.out.println("余额:"+df.format(+getBalance())+"元");
            }
            else{
                System.out.println("密码错误");
            }
        }
        public String getId(){
            return id;
        }
        public void setId(String i){
            id=i;
        }
        public String getName(){
            return name;
        }
        public void setName(String n){
            name=n;
        }
        public int getTime(){
            return time;
        }
        public void setTime(int t){
            time=t;
        }        
        public int getKey(){
            return key;
        }
        public void setKey(int k){
            key=k;
        }
        public double getBalance(){
            return balance;
        }
        public void setBalance(double b){
            balance=b;
        }
    }
    class classdemo3 {
    
        public static void main(String[] args) {
            boolean R=false;
            Account ac=new Account("Hazelnut826","陈振国",20190919,101010,0);
            while(!R)
            {
            System.out.println("1.存取款");
            System.out.println("2.修改密码");
            System.out.println("3.查询信息");
            System.out.println("4.退出程序");
            System.out.print("请输入你要进行的操作的序号:");
            Scanner sc=new Scanner(System.in);
            int a=sc.nextInt();
            if(a==1){
                ac.deposit();    
            }
            else if(a==2){
                ac.change();     
                
            }
            else if(a==3){
                ac.inquire();       
            }
            else if(a==4){
                System.out.println(" 感谢使用!");
                break;
            }
          }
       }
    }
    

    二,实验截图:

    总结:------------这次的实验主要是让我们掌握类的定义,熟悉属性、构造函数、方法的作用;掌握用类作为类型声明变量和方法返回值,理解类和对象的区别;掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;理解static修饰付对类、类成员变量及类方法的影响。第一个题目难度不大,但在上机课上我定义的getArea一直是又错误的,但后来重新new一个包来写这段代码时却通过了???,第二个实验虽然大体上和第一题一样,但在代码的最开头要先调用(import java.text.DecimalFormat; //格式化数字)以及(import java.util.Scanner; //调用控制台输入信息)用法见注释内容,我在方法是静态的还是动态的这个地方还有点不懂,如果定义为静态,则编译不通过,如果定义为动态,eclipse会自动运行上一个代码,后来在网上找了相关的解决法,有人说如果将public static void main()的static去掉后者将main写成了mian就会出现上述所说的情况,但是这个方法并不能解决,最后是直接点击run傍边的小倒三角,找到并点击Run Configurations,然后双击Java Application,最后点击Run就能直接运行了。

  • 相关阅读:
    xp_cmdshell
    常用SQL语句
    SQL Server Select的递归查询-交叉表
    Sql Server 2005 行转列的实现(横排)
    sql导入导出
    使用正则表达式验证手机号、车牌号
    页面功能:设为首页和加入收藏
    两个文本框同步输入
    最常用的200个JS代码
    .NET 获取时间
  • 原文地址:https://www.cnblogs.com/chenzg90826/p/11552761.html
Copyright © 2011-2022 走看看