zoukankan      html  css  js  c++  java
  • 第四周总结&第二次实验报告

    实验二 Java简单类与对象

    实验目的

    • 掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
    • 理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
    • 理解static修饰付对类、类成员变量及类方法的影响。

    实验内容

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

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

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

    实验过程

    class Rectangle {
    	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 Rectangle(double width,double height,String color) {
    		this.setColor(color);
    		this.setHeight(height);
    		this.setWidth(width);
    	}
    	private double width;
    	private double height;
    	private  String color;
    	public double getArea() {
    		return width * height;
    	}
    	public double getLength() {
    		return (width + height) * 2;
    	}
    
    }
    
    public class Example {
    	public static void main(String args[]) {
    		Rectangle angle = null;
    		angle = new Rectangle(4,5,"red");
    		System.out.println("矩形的颜色为:"+angle.getColor());
    		System.out.println("矩阵的周长为:"+angle.getLength());
    		System.out.println("矩阵的面积为:"+angle.getArea());
    	}
    
    }
    
    

    实验结果

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

    实验过程】

    import java.util.*;
    public class Account {
    	public String getId() {
    		return id;
    	}
    	public void setId(String id) {
    		this.id = id;
    	}
    	public String getName() {
    		return name;
    	}
    	public void setName(String name) {
    		this.name = name;
    	}
    	/*
    	public String getDate() {
    		return date;
    	}
    	public void setDate(String date) {
    		this.date = date;
    	}
    	*/
    	public String getPassword() {
    		return password;
    	}
    	public void setPassword(String password) {
    		this.password = password;
    	}
    	public double getBalance() {
    		return balance;
    	}
    	public void setBalance(double balance) {
    		this.balance = balance;
    	}
    	public static String getRandomNumbersAndString(int length) {
    		String base = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
    		return getRandomString(length, base);
    	}
    	private static String getRandomString(int length, String base) {
    		Random random = new Random();
    		StringBuffer sb = new StringBuffer();
    		for (int i = 0; i < length; i++) {
    			int number = random.nextInt(base.length());
    			sb.append(base.charAt(number));
    		}
    		return sb.toString();
    	}
    	/*private static String getUniqueRandomString(int length, String base) {
    		// TODO Auto-generated method stub
    		return null;
    	}*/
    	//private Date date = new Date();
    	
    	private String id = getRandomNumbersAndString(11);
    	private String name;
    	private String password = "123456";
    	private double balance;
    	public  Account(String name,double balance) {
    		this.setName(name);
    		this.setBalance(balance);
    	}
    	public Account() {
    		
    	}
    	public double Deposit(double n) {
    		this.balance = balance + n;
    		return balance;
    	}
    	public double Draw(double m) {
    		this.balance = balance - m;
    		return balance;
    	}
    	public String Changepassword(String password) {
    		this.password = password;
    		return password;
    	}
    }
    
    import java.util.*;
    public class Example2 {
    	public static void main(String args[]) {
    		Account yonghu = null;
    		yonghu = new Account("及你太美",0);
    		Date date = new Date();
    		Scanner in= new Scanner(System.in);
    		Scanner sr = new Scanner(System.in);
    		String str;
    		System.out.println("输入相应的英文进行操作。。。。。。。。");
    		while(true) {
    		str = in.nextLine();
    		if(str == "exit") {
    			break;
    		}
    		switch(str) {
    		case "Deposit":{
    			double n = in.nextDouble();
    			System.out.println("用户的余额还有:"+yonghu.Deposit(n));
    			System.out.println("输入exit结束程序。。。。。。");
    			break;
    		}
    		case "Draw":{
    			double n = in.nextDouble();
    			System.out.println("用户的余额剩余:"+yonghu.Draw(n));
    			System.out.println("输入exit结束程序。。。。。。");
    			break;
    		}
    		case "Changepassword":{
    			String str2;
    			str2 = in.nextLine();
    			System.out.println("用户的密码改为:"+yonghu.Changepassword(str2));
    			System.out.println("输入exit结束程序。。。。。。");
    			break;
    		}
    		case "date":{
    			System.out.println("用户的开户日期为:"+date);
    			System.out.println("输入exit结束程序。。。。。。");
    			break;
    		}
    		case "id":{
    			System.out.println("用户标识为:"+yonghu.getId());
    			System.out.println("输入exit结束程序。。。。。。");
    			break;
    		}
    		case "name":{
    			System.out.println("用户的姓名为:"+yonghu.getName());
    			System.out.println("输入exit结束程序。。。。。。");
    			break;
    		}
    		case "balance":{
    			System.out.println("用户的当前余额为:"+yonghu.getBalance());
    			System.out.println("输入exit结束程序。。。。。。");
    			break;
    		}
    		case "exit":{
    			System.exit(0);
    			System.out.println("程序关闭正常");
    		}
    		default:{
    			System.out.println("输入错误请重新输入:");
    			System.out.println("输入exit结束程序。。。。。。");
    			break;
    		}
    		}
    		}
    		/*System.out.println(yonghu.getId());
    		System.out.println(date);*/
    		in.close();
    		sr.close();
    	}
    
    }
    
    

    实验结果

    总结:

    这次的实验总体来说还算可以,第一题没什么问题,第二题有一点问题,开始定义了一些在Account类中的方法,然后想在另一个类中使用,开始不能用,提示说要定义为static属性,然后想了一下定义为static那些set跟get就没用了,后面一想,可以用对象调用,把这个问题解决了,后面又出了一个在switch中yonghu这个对象要为空,出现了这么一个错误,后来把对象的实例化放到前面去就可以了,没有这个错误了,这个题目还有一些没有实现,比如是否开户,开户了每一个人的账户内容保存在那,不能这个程序只能保存一个的吧,还有产生的随机账户,如果后面有重复账户怎么办,本来还想把它优化一下的,想用对象数组来保存每一个对象,但是这个题目在周二我就做好了,所以也不想改了,时间我是不知道怎么保存。

    第四周总结:

    本周主要讲了String类,还讲了对象数组,以及Java数组的定义。

    String类

    我们一直使用String定义字符串,一种是直接赋值,还有一种是调用String的构造方法,两种赋值方法效果类似。但有一些区别,直接赋值是如果开辟了一个堆空间来保存这个字符串,那么后面又出现这个字符串的赋值,就不会再开辟空间,而构造方法则是开辟了两个空间,甚至更多
    String对象内容的比较,如果一个直接赋值,和一个用构造方法赋值的一样的字符串,进行直接比较,会出现false

    所以要用eauals()方法比较这个方法只比较内容,但是会区分大小写。
    字符串一旦声明就不可改变

    还有一些String类的一些常用操作方法

    对象数组

    所谓对象数组,就是包含了一组相关的对象数组,数组一定要先开辟空间,因为其是引用数据类型,所以数组每一个对象都是null值,则再引用对象数组时都要对其进行实例化操作


  • 相关阅读:
    时间好快,转眼又一周
    八月第二周
    八月第一周
    经济学人:埃航失事:波音信誉遭到危机(2)
    1109. 航班预订统计 --前缀和 和差分
    99. 激光炸弹 --前缀和+暴力 + 动态规划
    1108. Defanging an IP Address
    【mybatis】学习笔记 3动态语句 foreach generator使用【 小心生成系统中的数据库 如uesr表 country表】
    【mybatis】学习笔记 2 动态代理 输入输出参数 关联查询
    【JSP学习笔记】1jsp入门
  • 原文地址:https://www.cnblogs.com/xiao--liang/p/11540504.html
Copyright © 2011-2022 走看看