static 메소드
특정 클래스의 인스턴스에 속하지 않고 클래스 자체에 속한다.
따라서 객체를 생성하지 않고도 클래스 이름을 통해 직접적으로 호출이 가능하다.
static 메서드는 클래스의 모든 인스턴스가 공유하며, 주로 유틸리티 기능이나 공통 동작을 제공하는 데 사용된다.
주요 특징 정리
- 객체 생성 없이 호출 가능
- 인스턴스 변수에 접근 불가
static 메서드는 객체의 인스턴스 변수에 직접적으로 접근이 불가능 하다.
왜냐하면 static 메서드는 객체가 생성되기 전에 호출될 수 있기 때문에 해당 객체의 상태를 알 수 없기 때문이다.
시나리오 코드
package basic.ex13;
// 가지고 오다. 수입하다.
import java.util.Random;
public class LottoNumberMaker {
// 멤버 변수
private String version = "1.0.0";
// main 함수
public static void main(String[] args) {
System.out.print(makeNumber()+ "\t");
System.out.print(makeNumber()+ "\t");
System.out.print(makeNumber()+ "\t");
System.out.print(makeNumber()+ "\t");
System.out.print(makeNumber()+ "\t");
System.out.print(makeNumber()+ "\t");
} // end of main
// 인스턴스에 속하지 않는 함수 만들기
public static int makeNumber() {
// static 함수안에 멤버 변수를 사용할 수 없다.
// 메모리가 뜨는 순서 !!
//System.out.println("ver : " + version);
Random random = new Random();
int resultNumber = random.nextInt(45) + 1; // 0 ~~~~ 44
return resultNumber;
}
}
package basic.ex13;
public class LottoGame {
public static void main(String[] args) {
// static 변수 --> 클래스 변수라고도 불린다.
int gameNumber1 = LottoNumberMaker.makeNumber();
int gameNumber2 = LottoNumberMaker.makeNumber();
System.out.print(gameNumber1 + "\t");
System.out.print(gameNumber2 + "\t");
// 오름 차순으로 정렬해보기
// 만약 1상자 2상자보다 크다면 어떤 행동을 하라
// 단 변수에 값을 담고 출력 하세요.
} // end of main
}

package basic.ex13;
public class LottoGame2 {
public static void main(String[] args) {
// static 변수 --> 클래스 변수라고도 불린다.
int gameNumber1 = LottoNumberMaker.makeNumber();
int gameNumber2 = LottoNumberMaker.makeNumber();
int gameNumber3 = LottoNumberMaker.makeNumber();
int gameNumber4 = LottoNumberMaker.makeNumber();
int gameNumber5 = LottoNumberMaker.makeNumber();
int gameNumber6 = LottoNumberMaker.makeNumber();
// 전체 1 ~ 6 까지 나온 결과값을 오름 차순으로 정렬
// 단, 중복 값은 무시!
// 수식을 작성해주세요
// 만약 if --> 반복문 사용 금지 if문 6개로 구성해주세요
//
int tempBox = 0;
// 5, 1, 9, 7, 2, 3
// 5 > 1
if(gameNumber1 > gameNumber2) {
// 5
tempBox = gameNumber1;
// 1 <-- 1
gameNumber1 = gameNumber2;
// 5 <-- 5
gameNumber2 = tempBox;
}
// 1, 5, 9, 7, 2, 3
// 5 > 9
if(gameNumber2 > gameNumber3) {
tempBox = gameNumber2;
gameNumber2 = gameNumber3;
gameNumber3 = tempBox;
}
// 1, 5, 9, 7, 2, 3
// 9 > 7
if(gameNumber3 > gameNumber4) {
// 9 <-- 9
tempBox = gameNumber3;
// 7 <--- 7
gameNumber3 = gameNumber4;
// 9 <--- 9
gameNumber4 = tempBox;
}
// 1, 5, 7, 9, 2, 3
// 9 2
if(gameNumber4 > gameNumber5) {
// 9 <--- 9
tempBox = gameNumber4;
// 2 <-- 2
gameNumber4 = gameNumber5;
// 2 <-- 9
gameNumber5 = tempBox;
}
// 1, 5, 7, 2, 9, 3
// 9 > 3
if(gameNumber5 > gameNumber6) {
// 9 <-- 9
tempBox = gameNumber5;
// 3 <-- 3
gameNumber5 = gameNumber6;
// 9 <--- 9
gameNumber6 = tempBox;
}
// 1, 5, 7, 2, 3, 9
System.out.println(gameNumber1);
System.out.println(gameNumber2);
System.out.println(gameNumber3);
System.out.println(gameNumber4);
System.out.println(gameNumber5);
System.out.println(gameNumber6);
} // end of main
}
package basic.ex13;
public class LottoGame3 {
public static void main(String[] args) {
int gameNumber1 = LottoNumberMaker.makeNumber();
int gameNumber2 = LottoNumberMaker.makeNumber();
int gameNumber3 = LottoNumberMaker.makeNumber();
int gameNumber4 = LottoNumberMaker.makeNumber();
int gameNumber5 = LottoNumberMaker.makeNumber();
int gameNumber6 = LottoNumberMaker.makeNumber();
int tempBox = 0;
// 테스트 값 : 5, 1, 9, 7, 2, 3
if(gameNumber1 > gameNumber2) {
tempBox = gameNumber1;
gameNumber1 = gameNumber2;
gameNumber2 = tempBox;
}
if(gameNumber2 > gameNumber3) {
tempBox = gameNumber2;
gameNumber2 = gameNumber3;
gameNumber3 = tempBox;
}
if(gameNumber3 > gameNumber4) {
tempBox = gameNumber3;
gameNumber3 = gameNumber4;
gameNumber4 = tempBox;
}
if(gameNumber4 > gameNumber5) {
tempBox = gameNumber4;
gameNumber4 = gameNumber5;
gameNumber5 = tempBox;
}
if(gameNumber5 > gameNumber6) {
tempBox = gameNumber5;
gameNumber5 = gameNumber6;
gameNumber5 = tempBox;
}
System.out.println(gameNumber1);
System.out.println(gameNumber2);
System.out.println(gameNumber3);
System.out.println(gameNumber4);
System.out.println(gameNumber5);
System.out.println(gameNumber6);
} // end of main
}


'Java' 카테고리의 다른 글
| 배열의 활용(도서 관리 프로그램) (0) | 2024.04.22 |
|---|---|
| 배열 (0) | 2024.04.22 |
| static 변수 (0) | 2024.04.19 |
| this의 3가지 사용법 (0) | 2024.04.19 |
| 접근 제어 지시자 (0) | 2024.04.17 |