实验二 Java简单类与对象
•实验目的
•掌握类的定义,熟悉属性、构造函数、方法的作用,掌握用类作为类型声明变量和方法返回值;
•理解类和对象的区别,掌握构造函数的使用,熟悉通过对象名引用实例的方法和属性;
•理解static修饰付对类、类成员变量及类方法的影响。
•实验内容
1.写一个名为Rectangle的类表示矩形。其属性包括宽width、高height和颜色color,width和height都是double型的,而color则是String类型的。要求该类具有:
(1) 使用构造函数完成各属性的初始赋值
(2) 使用get…()和set…()的形式完成属性的访问及修改
(3) 提供计算面积的getArea()方法和计算周长的getLength()方法
实验代码
package text2;
public class Rectangle {
private double width;
private double height;
private String color;
public Rectangle(double width, double height, String color) {
this.width = width;
this.height = height;
this.color = color;
}
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() {
return width*height;
}
public double getLength() {
return (width+height)*2;
}
}
package text2;
public class Text2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Rectangle per=null;
per=new Rectangle(5,10,"red");
System.out.println(""+per.getWidth());
System.out.println("height:"+per.getHeight());
System.out.println("color:"+per.getColor());
System.out.println("面积:"+per.getArea());
System.out.println("周长:"+per.getLength());
}
}
运行结果
2.银行的账户记录Account有账户的唯一性标识(11个长度的字符和数字的组合),用户的姓名,开户日期,账户密码(六位的数字,可以用0开头),当前的余额。银行规定新开一个账户时,银行方面提供一个标识符、账户初始密码123456,客户提供姓名,开户时客户可以直接存入一笔初始账户金额,不提供时初始余额为0。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
实验代码
package text3;
import java.util.Scanner;
import java.util.Date;
public class Account {
private String id;
private String name;
private Date date;
private int password;
private int money;
public Account(String id, String name, int money) {
super();
this.id = id;
this.name = name;
this.money = money;
this.date = new Date();
this.password = 123456;
}
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 void jin(int num) {
this.money = this.money+num;
}
public void chu(int num) {
this.money = this.money-num;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
public int getMoney() {
return money;
}
public void setMoney(int money) {
this.money = money;
}
public int getPassword() {
return password;
}
public void setPassword(int password) {
this.password = password;
}
public void mima() {
Scanner sc=new Scanner(System.in);
int password=sc.nextInt();
this.password = password;
sc.close();
}
}
package text3;
public class Text3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Account per=null;
per=new Account("happyday123","Alice",0);
per.jin(2000);
per.chu(500);
per.mima();
System.out.println("标识符:"+per.getId());
System.out.println("姓名:"+per.getName());
System.out.println("日期:"+per.getDate());
System.out.println("余额:"+per.getMoney());
System.out.println("密码:"+per.getPassword());
}
}
运行结果
实验过程
在这次实验的过程中加深了对于构造方法的理解,和对于getter和setter的了解,对于第一个题目,做起来还好,但是第二个题目,知道要干嘛但不知道怎么下手,这是还是对于类不是特别明白的原因,还有构造方法,但是还是学到了不少,例如date,对于日期的一个写法,还有就是改变密码的值,但也不是完全理解了。继续加油吧
总结:
本周主要是学习了String类
一、学习了两种为String赋值的方法;
1)
String str="Alice";
String str=new String("Alice");
二、String里的“==”是进行地址之间的比较,而不能直接比较内容,如果要比较内容需要需要使用到方法。public boolean equals(String str);
三、String一旦定义了,他的内容不可改变。
四、有关String里的一些方法。
还有学习了对象数组
类 对象数组名称[]=new 类[数组长度]
数据类型 数组名称[]=null;
数组名称=new 数据类型[长度];
包的基本概念,用法
包的定义:package 包名称.子包名称;
编译的时候要如下
javac -d . 名称.java
类的导入主要用 import.
import 包名称.子包名称.类名称;或
import 包名称.子包名称.*; //自动加载所需类
还了解Java的常用系统包。