第四周课程总结&试验报告(二)
(一)学习总结:
这一周学习的知识点一、有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;
}
}
}
}