实验目的:
- 熟悉数组和不规则数组
- 熟悉类和对象的建立
- 掌握构造函数和重载构造函数
实验内容:
- 编写一个Java程序,实现下三角乘法口诀表,并用不规则数组保存,并用foreach语句显示该数组,同时用Arrays.deepToString函数将该数组转换成字符串并显示,执行结果如下图
- 设计一个名为Rectangle的类表示矩形,这个类包括:
两个名为width和height的double型数据域,它们分别表示矩形的宽和高width和height的默认值都为1
创建默认矩形的无参构造方法
一个创建width和height为指定值得矩形构造方法
一个名为getArea()的方法返回这个矩形的面积
一个名为getPerimeter()的方法返回周长
编写一个测试程序,创建两个Rectangle对象(一个用无参构造函数,一个用有参构造函数),一个矩形的宽为4、高为40,另一个宽为3.5,高为35.9。按顺序显示每个矩形的宽、高、面积和周长
- 设计一个名为Account的类,它包括:
- 一个名为id的int类型私有数据域
- 一个名为balance的double类型私有数据域
- 一个名为annualInterestRate的double类型私有数据域存储当前利率(默认值为0),假设所有账户都有相同利率
- 一个名为dateCreated的Date类型的私有数据域,存储账户的开户日期
- 一个用于创建默认账户的无参数构造方法
- 一个用于创建带特定id和初始余额的账户的构造方法
- id、balance和annualInterestRate的访问器和修改器
- dateCreated的访问器
- 一个名为getMonthlyInterestRate()的方法,返回月利率
- 一个名为withDraw的方法,从账户提取特定数额
- 一个名为desposit的方法,向账户存储特定数额
- 编写一个测试程序,创建一个账户id为1122,余额为20000元,年利息是4.5%的Account对象,使用withDraw方法存取2500元,使用desposit方法存入3000元,然后打印余额,月利息以及这个账户的开户日期
提示:月利息=balance*MonthlyInterestRate
MonthlyInterestRate=annualInterestRate/12/100
要求日期显示格式如下图:
- 编写一个程序,读入10个数并且显示互不相同的数(即一个数出现多次,但只显示一次)。提示:读入一个数,如果它是一个新数,如果它是一个新数,则将它存储在新数中,如果该数已经在数组中,则忽略它。输入之后,数组包含的都是不同的数
import java.util.Arrays;
public class Multiply {
public static void main(String[] args) {
final int NMAX = 9;
int[][] odds = new int[NMAX][];
for (int n = 0; n < NMAX; n++)
odds[n] = new int[n+1];
for (int n = 0; n < odds.length; n++)
for (int k = 0; k < odds[n].length; k++)
{
odds[n][k]=(n+1)*(k+1);
}
for (int[] row : odds)
{
for (int odd : row)
System.out.printf("%4d", odd);
System.out.println();
}
System.out.println(Arrays.deepToString(odds));
}
}
public class Test {
public static void main(String[] args) {
MyRectangle myRectangle = new MyRectangle();
myRectangle.width=4;
myRectangle.height=40;
System.out.println("宽:" + myRectangle.width + " 高: " +
myRectangle.height + " 面积: " +
myRectangle.getArea());
System.out.println("周长: " +
myRectangle.getPerimeter());
MyRectangle yourRectangle = new MyRectangle(3.5, 35.9);
System.out.println("宽:" + yourRectangle.width + " 高: " +
yourRectangle.height + " 面积: " +
yourRectangle.getArea());
System.out.println("周长: " +
yourRectangle.getPerimeter());
}
}
class MyRectangle {
double width = 1, height = 1;
public MyRectangle() {
}
public MyRectangle(double newWidth, double newHeight) {
width = newWidth;
height = newHeight;
}
public double getArea() {
return width * height;
}
public double getPerimeter() {
return 2 * (width + height);
}
}
public class AccountTest {
public static void main(String[] args) {
Account account = new Account(1122, 20000);
Account.setAnnualInterestRate(4.5);
account.withdraw(2500);
account.deposit(3000);
System.out.println("Balance is " + account.getBalance());
System.out.println("Monthly interest is " +
account.getMonthlyInterest());
System.out.printf("%1$s %2$tY %2$tB %2$te,%2$tR ","This account was created at ",account.getDateCreated());
}
}
class Account {
private int id;
private double balance;
private static double annualInterestRate;
private java.util.Date dateCreated;
public Account() {
dateCreated = new java.util.Date();
}
public Account(int newId, double newBalance) {
id = newId;
balance = newBalance;
dateCreated = new java.util.Date();
}
public int getId() {
return this.id;
}
public double getBalance() {
return balance;
}
public static double getAnnualInterestRate() {
return annualInterestRate;
}
public void setId(int newId) {
id = newId;
}
public void setBalance(double newBalance) {
balance = newBalance;
}
public static void setAnnualInterestRate(double newAnnualInterestRate) {
annualInterestRate = newAnnualInterestRate;
}
public double getMonthlyInterest() {
return balance * (annualInterestRate / 1200);
}
public java.util.Date getDateCreated() {
return dateCreated;
}
public void withdraw(double amount) {
balance -= amount;
}
public void deposit(double amount) {
balance += amount;
}
}
import java.util.Scanner;
public class DelRepeat {
public static void main(String[] args) {
int[] numbers = new int[10];
int numberOfDistinctValues = 0;
Scanner input = new Scanner(System.in);
System.out.print("Enter " + numbers.length + " numbers: ");
for (int i = 0; i < numbers.length; i++) {
int value = input.nextInt();
boolean isInTheArray = false;
for (int j = 0; j < numberOfDistinctValues; j++) {
if (value == numbers[j]) {
isInTheArray = true;
}
}
if (!isInTheArray) {
numbers[numberOfDistinctValues] = value;
numberOfDistinctValues++;
}
}
System.out.println("The number of distinct values is " + numberOfDistinctValues);
for (int i = 0; i < numberOfDistinctValues; i++)
System.out.print(numbers[i] + " ");
}
}