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

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

(一)学习总结:

这一周学习的知识点一、有String类中常用的方法还有实例化String类对象还有String对象的内容比较还有String类两种对象实例化方式的区别。
知识点二、就是数组的定义及使用。
实例化String类对象(就是直接调用String类中的构造方法):

Public class Stringstr1{
Public static void main(String[] args){
String name=”Liyinglan”;
System.out.println(“姓名”+name);
}
}

1.String对象的内容比较:

对于基本数据类型可以通过“===”进行内容的比较,比较的是内容;不能用于比较地址的内容,比如说字符串;

2.String类的两种对象实例化的区别:

其一种是通过直接赋值的方式;另一种是使用;标准的new调用构造方法完成实例化;
(一)字符串就是一个String类的匿名对象,(匿名对象就是已经开辟了堆内存空间并可以直接使用的对象)如果使用new关键字的话,不管如何都会开辟一个新的内存空间,
但此时,此空间的内容还是原来的内容,所以上面的代码实际上是开辟了两个内存空间,但真正使用的只是一个使用关键词new开辟的空间,另一个是垃圾空间。

(二)String使用直接赋值的方式之后,只要是以后声明的字符内容相同,则不会再开辟新的内存空间;

3.字符串的内容一旦声明就不可以改变;(如果想改变就要将改变的赋值给原来的)

一个String对象内容的改变实际上是通过内存地址的“断开”变化完成的,而本身字符串中的内容并没有改变;

 Public class Stringnom{
         Public static void main(String[] args){
            String str=”hello”;
            str=str+”world”;
            System.out.println(“str=”+str);
    }
}

其输出的结果仍然是hello;

4.String类中常用方法:

(一)字符串和字符数组的转换;

(二)从字符串取出指定位置的字符;

    Public class Stringnom{
      Public static void main(String[] args){
          String str1=”hello”;
          System.out.println(str.charAt(3));
 }
}

输出结果为‘l’;

(三)字符串与byte数组的转换;

(四)取得一个字符串的长度;

Public class Stringnom2{
           Public static void main(String[] args){
                 String str1=”hello liuyinglan”;
                 Str1=str1+”world”;
                 System.out.println(“\”+str+”\”的长度为:”+str1.length());
       }
}

输出结果hello liuyinglan的长度为:16
(五)去掉左右空格;

(六)字符串截取;

Public class StringAPIDemo07{
            Public static void main(String[] args){
                 String str3=”hello word”;
                 System.out.println(str3.substring(6));
                 System.out.println(str3.substring(0,5));
     }
}

输出结果:

word
Hello

数组类型:

数据类型 数组名称[]=null; //声明数组为一维数组
数组名称=new 数据类型[长度]; //分配内存给数组

(二)实验总结:

1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:

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

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

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

package javaxx;

class Demo1 {
    private double width;
    private double height;
    private String color;
    public Demo1(String color,double width,double height) {
        this.setWidth(width);
        this.setHeight(height);
        this.setColor(color);
    }
        public void tell() {
        System.out.print("面积:"+getArea()+"周长:"+getLength()+"颜色:"+this.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 getLength() {
        double length=getWidth()*2+getHeight()*2;
        return length;
        
    }
    public double getArea() {
        double area=getWidth()*getHeight();
        return area;
        
    }
}
    public class Gzao方法{
        public static void main(String[]args) {
            Demo1 a=new Demo1("红色",12,13);
            a.tell();
        }
    }

第四周课程总结&试验报告(二)_第1张图片

这个题不是很难,但是自己对构造方法不是很熟练,所以刚开始感觉很难,然后通过看书本知识,和通过看书本上的例题,

慢慢的就明白了,起初对赋值不明白,后来就明白,在后面调用的时候进行赋值,并且要一一对应,不能对应错public Demo1(String color,double width,double height) ,

Demo1 a=new Demo1("红色",12,13);,然后就是对public double getLength() 这个不清楚,在编写的时候吧()落掉了;结果出现了错误;

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

package javaxx;

import java.util.Scanner; 

class Account{
    private int id;
    private String name;
    private String mima;
    private int time;
    private double remanent;
    public Account(String name,String mima,int time,double remanent,int id) {
        this.setId(id);
        this.setName(name);
        this.setMima(mima);
        this.setTime(time);
        this.setRemanent(remanent);
    }
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getMima() {
        return mima;
    }
    public void setMima(String mima) {
        this.mima = mima;
    }
    public int getTime() {
        return time;
    }
    public void setTime(int time) {
        this.time = time;
    }
    public double getRemanent() {
        return remanent;
    }
    public void setRemanent(double remanent) {
        this.remanent = remanent;
    }
    public void Putout(){
        System.out.println("1.取款    2.存款");
        System.out.print("请选择您的交易类型:");
        Scanner input=new Scanner(System.in);
        int count=input.nextInt();
        if(count==1) {
            System.out.println("当前余额:"+getRemanent()+"元");
            System.out.print("请输入取款金额:");
            //scanner input=new Scanner(System.in);
            double money=input.nextInt();
            if(getRemanent()-money>=0) {
                setRemanent(getRemanent()-money);
                System.out.println("操作成功!");
                System.out.println("请取款");
            }
            else {
                System.out.println("余额不足,请充值");
            }
            
        }
        if(count==2) {
            System.out.println("当前余额:"+getRemanent()+"元");
            System.out.print("请输入存款金额:");
            double money1=input.nextInt();
            setRemanent(getRemanent()+money1);
            System.out.println("充值成功!");
            System.out.println("当前余额:"+getRemanent()+"元");
        }
    }
    public void Changmima() {
        System.out.print("输入密码:");
        Scanner input=new Scanner(System.in);
        String mima=input.nextLine();
        if(mima.equals(getMima())) {
            System.out.println("设置新密码:");
            String mima1=input.nextLine();
            System.out.println("请确认您的密码:");
            String mima2=input.nextLine();
          if(mima1.equals(mima2)) {
              setMima(mima1);
              System.out.println("密码设置成功为:"+getMima());
        }
        else {
            System.out.println("密码错误,请重新输入");
            System.out.println("请选择您的交易类型:");
          }
        }
        else {
            System.out.println("密码错误,请重新输入");
            System.out.println("请选择您的交易类型:");
        }
        
    }
    public void Lookmessage() {
        System.out.print("输入密码:");
        Scanner input=new Scanner(System.in);
        String mima=input.nextLine();
        if(mima.equals(getMima()))
        {
            System.out.print("请输入卡号:");
            int khao=input.nextInt();
            if(khao==getId()) {
            System.out.println("标识:"+getId());
            System.out.println("姓名:"+getName());
            System.out.println("开户日期:"+getTime());
            System.out.println("余额:"+getRemanent());
         }
        else {
            System.out.println("卡号错误,请重新输入");
         }
        }
        else {
            System.out.println("密码错误,请重新输入");
        }
        
    }
    
}
public class Yhzhh {

    public static void main(String[] args) {
        // TODO Auto-generated method stub

        Account str;
        str=new Account("刘颖岚","123456",20190919,2000000,12345678);
        int a=0;
        while(a!=5) {
            System.out.println("1.存取款");
            System.out.println("2.修改密码");
            System.out.println("3.查询信息");
            System.out.println("4.退出程序");
            System.out.print("请选择您的交易类型:");
            Scanner input=new Scanner(System.in);
            int scanf=input.nextInt();
            if(scanf==1) {
                str.Putout();
            }
            if(scanf==2) {
                str.Changmima();
            }
            if(scanf==3) {
                str.Lookmessage();
            }
            if(scanf==4) {
                System.out.println("请取卡,谢谢您的使用");
                break;
            }
        }
    }

}

第四周课程总结&试验报告(二)_第2张图片

第四周课程总结&试验报告(二)_第3张图片

本题实验总结:这一个题看着比较长,题目也比较复杂,起初感觉这个题比较难,因为题目的意思看不明白,然后百度查看了别人的代码,经自己理解后才发现这相当于一个

银行ATM机的操作,虽然不知道题目要求到底是不是和我自己想的那样。知道了这个之后,我就理清了思路,首先构造出需要的属性,并且对其进行

封装,同时给出get方法和set方法,然后再构造三个不同属性的类,一个用来进行存储款操作,一个用来进行密码修改,还有一个用来查看信息;

最后给出一个每次都能弹出来的选择类型,通过给定数值让其选择相应的程序进行操作;

转载于:https://www.cnblogs.com/lyl68/p/11553280.html

你可能感兴趣的:(第四周课程总结&试验报告(二))