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

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

    (一)学习总结:

    这一周学习的知识点一、有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();
    		}
    	}
    

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

    慢慢的就明白了,起初对赋值不明白,后来就明白,在后面调用的时候进行赋值,并且要一一对应,不能对应错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;
    			}
    		}
    	}
    
    }
    

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

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

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

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

  • 相关阅读:
    什么是“泛在电力物联网”?要建一个什么样的泛在电力物联网?
    基于混合云雾计算的物联网架构
    探索 | “中医+AI”会诊电力设备故障
    泛在电力物联网有项核心技术 你听过没有?
    国网做泛在电力物联网的初衷是什么?如何参与?
    泛在电力物联网技术及战略解读:一个战略 两个领域 三个阶段
    构建“泛在电力物联网”成为国网当前最紧迫、最重要的任务
    如何解决分布式日志exceptionless的写入瓶颈
    SQL 查找是否"存在",别再 count 了,很耗费时间的
    abp vnext 微服务-基于Exceptionless实现分布式日志记录
  • 原文地址:https://www.cnblogs.com/lyl68/p/11553280.html
Copyright © 2011-2022 走看看