리꾸므

[JAVA] 객체지향 프로그래밍 기초2(feat. static, 메서드) 본문

발걸음/일지

[JAVA] 객체지향 프로그래밍 기초2(feat. static, 메서드)

리꾸므 2022. 11. 6. 13:05

static 키워드 

 - 클래스의 멤버(필드, 메서드, 이너 클래스)의 사용하는 키워드

 - static키워드가 붙어있는 멤버를 정적멤버라 지징 static이 없는 인스턴스 변수와 구분

 - 인스턴스 멤버는 객체 생성후 변수와 메서드에 접근하여 해당 멤버 사용가능한 반면,

   클래스 멤버들은 인스턴스 생성없이도 클래스명, 멤버명만으로도 사용이 가능

클래스 멤버 클래스 내부에 저장공간을 가지고 있기때문에 객체 생성없이 사용 가능, 공통 저장공간
객체 간 공유 변수의 성질이 있다. 메서드 동일
정적 메서드는 인스턴스 변수 또는 인스턴스 메서드 사용불가(인스턴스가 존재하지않기때문)
인스턴스 멤버 new 키워드를 통해 생성된 인스턴스는 힙메모리에 생성, 독립적인 저장공간

 

public class 중국집 {
    public static void main(String[] args) {
        메뉴 메뉴 = new 메뉴(); // 객체 생성
        메뉴 메뉴2 = new 메뉴();

        메뉴.자장면 = 100; 
        메뉴2.자장면 = 1000;

        System.out.println(메뉴.자장면);
        System.out.println(메뉴2.자장면);

        메뉴.짬뽕 = 150;
        메뉴2.짬뽕 = 1500;
        System.out.println(메뉴.짬뽕);
        System.out.println(메뉴2.짬뽕);

    }
}

class 메뉴 {
    int 자장면 = 10;
    static int 짬뽕 = 15;
}

//출력값
100
1000
1500
1500

 

 

 

메서드(MetHod)

 - 특정 작업을 수행하는 일련의 명령문들의 집합

 - 메서드 시그니처와 메서드 바디로 구분

 - 메서드 반환타입이 void가 아닌 경우 return문이 존재해야함

 - 결과값은 반환타입과 일치하거나 자동형변환이 가능한 것이어함

자바제어자 반환타입 메서드명(매개 변수) { // 메서드 시그니처
	메서드 내용 // 메서드 바디
}

public String findMenu(String menu1){
   
}

 

 메서드의 호출

  - 클래스 멤버이므로 클래스 외부 사용위해서 먼저 인스턴스 생성필요

  - 인스턴스 생성 후 포인트연산자(.)을 통해 메서드 호출

  - 클래스 내부 메서드끼리는 따로 객체 생성하지 않고 서로 호출 가능

메서드이름(매개변수1, 매개변수2, ...); // 메서드 호출방법. 매개 변수가 없을 수도 있음.

void findMenu(); // 위의 코드 예제 호출
int choice();
Double price(4, 4.0);

//출력값
hello!
7
16.0