如何在java中交换两个日期
这是我的密码。我错过了什么如何在java中交换两个日期,java,Java,这是我的密码。我错过了什么 public class Date { public static void main(String[] args) { Date dt[] = new Date[2]; dt[0] = new Date(1,2,3); dt[1] = new Date(4,5,6); System.out.println("Before: "+dt[0]+" "
public class Date {
public static void main(String[] args) {
Date dt[] = new Date[2];
dt[0] = new Date(1,2,3);
dt[1] = new Date(4,5,6);
System.out.println("Before: "+dt[0]+" "+dt[1]);
swap(dt[0],dt[1]);
System.out.println("After: "+dt[0]+" "+dt[1]);
}
public void swap(Date dArr[]){
Date temp ;
temp = dArr[0];
dArr[0]=dArr[1];
dArr[1]=temp;
}
}
输入:d1=1/2/3 d2=4/5/6
输出:d1=4/5/6 d2=1/2/3{
public class Date {
public static void main(String[] args) {
Date dt[] = new Date[2];
dt[0] = new Date(1,2,3);
dt[1] = new Date(4,5,6);
System.out.println("Before: "+dt[0]+" "+dt[1]);
dt = swap(dt);
System.out.println("After: "+dt[0]+" "+dt[1]);
}
public static Date[] swap(Date dArr[]){
Date temp ;
temp = dArr[0];
dArr[0]=dArr[1];
dArr[1]=temp;
return dArr;
}
}
日期温度;
温度=dArr[0];
dArr[0]=dArr[1];
dArr[1]=温度;
}
您的swap
方法将[]Date
作为参数,并交换给定数组的第一个和第二个元素
现在,您可以这样调用swap
方法:
swap(dt[0],dt[1]);
您实际上传递了两个Date
对象。swap
方法创建一个隐式的[]Date
对象作为输入参数,其第一个元素是dt[0]
,第二个元素是dt[1]
。请注意,此日期数组与您的日期dt[]
不同,它们彼此独立。您可以将Date dArr[]
视为包含两个指向旧Date dt[]
中Date
对象的指针。当您调用dArr[0]=dArr[1]
,只需将指针指向另一个日期对象,就不能影响datedt[]
中的元素
如果要更改原始的日期dt[]
,应将dt本身作为参数传递:
swap(dt)
公共无效掉期(日期为[]){
日期温度;
温度=dArr[0];
dArr[0]=dArr[1];
dArr[1]=温度;
}
您的swap
方法将[]Date
作为参数,并交换给定数组的第一个和第二个元素
现在,您可以这样调用swap
方法:
swap(dt[0],dt[1]);
您实际上传递了两个Date
对象。swap
方法创建一个隐式的[]Date
对象作为输入参数,其第一个元素是dt[0]
,第二个元素是dt[1]
。请注意,此日期数组与您的日期dt[]
不同,它们彼此独立。您可以将Date dArr[]
视为包含两个指向旧Date dt[]
中Date
对象的指针。当您调用dArr[0]=dArr[1]
,只需将指针指向另一个日期对象,就不能影响datedt[]
中的元素
如果要更改原始的日期dt[]
,应将dt本身作为参数传递:
swap(dt)
这个程序的输出是什么?日期是什么样的swap
的类型没有意义:你给它传递两个Date
对象,但是您给我们的swap
的定义需要一个数组。添加日期类代码并检查您要传递的参数它看起来一点都不重要Date
的实现。这个程序的输出是什么?Date
看起来像什么swap
的类型没有意义:您传递两个Date
对象,但是您提供给我们的swap
的定义需要一个数组。添加日期类代码并检查您要传递的参数它看起来根本不重要Date
的实现。它抛出错误:-java:非静态方法swap(日期[])无法从静态上下文引用是的,您无法从静态上下文调用非静态方法,因此我将交换函数设置为static
error fixedIt抛出错误:-java:非静态方法交换(日期[])无法从静态上下文引用是的,您无法从静态上下文调用非静态方法,因此我将交换函数设置为static
错误修复
package le9_ps1;
//import java.util.Date;
/* ********************************************************************** *
* Exercise-9 *
* Objective: Pass parameters to methods - by value and by reference. *
* *
* Pre-condition: Date class should be created. *
* Problem Statement-1: Use the Date class created in Lab Ex1 to Swap two*
* Dates(Hint:use call by value method). *
* ********************************************************************* */
public class Date {
int d,m,y;
public Date(int dd, int mm, int yy) {
this.d= dd;
this.m = mm;
this.y = yy;
}
public static void main(String[] args) {
Date dt[] = new Date[2];
dt[0] = new Date(1,2,3);
dt[1] = new Date(4,5,6);
System.out.println("Before: "+dt[0].d+"/"+dt[0].m+"/"+dt[0].y+ " "+dt[1].d+"/"+dt[1].m+"/"+dt[1].y);
dt=swap(dt);
System.out.println("After: "+dt[0].d+"/"+dt[0].m+"/"+dt[0].y+ " "+dt[1].d+"/"+dt[1].m+"/"+dt[1].y);
}
public static Date[] swap (Date dArr[]){
Date temp ;
temp = dArr[0];
dArr[0] = dArr[1];
dArr[1] = temp;
return dArr;
}
}
output:
"C:\Program Files\Java\jdk-15.0.2\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\lib\idea_rt.jar=1054:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 2020.3.2\bin" -Dfile.encoding=UTF-8 -classpath C:\Users\Tukaram\Desktop\Exercise\ch3_le2\out\production\chapter4 le9_ps1.Date
Before: 1/2/3 4/5/6
After: 4/5/6 1/2/3
Process finished with exit code 0