Notice
Recent Posts
Recent Comments
Link
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
Tags
more
Archives
Today
Total
관리 메뉴

햄발

static 메소드 (함수) 본문

Java

static 메소드 (함수)

햄발자 2024. 4. 19. 16:28

 

 

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) {

 Systehttp://m.out.print(makeNumber()+ "\t");
 Systehttp://m.out.print(makeNumber()+ "\t");
 Systehttp://m.out.print(makeNumber()+ "\t");
 Systehttp://m.out.print(makeNumber()+ "\t");
 Systehttp://m.out.print(makeNumber()+ "\t");
 Systehttp://m.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();


Systehttp://m.out.print(gameNumber1 + "\t");
Systehttp://m.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.ch13;

public class LottoGame3 {

public static void main(String[] args) {

int gameNumber = LottoNumberMaker.makeNumber(); // 클래스이름.메서드 호출

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; // temp임시로 만드는 박스
// for반복문 이용해서 6번 반복하기!
for (int pass = 1; pass < 6; pass++) {
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;
gameNumber6 = 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);
// 완벽하게 오름차순으로 가능.
}


}

 

'Java' 카테고리의 다른 글

메서드 오버로딩  (0) 2024.04.23
배열  (0) 2024.04.22
static 변수  (0) 2024.04.19
this  (0) 2024.04.19
접근 제어 지시자  (0) 2024.04.17