static
- class
methodno static
- instance
methodclass Print{
public String delimiter;
public void a() {
System.out.println(delimiter);
System.out.println("a");
System.out.println("a");
}
public void b() {
System.out.println(delimiter);
System.out.println("b");
System.out.println("b");
}
public static void c(String delimiter) {
System.out.println(delimiter);
System.out.println("c");
System.out.println("c");
}
}
public class static_no_static {
public static void main(String[] args) {
Print.c("&");
Print t1 = new Print();
t1.delimiter = "-";
t1.a();
t1.b();
}
}
&
c
c
-
a
a
-
b
b
static
인 c 메서드는 클래스 메서드
no static
인 a, b 메서드는 인스턴스 메서드
public class Singleton {
static private Singleton instance = null;
private int count = 0;
static public Singleton get() {
if(instance == null) {
instance = new Singleton();
}
return instance;
}
public void count() {count ++;}
public int getCount() {return count;}
}
public class Singleton2{
public static void main(String[] args) {
Singleton s1 = Singleton.get();
s1.count();
Singleton s2 = Singleton.get();
s2.count();
Singleton s3 = Singleton.get();
s3.count();
System.out.print(s1.getCount());
}
}
3
Singleton 클래스가 붕어빵 틀 -> 클래스
t1이 위의 틀로 만들어낸 붕어빵 1번 -> 인스턴스(객체)
t2라는 이름으로 하나 더 찍어내면 붕어빵 2번 -> 인스턴스(객체)
붕어빵 1번과 2번은 모양은 같으나 서로 다른 녀석(객체)이다.
Singleton 클래스(형태)의 인스턴스(객체)는? t1, t2