java 12일차

KHLee·2023년 3월 10일

자바수업

목록 보기
17/46

static 설명

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 등을 재사용 하게 된다. 따라서 설계를 잘해야한다!!

profile
안녕하세요

0개의 댓글