발걸음/일지
[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