实验二 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好像不是很难,因为我这样的菜鸡竟然都能写出碎片化的代码了,虽然最终还是靠着度娘和别人的代码填满了自己代码的窟窿吧。但我已心满意足,后面的学习过程中慢慢长进吧!

Java第四周总结+实验报告的更多相关文章

  1. 第四周总结&实验报告二

    第四周总结&实验报告二 课程总结 这周我们学习了string类,以及很多string类的很多操作方法,同时string也是一个对象,在用到它时我们首字母需要大写,这周我们还加深了对函数构造的理 ...

  2. 20145330《Java程序设计》第一次实验报告

    20145330<Java程序设计>第一次实验报告 实验一Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用Eclipse 编辑.编译.运行.调试Ja ...

  3. 20145320《Java程序设计》第一次实验报告

    20145320<Java程序设计>第一次实验报告 北京电子科技学院(BESTI)实验报告 课程:Java程序设计 班级:1453 指导教师:娄嘉鹏 实验日期:2016.04.08 18: ...

  4. 20162308 实验二《Java面向对象程序设计》实验报告

    20162308 实验二<Java面向对象程序设计>实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 ...

  5. 实验三《Java面向对象程序设计》实验报告

    20162308 实验三<Java面向对象程序设计>实验报告 实验内容 XP基础 XP核心实践 IDEA工具学习 密码学算法基础 实验步骤 (一)Refactor/Reformat使用 p ...

  6. 20162330 实验二 《Java面向对象程序设计》 实验报告

    2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验二 <Java面向对象程序设计> 实验报告 课程名称:<程序设计与数据结构> 学生班级:162 ...

  7. 2018-2019-2 20175217 实验二《Java面向对象程序设计》实验报告

    一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:吴一凡 学号:20175217 指导教师:娄嘉鹏 实验日期:2019年4月15日 实验时间:--- 实验序号:实验二 实验名称:Jav ...

  8. 20175209 实验二《Java面向对象程序设计》实验报告

    20175209 实验二<Java面向对象程序设计>实验报告 一.实验前期准备 了解三种代码 伪代码 产品代码 测试代码 我们先写伪代码,伪代码 从意图层面来解决问题: 有了伪代码 我们用 ...

  9. 20175315 实验二《Java面向对象程序设计》实验报告

    20175315 实验二<Java面向对象程序设计>实验报告 一.实验内容及步骤 1.初步掌握单元测试和TDD 单元测试 任务一:三种代码 用程序解决问题时,要学会写以下三种代码: 伪代码 ...

随机推荐

  1. 第四篇:存储库之mongodb、redis、mysql

    MongoDB的简单操作 一.简介 二.MongoDB基础知识 三.安装 四.基本数据类型 五.增删改查操作 六.可视化工具 七.pymongo 一.简介 MongoDB是一款强大.灵活.且易于扩展的 ...

  2. 用Chrome 浏览器调试移动端网页 chrome://inspect/#devices

    谷歌输入(chrome://inspect/#devices) 我使用的是小米(红米NOTE2 ),电脑是win 10 系统,以下几步就可以轻松使用浏览器内置的功能调试移动端网页了: 1. 手机开启调 ...

  3. 基于gtid复制主要操作记录

    基于gtid复制主要操作记录 一.安装系统依赖包 在主从上都要安装该依赖包. yum -y install perl-DBI yum -y install perl-DBD-MySQL yum -y ...

  4. Python如何快速初始化一个二维数组

    正确的方法 cols= 3 rows = 2 memo = [[1] * m for i in range(n) ] 下面这种做法是错误的 memo = [[1] * m ] * n 这会导致 mem ...

  5. node.js入门学习(一)环境安装,REPL,fs模块,path模块,http模块

    一.node.js介绍 1.1.node.js是什么 官网首页总结:Node.js® 是一个基于 Chrome V8 引擎 的 JavaScript 运行时. 1)node.js是一个开发平台,就像j ...

  6. CSS无图片三角形

    border:6px solid #f2f2f2; border-color:#999 transparent transparent transparent; border-style:solid ...

  7. CF718C Sasha and Array 线段树 + 矩阵乘法

    有两个操作: 将 $[l,r]$所有数 + $x$ 求 $\sum_{i=l}^{r}fib(i)$ $n=m=10^5$   直接求不好求,改成矩阵乘法的形式:  $a_{i}=M^x\times ...

  8. 【Leetcode】最大的数

    字符串比较大小 https://blog.csdn.net/jason_cuijiahui/article/details/79038468 http://www.cplusplus.com/refe ...

  9. [BZOJ4695]最假女选手:segment tree beats!

    分析 segment tree beats!模板题. 看了gxz的博客突然发现自己写的mxbt和mnbt两个标记没用诶. 代码 #include <bits/stdc++.h> #defi ...

  10. PO,BO,VO和POJO的区别

    PO:persistent object 持久对象 1 .有时也被称为Data对象,对应数据库中的entity,可以简单认为一个PO对应数据库中的一条记录. 2 .在hibernate持久化框架中与i ...