图布局算法 java_java – 简单的UML图…这个布局是否正确?

我是第一次为

Java课程介绍创建一个UML图.我无法弄清楚我的课程是否正确指向对方.

Guitar类应该指向测试类吗?另外,吉他课应该在考试的左边吗?任何指针都非常感谢,谢谢.

代码如下

package guitartest;

import java.util.Scanner;

public class Guitar {

// Declare variables

private int numberOfStrings;

private String stringName;

private boolean isTuned;

private boolean isPlaying;

private boolean isPlucking;

// Construct a guitar and set boolean fields to "false"

public Guitar(){

this.isTuned = false;

this.isPlaying = false;

this.isPlucking = false;

} // end constructor

// Prompt user to enter number of strings

public int getNumberOfStrings() {

Scanner sc = new Scanner(System.in);

// Loop continues until a positive integer is entered

do {

System.out.println("Enter number of strings in integer format");

while (!sc.hasNextInt()) {

System.out.println("Error! That's not a number!");

sc.next();

} // end while

numberOfStrings = sc.nextInt();

} // end do-while loop

while (numberOfStrings <= 0);

return numberOfStrings;

} // end method getNumberOfStrings

// Prompt user to enter string names

public String getStringName() {

Scanner sc = new Scanner(System.in);

// Loop continues until all strings are named

for (int i = 0; i < numberOfStrings; i++){

System.out.println("Enter string name");

// Error if input is not a character

while (!sc.hasNext("[A-Za-z]")) {

System.out.println("Error! That's not a character!");

sc.next();

}

stringName = sc.next();

} // end for loop

return stringName;

} // end method getStringName

// Verifies tuning status

public boolean tuneInstrument(){

return isTuned;

} // end method tuneInstrument

// Tune guitar

public void setTuned(boolean isTuned) {

this.isTuned = isTuned;

} // end method setTuned

// Verifies instrument is playing

public boolean playInstrument(){

return isPlaying;

} // end method playInstrument

//

public void startPlayingInstrument(){

isPlaying = true;

} // end method startPlayingInstrument

public boolean pluckInstrument(){

return isPlucking;

} // end method pluckInstrument

public void startPlucking(){

isPlucking = true;

} // end method startPlucking

// Stop instrument

public void stopInstrument(){

isPlaying = false;

} // end method stopInstrument

} // end class Guitar

测试类如下:

package guitartest;

import java.util.Scanner;

// Scanner is in the java.util package

public class GuitarTest {

public static void main(String[] args) {

// Create 10 guitar objects

Guitar[] guitar = new Guitar[10];

for (int i = 0; i < guitar.length; i++){

guitar[i] = new Guitar();

// Call methods in Guitar class

guitar[i].getNumberOfStrings();

guitar[i].getStringName();

System.out.println("Is the guitar tuned? " + guitar[i].tuneInstrument());

System.out.println("Guitar is being tuned. Please wait...");

guitar[i].setTuned(true);

System.out.println("Is the guitar tuned? " + guitar[i].tuneInstrument());

System.out.println("Is the guitar playing? " + guitar[i].playInstrument());

System.out.println("Please wait for guitar to play...");

guitar[i].startPlayingInstrument();

System.out.println("Is the guitar playing? " + guitar[i].playInstrument());

System.out.println("Is the guitar being plucked? " + guitar[i].pluckInstrument());

System.out.println("Please wait for guitar to be plucked...");

guitar[i].startPlucking();

System.out.println("The guitar is playing and being plucked. " + guitar[i].pluckInstrument());

System.out.println("Stopping guitar from playing...");

guitar[i].stopInstrument();

System.out.println("Is the guitar playing? " + guitar[i].playInstrument());

} // end for loop

} // end method main

} // end class GuitarTest

最佳答案 你有一个主要问题 – 方向不应该是从吉他到吉他测试而是逆转 – 从GuitarTest到吉他(因为你在测试中使用吉他).你也忘记了GuitarTest.main的论点(显然不那么重要).

@milesma在评论中指出我最初是不正确的,我同意他的观点:

GuitarTest indeed used Guitar, but that is “Dependency” relationship.

(draw dashed line from Client to Supplier, in this example, from

GuitarTest to Guitar, which means, if Guitar changed, GuitarTest must

change); However, I don’t think use Guitar in the function body is a

dependency. (If Guitar is used as method’s parameter, return type etc,

then Dependency is guaranteed.). IMHO, there is no relationships

between.

更好地查看更正确的@milesma答案.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值