class Program
{
public class Time
{
private int hour;
private int minute;
private int second;
public Time()
{
//以下3个this指针可以省略
this.hour = 0;
this.minute = 0;
this.second = 0;
}
public Time(int hour, int minute, int second)
{
//以下3个this指针不能省略
this.hour = hour;
this.minute = minute;
this.second = second;
}
public int Hour
{
get
{
return this.hour;
}
set
{
this.hour = value;
}
}
public int Minute
{
get
{
return this.minute;
}
set
{
this.minute = value;
}
}
public int Second
{
get
{
return this.second;
}
set
{
this.second = value;
}
}
public void printStandard()
{
Console.WriteLine("Standard print:");
Console.WriteLine("{0}:",(hour==0||hour==12)?hour:hour%12);
Console.WriteLine("{0}{1}:",minute<0?"0":"",minute);
Console.WriteLine("{0}{1}:",second<10?"0":"",second);
Console.WriteLine("{0}",hour<12?"AM":"PM");
}
public void printMilitary()
{
//本方法只能使用this指针
ConvertToMilitary.printMilitary(this);
}
}
public class ConvertToMilitary
{
public static void printMilitary(Time time)
{
Console.WriteLine("Military print:");
Console.WriteLine("{0}{1}:", time.Hour < 10 ? "0" : "", time.Hour);
Console.WriteLine("{0}{1}:", time.Minute < 0 ? "0" : "", time.Minute);
Console.WriteLine("{0}{1}:", time.Second < 10 ? "0" : "", time.Second);
}
}
static void Main(string[] args)
{
Time t1 = new Time(13, 23, 45);
Console.WriteLine("t1:");
t1.printStandard();
t1.printMilitary();
}请问哪位高手教教我为什么默认的构造函数this可以省略而构造函数不能,还有ConvertToMilitary.printMilitary(this)中的this到底是什么意思
{
public class Time
{
private int hour;
private int minute;
private int second;
public Time()
{
//以下3个this指针可以省略
this.hour = 0;
this.minute = 0;
this.second = 0;
}
public Time(int hour, int minute, int second)
{
//以下3个this指针不能省略
this.hour = hour;
this.minute = minute;
this.second = second;
}
public int Hour
{
get
{
return this.hour;
}
set
{
this.hour = value;
}
}
public int Minute
{
get
{
return this.minute;
}
set
{
this.minute = value;
}
}
public int Second
{
get
{
return this.second;
}
set
{
this.second = value;
}
}
public void printStandard()
{
Console.WriteLine("Standard print:");
Console.WriteLine("{0}:",(hour==0||hour==12)?hour:hour%12);
Console.WriteLine("{0}{1}:",minute<0?"0":"",minute);
Console.WriteLine("{0}{1}:",second<10?"0":"",second);
Console.WriteLine("{0}",hour<12?"AM":"PM");
}
public void printMilitary()
{
//本方法只能使用this指针
ConvertToMilitary.printMilitary(this);
}
}
public class ConvertToMilitary
{
public static void printMilitary(Time time)
{
Console.WriteLine("Military print:");
Console.WriteLine("{0}{1}:", time.Hour < 10 ? "0" : "", time.Hour);
Console.WriteLine("{0}{1}:", time.Minute < 0 ? "0" : "", time.Minute);
Console.WriteLine("{0}{1}:", time.Second < 10 ? "0" : "", time.Second);
}
}
static void Main(string[] args)
{
Time t1 = new Time(13, 23, 45);
Console.WriteLine("t1:");
t1.printStandard();
t1.printMilitary();
}请问哪位高手教教我为什么默认的构造函数this可以省略而构造函数不能,还有ConvertToMilitary.printMilitary(this)中的this到底是什么意思
int hour1, int minute1, int second1
那么也可以省略this
编译器无法区分2.this代表传入的time类
比如time a = new time();
a.printMilitary这个方法内部操作的对象就是a
ConvertToMilitary.printMilitary(this)中的this到底是什么意思
=======
当前的 Time 对象实例