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

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

第四周课程总结

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

对象数组的声明
先定义,再开辟空间
类名称 对象数组名[] = null; 对象数组名 = new 类名称[长度];
 定义并开辟数组
类名称 对象数组名[] = new 类名称[长度
在声明对象数组后 ,必须对每个数组成员进行实例化话 才能直接使用,否则报空指针异常!

String 对象描述
字符串是 JavaScript 的一种基本的数据类型。
String 对象的 length 属性声明了该字符串中的字符数。
String 类定义了大量操作字符串的方法,例如从字符串中提取字符或子串,或者检索字符或子串。
需要注意的是,JavaScript 的字符串是不可变的(immutable),String 类定义的方法都不能改变字符串的内容。像 String.toUpperCase() 这样的方法,返回的>是全新的字符串,而不是修改原始字符串。
在较早的 Netscape 代码基的 JavaScript 实现中(例如 Firefox 实现中),字符串的行为就像只读的字符数组。例如,从字符串 s 中提取第三个字符,可以用 >s[2] 代替更加标准的 s.charAt(2)。此外,对字符串应用 for/in 循环时,它将枚举字符串中每个字符的数组下标(但要注意,ECMAScript 标准规定,不能枚举 >length 属性)。因为字符串的数组行为不标准,所以应该避免使用它。
String类知识点

实验报告:

实验二 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就好了。
实验截图:

posted @ 2019-09-20 19:34  反语ooo  阅读(203)  评论(1编辑  收藏  举报