참조 호출
커밋메시지
기능단위로 쪼개기
TDD
parse 파씽
제네릭
예.
1. 무슨 작업 - color에 맞는 piece들을 가져온다.
2. 어떻게 사용 - 체스판에서 흑색(or 백색)의 piece들을 가져와서 점수를 계산.
public List<Piece> findPiecesByColor(Color color){}
매서드 이름은 동사!
tip) 다른 타입으로 전환하는 메서드나 빌더 패턴을 구현한 클래스의 메서드에는 전치사를 쓸 수 있다.
JUnit 테스트 메소드 이름에 언더스코어()가 표시되어 이름의 논리 컴포넌트를 구분하고 각 컴포넌트는 lowerCamelCase로 작성
: MethodName_StateUnderTest_ExpectedBehavior (메서드명테스트상태_기대행위)
자주 쓰이는 네이밍
setter
: 개발자의 실수가 발생할 수 있다.단점 (객체지향적인 코드작성에 가장 큰 적)
1. 하는 일이 단순하고, 객체 생성 시점에 필요한 모든 값들을 주입하지 않음.
2. public 으로 공개해놓은 set 메서드는 코드 다른 부분에서 언제 호출되어 값이 바뀔지 알기 힘들다.)
return 사용하면 됨!
if (condition1) {
foo1();
return;
}
if (condition2) {
foo2();
return;
}
foo3();
1. if else
if (condition1) {
foo1();
if (condition2) {
foo2();
} else {
foo3();
}
} else {
foo4();
}
2. only if
if (!condition1) {
foo4();
return;
}
foo1();
if (condition2) {
foo2();
return;
}
foo3();
1. 반환값을 만들고 if문 또는 if else를 사용하는 경우
returnVal = null;
if (bar()) {
returnVal = baz();
}
return returnVal;
2. 조건이 안맞으면 바로 리턴하는 경우
if (!bar()) {
return null;
}
return baz();
-> 2번이 더 좋음. bar() 조건 안 맞으면 빨리 리턴!
try {
plan = c.serchPlan(date);
} catch ( ~Exception e) {
System.err.println("오류가 발생했습니다.");
e.printStackTrace();
}
System.out.println(plan);
switch문에서 break
boolean isLoop = true;
while (true) {
String cmd = scanner.next();
switch(cmd) {
case " ":
cmd~();
break;
case " ":
isLoop = false;
break;
}
}
public Date getDate() {
return planDate;
}
public void registerPlan(String strDate, String plan) {
PlanItem p = new PalnItem(strDate, plan);
planMap.put(p.getDate(), p}
public static Date getDatefromString(String strDate) {
Date date = null;
try {
date = new SimpleDateFormat("yyyy-MM-dd").parse(dtrDate);
} catch (ParseException e) {
e.printStackTrace();
}
return date;
자체로 객체 생성 할 수 없다
{} 괄호 사용할 수 없다.
반드시 자식 클래스와 만나서 implements 해줘야 함!
(구현 클래스는 부모가 가진 메서드 다 가져야 함.)
부모가 자식을 통제할 수 있다!
메인메소드에서 객체 만들어줌!
RemoCon r = newTV();
r.chUP();
r=new Radio();
r.chUP();
인터페이스에는 final static
이 생략된 상수를 둘 수 있다.
static을 붙여주면 객체 없이 사용가능하다.
원래는
RemoCon r = new RemoCon();
있어야 하지만
public static final int MAXCH = 100;
처럼 static 있으면
RemoCon.MAXCH
로 바로 사용 가능!
(변수는 수정가능해도 상수는 수정 불가능!)
인터페이스에서는 public int MAXCH = 100;
해도
final static
이 생략되어 설정되어 있음.