본문 바로가기
Study with me/TECH!T back-end shcool 7

week_03 JAVA 7/?

by 외계나무 2023. 10. 30.

다른 클래스의 메서드 호출하기

만약 Calc 클래스의 run() 메서드가 static이면, 클래스 자체에 속한 정적 메서드로 정의되어 있으므로 객체의 인스턴스를 생성하지 않고도 클래스 이름을 통해 직접 호출할 수 있다. 즉, 다른 클래스에서 Calc.run()과 같이 호출할 수 있다.

public class Calc {
    public static void run() {
        // 메서드 내용
    }
}

그러나 만약 run() 메서드가 static이 아니라 인스턴스 메서드로 정의되어 있다면, Calc 클래스의 인스턴스를 먼저 생성한 후 해당 인스턴스를 통해 run() 메서드를 호출해야 한다.

public class Calc {
    public void run() {
        // 메서드 내용
    }
}

public class AnotherClass {
    public static void main(String[] args) {
        Calc calc = new Calc();
        calc.run(); // 인스턴스를 통해 호출
    }
}

따라서 메서드가 static이냐 아니냐는 호출 방식과 메서드의 용도에 따라 달라질 수 있다. 메서드가 객체의 상태에 접근하지 않고 독립적으로 동작해야 하는 경우 static 메서드로 정의하는 것이 일반적이며, 객체의 상태나 특정 인스턴스와 관련이 있는 작업을 수행해야 하는 경우 인스턴스 메서드로 정의한다.


비어있는지 확인할 때

"".isEmpty() => true
"         ".isEmpty() => false

"".isBlank() => true
"         ".isBlank() => true



TDD

: 내 실력보다 어려운 걸 만들때 유용한 개발 방식

테스트 주도 개발 Test-Driven-Development

실제 구현에 앞서, 그 프로그램을 테스트하는 프로그램을 먼저 구현하는 것.
java의 경우, Junit의 보조를 받아서 작성!

  1. TDD로 테스트할 리스트 작성 (요구사항)
  2. 그중 제일 쉬운 걸로 실패하는 테스트를 작성 (아직 해당 로직 구현 안 했으므로 당연히 실패함) : RED
  3. 그 테스트를 통과하게 만듦. 꼼수를 써서라도. 근데 이제 그 전의 테스트도 통과해야 하는... : GREEN
  4. 해당 코드를 리펙토링함. 중복 제거 등. : Refactoring
  5. 각 요구사항에 대해 2-4 반복

-> 각 기능을 만들때 해당 기능이 이전의 어떤 기능과 연관있는지 매번 체크 가능 (4번 만들었더니 2번에 문제 생김!)
-> 내가 만든 코드가 어떤 상황에서든 기능한다는 것을 확신할 수 있음.
-> 조금씩 어렵게 하니까 전체적인 개발 난이도, 부담 줄어듦.

'Study with me > TECH!T back-end shcool 7' 카테고리의 다른 글

week_03 MySQL 1/2  (0) 2023.10.31
week_03 GIT +@  (0) 2023.10.31
week_02 JAVA 6/?  (0) 2023.10.27
week_02 JAVA 5/?  (0) 2023.10.26
week_02 JAVA 4/?  (0) 2023.10.25