实验二 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。定义该类,并要求该类提供如下方法:存款、取款、变更密码、可以分别查询账户的标识、姓名、开户日期、当前余额等信息。
实验过程
第①题实验代码:
package o;
public class a
{
public static void main(String[] args)
{
Rectangle re = new Rectangle();
re.get();
double a =re.getArea();
System.out.println(a);
double b =re.getLength();
System.out.println(b);
}
}
class Rectangle {
double width;
double heigh;
String color;
Rectangle() {
this.width=3;
this.heigh=4;
this.color="Red";
}
public void get(){
System.out.println("rec "+this.width);
System.out.println("higher "+this.heigh);
System.out.println("color "+this.color);
}
public void setwidth(double single) {
this.width=single;
}
public void setheigh(double single) {
this.heigh=single;
}
public void setcolor(String single) {
this.color=single;
}
public double getArea() {
return this.width*this.heigh;
}
public double getLength(){
return this.width*1+this.heigh*2;
}
}
运行截图:
第②题实验代码:
package o;
public class a
{
public static void main(String[] args)
{
Account re = new Account("boniu","hl",2019,9,20,"123456",2000);
re.setAll();
re.changebalance(0.05);
re.setAll();
re.changepsd("123456");
re.setAll();
}
}
class Account
{
String ID;
String psd;
int year;
String name;
double balance;
int month;
int day;
Account()
{
this.ID="boniu";
this.name="null";
this.year=0;
this.month=0;
this.day=0;
this.psd="null";
this.balance=0;
}
Account(String ID, String name, int year, int month, int day, String psd, double balance)
{
this.ID = ID;
this.name = name;
this.year = year;
this.month = month;
this.day = day;
this.psd = psd;
this.balance = balance;
}
public void changebalance(double single)
{
this.balance += single;
}
public void changepsd(String single)
{
this.psd = single;
}
public void setAll()
{
System.out.println(this.ID);
System.out.println(this.name);
System.out.println(this.year+"."+this.month+"."+this.day);
System.out.println("balance:"+this.balance);
}
}
运行截图:
总结
这周所学及小拓展:
一、java中的String类
①字符加密
代码
package o;
import java.util.Scanner;
public class a {
public static void main(String args[]){
Scanner in=new Scanner(System.in);
System.out.print("输入字符串:");
String str=in.next();
int i;
char b[]=new char[50];
System.out.print("加密后为:");
for(i=0;i<str.length();i++)
{
b[i]=str.charAt(i);
b[i]+=3;
if(b[i]-'a'>25)
b[i]-=26;
System.out.print(b[i]);
}
}
}
运行截图
将输入的字符串中的每个字符加3,输出,实现字串的加密,大于26的字符,减去26返回。
②String equals()方法
用来判断两个对象是否一样,对其所指向的地址也能判断是否相等,而“==”判等符号只可以判断两个对象的值是否相等。
代码
public class StringEquals
{
public static void main(String[] args)
{
String s1=new String("Hello");
String s2=new String("Hello");
System.out.println(s1==s2);
System.out.println(s1.equals(s2));
String s3="Hello";
String s4="Hello";
System.out.println(s3==s4);
System.out.println(s3.equals(s4));
}
}
当分别new两个对象时,这两个对象所指向的存储地址不一样,开辟了新的存储单元,而“”只能判断值是否相等,所以第一个会输出错误,而equals()判断两个对象是否完全一样,包括值和地址,第二个输出true。当只String两个相同字符串时,这两个字符串指向的是同一个地址,即用“”和equals()都输出true。
③String类的一些使用说明
CharAt() 获取指定位置字符
Length() 取字串的长度
GetChars() 获取制定未知的字串复制到字符串数组中。
toUpperCase(),toLowerCase)() 大小写的转换
trim() 去除头尾空格
Replace() 字串替换
toCharArray() 字符串转换为字符数组。
小总结:这周主要是“重”做了一下上次作业的7个题目,以为能一气呵成的写下去,结果边写边出现一片一片的红叉叉。在室友的帮助下我还是完成了三个题目,为什么看别人写的代码,看得懂,自己写的时候却总是错呢?...这周的题目我觉得emmmm好像不是很难,因为我这样的菜鸡竟然都能写出碎片化的代码了,虽然最终还是靠着度娘和别人的代码填满了自己代码的窟窿吧。但我已心满意足,后面的学习过程中慢慢长进吧!