package statics;
public class Car {
private String name;
private String maker;
public static String makerName = "HD";
//static은 객체가 생성될 때 관여하지 않음.
//클래스는 static을 소유한다. 아래 다시 언급
//Car는 name과 maker를 갖고 있고 Car가 만드는 object는 두가지 속성을 갖고 있다.
//그러나 Static은 class가 갖고 있는 "별도"의 객체다!
//따라서 Car로 만들어지는 객체에 부여되는 속성은 아니다. 객체 생성과는 관계가 없어!
//static을 사용하고 싶을 때 어떠한 클래스에서도(같은 패키지) Car.static명으로 쓸 수 있다.
//static이 많아져도 유지보수가 어려워짐. utility성격으로만 많이 사용함.
//static함수 내에서 사용되는 변수도 static변수여야 한다.
public Car() {
}
public Car(String name) {
this.name = name;
}
public Car(String name, String maker) {
this.name = name;
this.maker = maker;
}
@Override
public String toString() {
return "Car [name=" + name + ", maker=" + maker + "]";
}
}
package statics;
public class Test {
public static void main(String[] args) {
Car c1 = new Car("k1", "kia");
System.out.println(c1);
Car c2 = new Car("g10", Car.makerName);
System.out.println(c2);
}
}
package bank;
import java.util.Calendar;
import java.util.Random;
public class MakeAccountNum {
public static String makeAccountNum() {
String accNum = null;
Calendar cal = Calendar.getInstance();
Random r = new Random();
accNum ="" + (r.nextInt(10000000) + 1)
+ cal.get(Calendar.MINUTE)
+ cal.get(Calendar.YEAR);
return accNum;
}
}

CRUDservice말고 bankservice를 만들더라도 DAO와 Notification 등 데이터베이스 가까운 부분을 잘 만들게 된다면 서비스만 추가하고 DAO 등을 재사용 하게 된다. 따라서 설계를 잘해야한다!!