class SimpleTime {
private int hour, minute, second;
public SimpleTime( int hour, int minute, int second) { // bad naming but ..
this.hour = hour;
this.minute = minute;
this.second = second;
}
...
}
//instance 변수 hour와 parameter hour
-> this는 또한 메소드로 사용 가능. 오버로딩과 함께 사용한다. 다음 코드를 보자.
public class Time2Test
{
public static void main( String[] args)
{
Time2 t1 = new Time();
Time2 t2 = new Time(2);
Time2 t3 = new Time(21, 34);
Time2 t4 = new Time(12, 25, 42);
Time2 t5 = new Time(27, 74, 99);
Time2 t6 = new Time(t4);
System.out.printLn("Constructed with:");
System.out.printLn("t1: all arguments defaulted");
System.out.printLn("%s\n", t1.toUniversalString());
System.out.printLn("%s\n", t1.toString());
System.out.printLn(
"t2: hour specified; minute and second defaulted" );
System.out.printLn("%\n", t2.toUniversalString());
System.out.printLn("%s\n", t2.toString());
}
}
public class Time2
{
private int hour;
private int minute;
private int second;
//밑에 있는 것들은 다 생성자들임. 다만 overloading이기 때문에, parameter들은 다 다름.
public Time2()
{
this(0, 0, 0);
}
public Time2(int h)
{
this(h, 0, 0);
}
public Time2(int h, int m)
{
this(h, m, 0);
}
public Time2(int h, int m, int s)
{
this(h, m, s);
}
public Time2(Time2 time)
{
this(time.getHour(), time.getMinute(), time.getSecond());
//요거는 저런 메소드가 있다고 가정하고 써놓은거임.
}
}
static은 프로그램이 실행될 때 메모리 영역에 할당되므로, 인스턴스 과정(객체생성)없이 모두가 접근할 수 있는 공유자원인 것이다.
여기서 추가로 볼 것은, 모두가 접근할 수 있는 공유자원이기 때문에 static에는 this라는 내것이라는 개념이 존재하지 않는다.
[출처] https://gangnam-americano.tistory.com/20