Java

static 메소드(함수)

H_u 2024. 4. 19. 16:13
728x90
반응형
SMALL

 💡 학습 목표

  1. static 메소드의 개념을 알자.
  2. Method Area 와 heap 영역에 실행 시점의 이해

static 메서드(함수)는 특정 클래스의 인스턴스에 속하지 않고 클래스 자체에 속합니다. 따라서 객체를 생성하지 않고도 클래스 이름을 통해 직접적으로 호출할 수 있습니다. static 메서드는 클래스의 모든 인스턴스가 공유하며, 주로 유틸리티 기능이나 공통 동작을 제공하는 데 사용됩니다.

주요 특징 정리

  • 객체 생성 없이 호출 가능
  • 인스턴스 변수에 접근 불가
  • static 메서드는 객체의 인스턴스 변수에 직접적으로 접근할 수 없습니다. 왜냐하면 static 메서드는 객체가 생성되기 전에 호출될 수 있기 때문에 해당 객체의 상태를 알 수 없기 때문입니다.

시나리오 코드 1단계

 

package basic.ex13;

 

import java.util.Random;

 

public class LoottoNumberMaker {

 

//멤버 변수

 

private String version = "1.0.0";

 

//main 함수

public static void main(String[] args) {

 

makeNumber();

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

// 자바 도구 -- 표준 API

// 난수 발생기 -> 랜덤적인 값을 생성

Random random = new Random();

// +1을 하면 0이 나오지 않는다

int resultNumber = random.nextInt(45) + 1; // 45로 설정하면 0~~44까지 만든다

 

 

return resultNumber;

}

}//end of class

 

package basic.ex13;

 

public class LottoGame {

 

public static void main(String[] args) {

 

int gameNumber1 = LoottoNumberMaker.makeNumber();

int gameNumber2 = LoottoNumberMaker.makeNumber();

// int gameNumber3 = LoottoNumberMaker.makeNumber();

// int gameNumber4 = LoottoNumberMaker.makeNumber();

// int gameNumber5 = LoottoNumberMaker.makeNumber();

// int gameNumber6 = LoottoNumberMaker.makeNumber();

 

System.out.print(gameNumber1 + "\t");

System.out.print(gameNumber2 + "\t");

// System.out.print(gameNumber3 + "\t");

// System.out.print(gameNumber4 + "\t");

// System.out.print(gameNumber5 + "\t");

// System.out.print(gameNumber6 + "\t");

//예상 1box = 5 , 2box = 3

int a = 0;

//오름 차순으로 정렬해보기

//만약 1상자가 2상자보다 크다면 어떤 행동을 하라

if(gameNumber1 > gameNumber2) {

//0 = 3 -->a == 3

//0 = 5 -->a == 5

a = gameNumber2;

//3

gameNumber1 = gameNumber2;

//5

gameNumber2 = a;

}

System.out.println("---------------");

System.out.println(gameNumber1);

System.out.println(gameNumber2);

}//end of main

 

}//end of class

 

package basic.ex13;

 

import java.util.Random;

 

public class LottoGame2 {

 

Random random = new Random();

//

int resultNumber = random.nextInt(45) + 1;

 

 

 

public static void main(String[] args) {

 

int gameNumber1 = LoottoNumberMaker.makeNumber();

int gameNumber2 = LoottoNumberMaker.makeNumber();

int gameNumber3 = LoottoNumberMaker.makeNumber();

int gameNumber4 = LoottoNumberMaker.makeNumber();

int gameNumber5 = LoottoNumberMaker.makeNumber();

int gameNumber6 = LoottoNumberMaker.makeNumber();

 

 

//전체 1~6까지 나온 결과값을 오름 차순으로 정렬

//단 중복 값은 제외한다

//만약 if --> 반복문 사용 금지 if 문 6개로 해결

int i = 0;

if(gameNumber1 > gameNumber2) {

i = gameNumber1;

gameNumber1 = gameNumber2;

gameNumber2 = i;

}

if(gameNumber2 > gameNumber3) {

i = gameNumber2;

gameNumber2 = gameNumber3;

gameNumber3 = i;

}

if(gameNumber3 > gameNumber4) {

i = gameNumber3;

gameNumber3 = gameNumber4;

gameNumber4 = i;

}

if(gameNumber4 > gameNumber5) {

i = gameNumber4;

gameNumber4 = gameNumber5;

gameNumber5 = i;

}

if(gameNumber5 > gameNumber6) {

i = gameNumber5;

gameNumber5 = gameNumber6;

gameNumber6 = i;

}

if(gameNumber1 > gameNumber2) {

i = gameNumber1;

gameNumber1 = gameNumber2;

gameNumber2 = i;

}

if(gameNumber2 > gameNumber3) {

i = gameNumber2;

gameNumber2 = gameNumber3;

gameNumber3 = i;

}

if(gameNumber3 > gameNumber4) {

i = gameNumber3;

gameNumber3 = gameNumber4;

gameNumber4 = i;

}

if(gameNumber4 > gameNumber5) {

i = gameNumber4;

gameNumber4 = gameNumber5;

gameNumber5 = i;

}

if(gameNumber5 > gameNumber6) {

i = gameNumber5;

gameNumber5 = gameNumber6;

gameNumber6 = i;

}

if(gameNumber1 > gameNumber2) {

i = gameNumber1;

gameNumber1 = gameNumber2;

gameNumber2 = i;

}

if(gameNumber2 > gameNumber3) {

i = gameNumber2;

gameNumber2 = gameNumber3;

gameNumber3 = i;

}

if(gameNumber3 > gameNumber4) {

i = gameNumber3;

gameNumber3 = gameNumber4;

gameNumber4 = i;

}

if(gameNumber4 > gameNumber5) {

i = gameNumber4;

gameNumber4 = gameNumber5;

gameNumber5 = i;

}

if(gameNumber5 > gameNumber6) {

i = gameNumber5;

gameNumber5 = gameNumber6;

gameNumber6 = i;

}

if(gameNumber1 > gameNumber2) {

i = gameNumber1;

gameNumber1 = gameNumber2;

gameNumber2 = i;

}

if(gameNumber2 > gameNumber3) {

i = gameNumber2;

gameNumber2 = gameNumber3;

gameNumber3 = i;

}

if(gameNumber3 > gameNumber4) {

i = gameNumber3;

gameNumber3 = gameNumber4;

gameNumber4 = i;

}

if(gameNumber4 > gameNumber5) {

i = gameNumber4;

gameNumber4 = gameNumber5;

gameNumber5 = i;

}

if(gameNumber5 > gameNumber6) {

i = gameNumber5;

gameNumber5 = gameNumber6;

gameNumber6 = i;

}

if(gameNumber1 > gameNumber2) {

i = gameNumber1;

gameNumber1 = gameNumber2;

gameNumber2 = i;

}

if(gameNumber2 > gameNumber3) {

i = gameNumber2;

gameNumber2 = gameNumber3;

gameNumber3 = i;

}

if(gameNumber3 > gameNumber4) {

i = gameNumber3;

gameNumber3 = gameNumber4;

gameNumber4 = i;

}

if(gameNumber4 > gameNumber5) {

i = gameNumber4;

gameNumber4 = gameNumber5;

gameNumber5 = i;

}

if(gameNumber5 > gameNumber6) {

i = gameNumber5;

gameNumber5 = gameNumber6;

gameNumber6 = i;

}

if(gameNumber1 > gameNumber2) {

i = gameNumber1;

gameNumber1 = gameNumber2;

gameNumber2 = i;

}

if(gameNumber2 > gameNumber3) {

i = gameNumber2;

gameNumber2 = gameNumber3;

gameNumber3 = i;

}

if(gameNumber3 > gameNumber4) {

i = gameNumber3;

gameNumber3 = gameNumber4;

gameNumber4 = i;

}

if(gameNumber4 > gameNumber5) {

i = gameNumber4;

gameNumber4 = gameNumber5;

gameNumber5 = i;

}

if(gameNumber5 > gameNumber6) {

i = gameNumber5;

gameNumber5 = gameNumber6;

gameNumber6 = i;

}

 

System.out.print(gameNumber1 + "\t");

System.out.print(gameNumber2 + "\t");

System.out.print(gameNumber3 + "\t");

System.out.print(gameNumber4 + "\t");

System.out.print(gameNumber5 + "\t");

System.out.print(gameNumber6 + "\t");

 

}//end of main

 

}//end of class

728x90
반응형
SMALL

'Java' 카테고리의 다른 글

배열 의 활용(도서관리프로그램)  (0) 2024.04.22
배열에 대해서 알아 보자  (0) 2024.04.22
static 변수  (0) 2024.04.19
ver 0.0.1 Starcraft  (0) 2024.04.19
this. 의 3가지 사용 방  (0) 2024.04.19