第四周课程总结&实验报告二

第四周课程总结

不知不觉java课程已经上到第四周了。先来说说本周在课内课外的收获吧:本周更加什么的i奥杰了Java的封装性和getter、setter方法。还学习了构造方法和构造函数,构造方法要与类名称相同,没有返回值类型申明,还学习了string类的一些知识,比如书本上的一个String类的常用操作方法表,还有两种”等于“的区别,==是比较地址,equals是比较内容,我个人觉得equals比较稳妥,本周作业就遇到了类似的问题,输入的操作字符地址不一样导致账户中的输入密码不一样。还有this、static关键字,还有对象数组。static类的方法可以直接调用,this方法要带this关键字。这些知识挺晦涩的。弄了半天都没弄懂,做题的时候还是一团糟。本周作业挺难的,花了巨多时间。相关资料

实验报告:

实验二 Java简单类与对象

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

(1) 使用构造函数完成各属性的初始赋值

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

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

1.rectangle

源代码:

package test;

class Rectangle{
    private String color;
    private double width;
    private double height;


    public Rectangle(String color,double width,double height){
        this.setColor(color);
        this.setWidth(width);
        this.setHeight(height);
    }
    public void talk(){
        System.out.println("宽:"+getWidth()+"高:"+getHeight());
        System.out.println("面积:"+getArea()+" 周长:"+getLength());
        System.out.println("颜色:"+getColor());
    }
    public double getWidth(){
        return width;
    }
    public void setWidth(double width){
        this.width=width;
    }
    public double getHeight(){
        return height;
    }
    public void setHeight(double height){
        this.height=height;
    }
    public String getColor(){
        return color;
    }
    public void setColor(String color){
        this.color=color;
    }
    public double getArea(){
        double getArea=getWidth()*getHeight();
        return getArea;
    }
    public double getLength(){
        double getLength=(getWidth()+getHeight())*2;
        return getLength;
    }

}
public class Rectangle2 {
    public static void main(String[]arge){
        Rectangle per;
        per=new Rectangle("red",10,12);
        per.talk();

    }

}

实验截图:

2.account

源代码:


package test;
import java.util.Scanner;
import java.util.Date;
import java.util.*;
class Account{
    private String sign;
    private String id;
    private Date date;
    private String password;
    private double savedMoney;


    public Account(String password,String id,String sign,double savedMoney){
        this.sign="abcdef12345";
        this.id="Lwx";
        this.date=new Date();
        this.password="123456";
        this.savedMoney=0.0;
    }


    public void setSign(String sign) {
        this.sign=sign;
    }

    public String getSign() {
        return sign;
    }


    public Date getDate() {
        return date;
    }


    public void setDate(Date date) {
        this.date = date;
    }


    public String getPassword() {
        return password;
    }


    public void setPassword(String password) {
        this.password = password;
    }


    public String getId() {
        return id;
    }


    public void setId(String id) {
        this.id = id;
    }


    public double getSavedMoney() {
        return savedMoney;
    }


    public void setSavedMoney(double savedMoney) {
        this.savedMoney=savedMoney;
    }

    public void saveAndGet(){
        System.out.println("1.存款 "+"\n"+"2.取款");
        Scanner sc=new Scanner(System.in);
        double number=sc.nextInt();
        if(number==1) {
            System.out.println("您的余额为:"+getSavedMoney()+"元");
            System.out.println("请输入存入的金额:");
            double money1=sc.nextDouble();
            setSavedMoney(getSavedMoney()+money1);
            System.out.println("succeed,当前余额为:"+getSavedMoney()+"元");
        }
        else if(number==2) {
            System.out.println("您的余额为:"+getSavedMoney()+"元");
            System.out.println("请输入取出的金额:");
            double money2=sc.nextDouble();
            setSavedMoney(getSavedMoney()-money2);
            System.out.println("succeed,当前余额为:"+getSavedMoney()+"元");
        }
    }

    public void changePassword(){
        System.out.println("输入密码:");
        Scanner sc=new Scanner(System.in);
        String x = sc.nextLine();
        if(x.equals(getPassword())) {
        System.out.println("设置新密码:");
        Scanner ja=new Scanner(System.in);
        String password1 = ja.nextLine();
        System.out.println("请确认密码是否有误:");
        String password2 = sc.nextLine();
        if(password1.equals(password2)) {
            setPassword(password1);
            System.out.println("操作成功,新密码:"+getPassword());
        }
        else {

            System.out.println("两次输入密码不同!");

        }}
        else {
            System.out.println("密码错误!");
        }

    }




public void checkInfo() {
    System.out.println("输入密码查询信息:");
    Scanner sc=new Scanner(System.in);
    String s = sc.nextLine();
    if(s.equals(getPassword())) {
         System.out.println("标识:"+getSign());
         System.out.println("姓名:"+getId());
         System.out.println("余额:"+getSavedMoney()+"元");
         System.out.println("开户日期:"+getDate());
    }
    else {
         System.out.println("您的密码错误");
    }
}

public static void main(String[] args) {
    boolean Y=true;
    Account Ac=new Account("123456","LWX","abcdef12345",0.0);

    while(Y) {
    System.out.println("1.取款存款");
    System.out.println("2.修改密码");
    System.out.println("3.查询信息");
    System.out.println("4.退出");
    System.out.println("请输入下一步操作的数字:");
    Scanner sc=new Scanner(System.in);
    int b=sc.nextInt();
    if(b==1) {
        Ac.saveAndGet();
    }
    else if(b==2) {
        Ac.changePassword();
    }
    else if(b==3) {
        Ac.checkInfo();
    }
    else if(b==4) {
        System.out.println("退出系统!");
    }
}

}
}

遇到的问题:老是无法进入我所构建的方法中,还有总是输入密码错误。

解决方法:我吧获取时间的date弄进了实例化中去了,我把他删了就好了,密码错误问题,我吧==换成equals就好了。
实验截图:

01-20 21:48
查看更多