선언부가 중요!!
1. 네이밍 중요(메서드 : 동사, 변수 : 명사)
2. 파라미터 변수
public void print(int x, int y){ //선언부 //구현부 }
private - 같은 클래스
default - 같은 클래스, 같은 패키지
protected - 같은 클래스, 다른 패키지의 자손 클래스
public - 전체
(private, public 주로 사용)
- 파라미터(parameter) : 메서드를 정의할 때 선언한 변수
public int add(int x, int y){ return x + y; }
파라미터 : int x, int y
- 아규먼트(argument) : 인수. 전달인자
add(1, 2);
아큐먼트 : 1, 2
- 기본형 : 변수에 사용할 값을 직접 넣을 수 있는 데이터타입
boolean, int, long, float, double- 참조형 : 데이터에 접근하기 위한 주소(참조)를 저장하는 데이터 타입
Student student1, int[] students
예시) 값 참조 : 돈 주면서 음료수 사와!
주소 참조 : 체크카드 주면서 음료수 사와!
- cv(클래스 변수, static 변수, 정적변수) - 메서드 영역에서 관리
'클래스명.변수명'으로 접근 (인스턴스 없이 사용 가능)
클래스가 JVM에 로딩되는 순간 생성되고, 종료될 때까지 이어짐
- iv(인스턴스변수) - 힙 영역에서 관리
인스턴스를 생성해야 사용 가능
'참조변수.변수명'으로 접근
GC(가비지 컬렉션)가 발생하기 전까지 생존 (lv보다 생존주기 길다)
- lv(지역변수) - 스택 영역에서 관리
메서드가 종료되면 지역변수도 함께 제거된다.
- 메서드 영역 - 클래스 정보, static 영역
- 스택 영역 - 메서드 호출시 하나의 스택 프레임 생김
- 힙 영역 - 인스턴스 생성 공간
- 클래스 : 인스턴스화 할 수 있는 설계도. 파일로 존재할 수 있음.
멤버변수(필드)와 메서드로 이뤄짐Class Student{ String name; int age;//멤버변수 void study(){ System.out.println("공부!"); } //메서드 }
- 인스턴스 : 클래스를 기반으로 메모리에 만들어진 실체
Student student1 = new Student();
new 키워드를 통해 객체 생성