java - (乌龟的)类型未定义
问题描述
嗨,我正在为我的班级做作业,但在最后一部分遇到了一些麻烦。这部分我正在编写代码来绘制一些阶段并放入一个具有图片背景和一些自定义功能的世界。阶段的代码是我认为的问题。你们可以检查并帮助我吗?
import java.awt.Color;
public class FaceCaptions
{
public static void main(String [] args)
{
String filename;
if (args.length > 0) {
// got a filename passed into program as a runtime parameter
filename = args[0];
System.out.println("Filename passed in: " + filename);
} else {
// ask user for a picture
filename = FileChooser.pickAFile();
System.out.println("User picked file: " + filename);
}
// use the filename to create the picture object
Picture pic = new Picture(filename);
pic.show();
Turtle tim = new Turtle(424,906,pic);
tim.setPenColor(Color.red);
tim.setPenWidth(6);
tim.penDown();
tim.moveTo(440,1046);
tim.moveTo(522,1133);
tim.moveTo(597,1133);
tim.moveTo(671,1063);
tim.moveTo(688,1009);
tim.moveTo(698,882);
tim.moveTo(657,790);
tim.moveTo(495,771);
tim.moveTo(424,906);
// draw the features
tim.moveTo(450, 910);
tim.drawEyeglasses(450, 910, 5, Color.white);
tim.moveTo(505, 1020);
tim.drawMustache(505,1020, 2, Color.black);
//Create Phase 1
tim.moveTo(400,1300);
tim.turnLeft();
tim.drawPhase1();
//Create Phase 2
tim.moveTo(300,1450);
tim.drawPhase2();
}
public static void drawPhase1()
{
TurtleAlphabet.drawABoldSize(tim, Color.blue, true, 1);
TurtleAlphabet.drawWBoldSize(tim, Color.white, true, 1);
TurtleAlphabet.drawKBoldSize(tim, Color.red, true, 1);
TurtleAlphabet.drawWBoldSize(tim, Color.blue, true, 1);
TurtleAlphabet.drawABoldSize(tim, Color.white, true, 1);
TurtleAlphabet.drawRBoldSize(tim, Color.red, true, 1);
TurtleAlphabet.drawDBoldSize(tim, Color.blue, true, 1);
}
public static void drawPhase2()
{
TurtleAlphabet.drawABoldSize(tim, Color.yellow, true, 1);
TurtleAlphabet.drawWBoldSize(tim, Color.orange, true, 1);
TurtleAlphabet.drawABoldSize(tim, Color.yellow, true, 1);
TurtleAlphabet.drawRBoldSize(tim, Color.orange, true, 1);
TurtleAlphabet.drawDBoldSize(tim, Color.yellow, true, 1);
}
}
这是系统的响应:
File: C:\Users\nhock\Desktop\School Work\UNCC Fall 2018\1212\ITIS_1212\bookClasses\FaceCaptions.java [line: 45]
Error: The method drawPhase1() is undefined for the type Turtle
File: C:\Users\nhock\Desktop\School Work\UNCC Fall 2018\1212\ITIS_1212\bookClasses\FaceCaptions.java [line: 50]
Error: The method drawPhase2() is undefined for the type Turtle
File: C:\Users\nhock\Desktop\School Work\UNCC Fall 2018\1212\ITIS_1212\bookClasses\FaceCaptions.java [line: 55]
Error: Turtle cannot be resolved to a variable
File: C:\Users\nhock\Desktop\School Work\UNCC Fall 2018\1212\ITIS_1212\bookClasses\FaceCaptions.java [line: 56]
Error: tim cannot be resolved to a variable
File: C:\Users\nhock\Desktop\School Work\UNCC Fall 2018\1212\ITIS_1212\bookClasses\FaceCaptions.java [line: 57]
Error: tim cannot be resolved to a variable
etc..
解决方案
tim.drawPhase1()
并tim.drawPhase2()
调用Turtle类中的方法或intertited方法,似乎这些方法是在类Turtle上定义的,修改代码以静态使用drawPhase1,2方法并传递Turtle实例
FaceCaptions.drawPhase1(tim);
FaceCaptions.drawPhase2(tim);
public static void drawPhase1(Turtle tim){
TurtleAlphabet.drawABoldSize(tim, Color.blue, true, 1);
TurtleAlphabet.drawWBoldSize(tim, Color.white, true, 1);
TurtleAlphabet.drawKBoldSize(tim, Color.red, true, 1);
TurtleAlphabet.drawWBoldSize(tim, Color.blue, true, 1);
TurtleAlphabet.drawABoldSize(tim, Color.white, true, 1);
TurtleAlphabet.drawRBoldSize(tim, Color.red, true, 1);
TurtleAlphabet.drawDBoldSize(tim, Color.blue, true, 1);
}
public static void drawPhase2(Turtle tim){
TurtleAlphabet.drawABoldSize(tim, Color.yellow, true, 1);
TurtleAlphabet.drawWBoldSize(tim, Color.orange, true, 1);
TurtleAlphabet.drawABoldSize(tim, Color.yellow, true, 1);
TurtleAlphabet.drawRBoldSize(tim, Color.orange, true, 1);
TurtleAlphabet.drawDBoldSize(tim, Color.yellow, true, 1);
}
推荐阅读
- arrays - 数组公式中的Excel整列引用太慢,不尊重UsedRange?
- spell-checking - 如何获取 TextBlob 结果中的文本?
- vba - 在电子邮件中插入链接(来自单元格)作为图像
- react-native - 每次我从抽屉中单击它时都需要重新渲染的 Home 组件 [react native]
- google-apps-script - 谷歌表格的保护脚本问题 - 无法读取未定义的属性“getRange”
- mysql - 联合三表和总和列值
- python - MongoEngine - 如何确保文档已保存?
- javascript - 有条件的 if else 列出反应中的数据
- go - 无法为 golang 设置 gitlab ci
- jaeger - jaeger 可用于跟踪端到端事务,底层组件使用轮询和回调来完成事务的步骤