与java中的point类和driver类混淆
基本上,我必须为它编写一个Point类和一个驱动程序类,这也在eclipse中完成。我遇到的问题是,当我尝试调用“pointX和pointY”变量来更改驱动程序类中的点的值时,我不断地得到一个错误。在我的指令中,变量必须在PointClass中声明为private,但是当试图在PointTest类中调用它们时会出现问题。此外,我还不清楚PointClass中的指针/get&set方法是否正确编写 为了澄清我的要求,以下是我的说明摘要:与java中的point类和driver类混淆,java,class,point,Java,Class,Point,基本上,我必须为它编写一个Point类和一个驱动程序类,这也在eclipse中完成。我遇到的问题是,当我尝试调用“pointX和pointY”变量来更改驱动程序类中的点的值时,我不断地得到一个错误。在我的指令中,变量必须在PointClass中声明为private,但是当试图在PointTest类中调用它们时会出现问题。此外,我还不清楚PointClass中的指针/get&set方法是否正确编写 为了澄清我的要求,以下是我的说明摘要: 写一个Point类。Point类应作为抽象数据类型编写 包括
- 使用无参数构造函数创建Point类型的对象。 称之为点1 使用two参数创建第二个Point类型的对象 构造器。这就是第二点。使用x=11,y=24的值 调用后显示点1实例变量 点1.toString() 调用后显示点2实例变量 点2.toString() 使用x的set方法将点1的x值更改为35 点1的值 调用后显示点1实例变量 点1.toString() 调用后显示点2实例变量 点2.toString() 使用y的set方法将点2的y值更改为13 第2点的值 调用后显示点1实例变量 点1.toString() 调用后显示点2实例变量 点2.toString()
public class PointClass {
private int pointX; //set instance variables
private int pointY;
public void setPoints() { //method to set the points values
pointX = 10;
pointY = 10;
}
public void getPoints(int x, int y){ //method to set arguments to instance variables
pointX = x;
pointY = y;
}
/////////////////////////////////////////////////
public int getPointX() {
return pointX;
}
public void setPointX(int x) {
this.pointX = x;
}
///////////////////////////////////////////////
public int getPointY() {
return pointY;
}
public void setPointY(int y) {
this.pointY = y;
}
///////////////////////////////////////////////
public String toString(){ //toString method to display the values
return "x = " + pointX + "y = " + pointY;
}
}
import java.awt.Point;
public class PointTest{
public static void main(String[] args){
PointClass p = new PointClass();
System.out.print("Lab1 Point");
System.out.print("January 16, 2014");
Point point1 = new Point(); //set point1 as no argument
Point point2 = new Point(11,24); // set point2 as argument with x and y
System.out.print(point1.toString()); //display point1 from toString method
System.out.print(point2.toString()); //display point2 from toString method
point1 = pointX(35);
System.out.print(point1.toString());
System.out.print(point2.toString());
point2.pointY(13);
System.out.print(point1.toString());
System.out.print(point2.toString());
}
}
public class PointClass {
//Set instance variables
private int pointX;
private int pointY;
//Default Constructor - Starts at (0, 0)
public PointClass() {
this.pointX = 0;
this.pointY = 0;
}
//Constructor with specified values
public PointClass(int x, int y){
this.pointX = x;
this.pointY = y;
}
//Setters
public void setPointX(int x) {
this.pointX = x;
}
public void setPointY(int y) {
this.pointY = y;
}
//Getters
public int getPointX() {
return this.pointX;
}
public int getPointY() {
return this.pointY;
}
//toString for use with System.out.println()
public String toString() {
return "x = " + this.pointX + " y = " + this.pointY;
}
}
驾驶员的代码如下所示
public class PointClass {
private int pointX; //set instance variables
private int pointY;
public void setPoints() { //method to set the points values
pointX = 10;
pointY = 10;
}
public void getPoints(int x, int y){ //method to set arguments to instance variables
pointX = x;
pointY = y;
}
/////////////////////////////////////////////////
public int getPointX() {
return pointX;
}
public void setPointX(int x) {
this.pointX = x;
}
///////////////////////////////////////////////
public int getPointY() {
return pointY;
}
public void setPointY(int y) {
this.pointY = y;
}
///////////////////////////////////////////////
public String toString(){ //toString method to display the values
return "x = " + pointX + "y = " + pointY;
}
}
import java.awt.Point;
public class PointTest{
public static void main(String[] args){
PointClass p = new PointClass();
System.out.print("Lab1 Point");
System.out.print("January 16, 2014");
Point point1 = new Point(); //set point1 as no argument
Point point2 = new Point(11,24); // set point2 as argument with x and y
System.out.print(point1.toString()); //display point1 from toString method
System.out.print(point2.toString()); //display point2 from toString method
point1 = pointX(35);
System.out.print(point1.toString());
System.out.print(point2.toString());
point2.pointY(13);
System.out.print(point1.toString());
System.out.print(point2.toString());
}
}
public class PointClass {
//Set instance variables
private int pointX;
private int pointY;
//Default Constructor - Starts at (0, 0)
public PointClass() {
this.pointX = 0;
this.pointY = 0;
}
//Constructor with specified values
public PointClass(int x, int y){
this.pointX = x;
this.pointY = y;
}
//Setters
public void setPointX(int x) {
this.pointX = x;
}
public void setPointY(int y) {
this.pointY = y;
}
//Getters
public int getPointX() {
return this.pointX;
}
public int getPointY() {
return this.pointY;
}
//toString for use with System.out.println()
public String toString() {
return "x = " + this.pointX + " y = " + this.pointY;
}
}
编辑
好吧,在修正了一些东西之后,我仍然有点困惑,因为我仍然得到一个错误,这就是一切应该是什么样子吗
public class PointClass {
private int pointX; //set instance variables
private int pointY;
public void setPoints() { //method to set the points values
pointX = 10;
pointY = 10;
}
public PointClass(int x, int y){ //method to set arguments to instance variables
this.pointX = x;
this.pointY = y;
}
/////////////////////////////////////////////////
public int getPointX() {
return pointX;
}
public void setPointX(int x) {
this.pointX = x;
}
///////////////////////////////////////////////
public int getPointY() {
return pointY;
}
public void setPointY(int y) {
this.pointY = y;
}
///////////////////////////////////////////////
public String toString(){ //toString method to display the values
return "x = " + pointX + "y = " + pointY;
}
}
公共类点测试{
public static void main(String[] args){
System.out.print("Lab1 Point");
System.out.print("January 16, 2014");
PointClass point1 = new PointClass(); //set point1 as no argument
PointClass point2 = new PointClass(11, 24); // set point2 as argument with x and y
System.out.print(point1); //display point1 from toString method
System.out.print(point2); //display point2 from toString method
point1.setPointX(35);
System.out.print(point1);
System.out.print(point2);
point2.setPointY(13);
System.out.print(point1);
System.out.print(point2);
}
}
如果一个成员变量是
private
,您就不能像在这里尝试的那样在它自己的类之外直接访问它
point2.pointY(13);
必须使用编写的public
setter/getter来完成此任务
point2.setPointY(13);
另外,在PointClass
中有一个方法getPoints(intx,inty)
,它实际设置变量。方法名称应更改为setPoints(intx,inty)
此外,您还重写了PointClass
的toString()
方法。因此,您不必显式调用toString()
编辑
public class PointTest {
public static void main(String[] args){
System.out.println("Lab1 Point");
System.out.println("January 17, 2014");
System.out.println();
PointClass point1 = new PointClass(); //set point1 as no argument
PointClass point2 = new PointClass(11, 24); // set point2 as argument with x and y
System.out.println("Point1: " + point1); //display point1 from toString method
System.out.println("Point2: " + point2); //display point2 from toString method
System.out.println();
point1.setPointX(35);
System.out.println("Point1: " + point1);
System.out.println("Point2: " + point2);
System.out.println();
point2.setPointY(13);
System.out.println("Point1: " + point1);
System.out.println("Point2: " + point2);
}
}
删除import java.awt.point;
后,需要向PointClass
添加构造函数
public class PointClass {
private int pointX; //set instance variables
private int pointY;
//
//This is your new constructor
//
public PointClass(int x, int y) {
this.pointX = x;
this.pointY = y;
}
现在您可以像这样创建此类的实例
Point point1 = new Point(11, 24); // Old way - Incorrect
PointClass point1 = new PointClass(11, 24) // Better - This will make objects of your class.
编辑#2
以下是我为你写的最后几节课:
PointClass
public class PointClass {
private int pointX; //set instance variables
private int pointY;
public void setPoints() { //method to set the points values
pointX = 10;
pointY = 10;
}
public void getPoints(int x, int y){ //method to set arguments to instance variables
pointX = x;
pointY = y;
}
/////////////////////////////////////////////////
public int getPointX() {
return pointX;
}
public void setPointX(int x) {
this.pointX = x;
}
///////////////////////////////////////////////
public int getPointY() {
return pointY;
}
public void setPointY(int y) {
this.pointY = y;
}
///////////////////////////////////////////////
public String toString(){ //toString method to display the values
return "x = " + pointX + "y = " + pointY;
}
}
import java.awt.Point;
public class PointTest{
public static void main(String[] args){
PointClass p = new PointClass();
System.out.print("Lab1 Point");
System.out.print("January 16, 2014");
Point point1 = new Point(); //set point1 as no argument
Point point2 = new Point(11,24); // set point2 as argument with x and y
System.out.print(point1.toString()); //display point1 from toString method
System.out.print(point2.toString()); //display point2 from toString method
point1 = pointX(35);
System.out.print(point1.toString());
System.out.print(point2.toString());
point2.pointY(13);
System.out.print(point1.toString());
System.out.print(point2.toString());
}
}
public class PointClass {
//Set instance variables
private int pointX;
private int pointY;
//Default Constructor - Starts at (0, 0)
public PointClass() {
this.pointX = 0;
this.pointY = 0;
}
//Constructor with specified values
public PointClass(int x, int y){
this.pointX = x;
this.pointY = y;
}
//Setters
public void setPointX(int x) {
this.pointX = x;
}
public void setPointY(int y) {
this.pointY = y;
}
//Getters
public int getPointX() {
return this.pointX;
}
public int getPointY() {
return this.pointY;
}
//toString for use with System.out.println()
public String toString() {
return "x = " + this.pointX + " y = " + this.pointY;
}
}
点测试
public class PointTest {
public static void main(String[] args){
System.out.println("Lab1 Point");
System.out.println("January 17, 2014");
System.out.println();
PointClass point1 = new PointClass(); //set point1 as no argument
PointClass point2 = new PointClass(11, 24); // set point2 as argument with x and y
System.out.println("Point1: " + point1); //display point1 from toString method
System.out.println("Point2: " + point2); //display point2 from toString method
System.out.println();
point1.setPointX(35);
System.out.println("Point1: " + point1);
System.out.println("Point2: " + point2);
System.out.println();
point2.setPointY(13);
System.out.println("Point1: " + point1);
System.out.println("Point2: " + point2);
}
}
当我刚刚运行这个时,我得到了这个输出
Lab1 Point
January 17, 2014
Point1: x = 0 y = 0
Point2: x = 11 y = 24
Point1: x = 35 y = 0
Point2: x = 11 y = 24
Point1: x = 35 y = 0
Point2: x = 11 y = 13
在您提供的代码中没有
abstract
Point
类。在您的PointTest
类中,您正在使用/包括java.awt.Point
,它与PointClass
@pshemogood catch>无关!除了getPoints(intx,inty)
使用此方法进行设置时,不应调用设置点(..)。也不需要调用System.out.print(point1.toString());
只需System.out.print(point1)
很好!toString
将被自动调用,更重要的是,他正在导入java.awt.Point
在尝试使用point2.setPointY时仍然会出错。方法pointX(int)类型PointTest未定义这是因为您没有使用pointclass,您的point2是java.awt.point。请尝试在pointclass中创建一个构造函数,并使用它。好的,取出java.awt.point,现在得到这两个错误,point2=新点(11,24)的构造函数点(int,int)未定义
对于point1=setPointX(35);
的类型PointTest,方法setPointX(int)未定义;您需要将其更改为PointClass(int,int)
,因为这是类的名称,并将该构造函数添加到该类中,因为您现在没有构造函数。我将更新我的答案。