static 메서드는 특정 인스턴스와 관련없는 작업 수행에 사용
클래스와 인스턴스를 생성하지 않고도 호출 가능 = 특정객체의 상태나 속성에 의존하지 않는
독립적인 동작 수행
1. 유틸리티 함수
특정 인스턴스에 종속되지 않으며, 클래스의 기능을 확장하거나 보조
public class StringUtils {
// 유틸리티 함수: 문자열을 대문자로 변환
public static String capitalize(String str) {
return str.substring(0, 1).toUpperCase() + str.substring(1);
}
public static void main(String[] args) {
// 객체 생성 없이 유틸리티 함수 호출
String result = StringUtils.capitalize("hello");
System.out.println(result); // 출력: Hello
}
}
2. 팩토리 메서드
인스턴스를 생성하는데 사용되는 복잡한 로직이나 여러 단계를 거치는 경우
이를 처리하기 위한 정적메서드를 사용
public class Car {
private String model;
private Car(String model) {
this.model = model;
}
// 팩토리 메서드: SportsCar 객체를 생성하는 메서드
public static Car createSportsCar() {
return new Car("Sports Car");
}
public static void main(String[] args) {
// 객체 생성 없이 팩토리 메서드 호출
Car sportsCar = Car.createSportsCar();
System.out.println(sportsCar.model); // 출력: Sports Car
}
}
3. 전역 함수의 모음
클래스 내 연관된 함수를 그룹화 하여 유지보수를 쉽게 할 수있음
클래스의 인스턴스를 생성하지않아도 함수 사용 가능
public class MyFunctions {
// 전역 함수의 모음: 두 숫자를 더하는 함수
public static int add(int a, int b) {
return a + b;
}
// 다른 전역 함수 추가 가능...
public static void main(String[] args) {
// 객체 생성 없이 전역 함수 호출
int result = MyFunctions.add(3, 5);
System.out.println(result); // 출력: 8
}
}
'공부라고하지만' 카테고리의 다른 글
에러 및 예외 처리 (0) | 2023.09.22 |
---|---|
파이썬 _230809 (0) | 2023.08.09 |
파이썬 - 230805 (0) | 2023.08.05 |