객체 1-4)생성자부 this();/ 메소드/필드(지역변수,멤버변수,클래스변수,전역변수)
객체1-3) 생성자부/접근제한자
생성자 : 메소드 이름이 클래스 이름과 동일하고 리턴 자료형이 없는 메소드(반환형이 없다.) 생성자가 왜 필요한가요? 객체를 생성할때 메모리 공간을 할당받아야 되는데 빈공간이 있을 수 없
kwanghyung.tistory.com
지난 시간에는 생성자부 접근제한자를 했습니다.
생성자부 표현중 this.이 아닌 표현방법이 있어 소개하겠습니다. 기본 생성자는 다음과 같습니다. 먼저 변수 User라는 클래스를 만들고, 다음과 같은 변수를 설정하겠습니다.
기본생성자는 다음과 같습니다.
userId를 매개변수로 받는 생성자
여기서 매개변수가 더 다양한 생성자를 생성 할 수 있는데 전부 this. 처리하기 힘들기 때문에 this()를 이용한 생성자를 만들 수 있습니다.
위 생성자는 userId와 userPwd를 생성자로 받고 나머지는 안 받으므로 this로 모든 변수를 받고 안 받는 부분은 null처리 합니다.
다음으로 위 생성자는 매개변수를 3개 받고 매개변수를 안 받는 변수는 null처리를 하였습니다. 그리고 this()구문은 생성자 제일 위에 와야합니다. 이렇게 this() 를 사용하려면 기본적으로 모든 매개변수를 받는 생성자가 선언되고 그 상태에서 다음 위 2개의 생성자구문을 this()로 할 수 있습니다.
즉 매개변수를 필드 전부를 받는 생성자를 선언하기에 그값을 바로 null로 처리하여 그것보다 매개변수가 적은 생성자도 this()로 처리 할 수 있기 때문입니다. 위 구문은 상속에서 super();를 이용하기 때문에 잘 알아두어야 합니다.
이어서 메소드, 필드부에 대해서 배워보겠습니다.
메소드
메소드란 각 기능들을 담당하는 부분입니다. 우리가 제일 대표적으로 아는 메소드는 바로 메인 메소드입니다. 즉 실행을 시킬 수 있는 메소드 public static void main(String[]args){} 입니다.
메소드 : 입력을 가지고 어떤 일을 수행한 다음에 결과물을 내어놓은 것을 의미합니다.
[표현법]
접근제한자 예약어 반환형 메소드이름 (매개변수의 자료형 매개변수이름) {
수행할 코드
return 반환값;
}
여기서 생략이 가능한것은 예약어, 매개변수, return문(반환형이 void일 경우)입니다.
반환형 : 반환할 값의 자료형(void는 반환할 값이 없을때) 기본형일 경우 int,double등이 들어 갈 수 있으며, 클래스 ex)Student, 배열등이 들어 갈 수 있습니다.
주의해야 할 점은 호출할때 값들과 매개변수 자료형과 개수과 일치해야합니다.return문은 void일 경우 return이 생략되어 있습니다. jvm이 return해줍니다.
1. 메소드중 매개변수랑 반환값이 모두 없는 경우
매개변수와 반환값이 모두 없는 메소드입니다.
2. 메소드중 매개변수는 없고 반환값이 있는 경우
return 문에서 num을 값으로 반환하고 그 데이터 자료형이 int이기에 public int method2() 가 됩니다.
3. 메소드 중 매개변수는 있고 반환값이 없는 경우
4. 메소드 중 매개변수도 있고 반환값도 있는 경우
필드부
저는 처음에 필드부와 변수가 같은 통상의 말이라는걸 몰라서 헷갈렸습니다. 필드부는 클래스를 구성하는 요소 중 하나이며 클래스 내부에서 메소드 밖에서 정의되는 변수의 개념입니다.
변수는 총 2가지로 나누어지며, 이는 전역변수와 지역변수입니다.
변수 구분
-전역변수 : 클래스 영역에서 바로 선언하는 변수 -> 클래스 내에서면 어디서든 사용 가능하다.
-지역변수 : 클래스 영역 내에 어떠한 특정한 구역 ({})에 선언한 변수 => 메소드, for문 등등
예) for (int i=0; 조건식 증감식) {} -> 초기식에서 선언된 i도 지역 변수입니다.
1.전역변수 : 멤버변수와 클래스 변수로 나뉨
-멤버 변수 (인스턴스 변수, 필드)
생성시점 : new 연산자를 통해서 해당 객체를 생성하는 순간 메모리 영역에 할당합니다. - heap영역
소멸 시점 : 객체가 소멸될 때 같이 소멸 됩니다. -> 가비지 컬렉터가 지워줄 때
-클래스 변수 (Static 변수) : static이라는 예약어가 붙은 변수
생성시점 : 프로그램이 실행과 동시에 static 영역에 할당합니다
-> 즉, 해당 객체가 생성이 안되어도 무조건 프로그램 실행과 동시에 할당됩니다
소멸시점 : 프로그램이 끝날 때 소멸합니다
2. 지역변수
생성 시점: 특정한 구역({}) 실행 시 메모리 영역에 할당 -> stack 영역에 할당됩니다.
소멸 시점: 프로그램이 끝날때 소멸 됩니다.
다음시간에는 오버로딩과 Static, final 변수에 대해서 얘기하겠습니다.
'자바-자린이의 도전기' 카테고리의 다른 글
객체배열-선언,할당/getter,setter,생성자 빨리 만들기 (0) | 2022.04.06 |
---|---|
객체1-5) 오버로딩/Static/final변수 (0) | 2022.04.06 |
객체1-3) 생성자부/접근제한자 (0) | 2022.04.03 |
객체1-2.) 추상화/캡슐화/setter함수/Getter함수 (0) | 2022.04.01 |
객체 1-1./객체지향언어/추상화/캡슐화/변수 (0) | 2022.03.30 |
댓글
이 글 공유하기
다른 글
-
객체배열-선언,할당/getter,setter,생성자 빨리 만들기
객체배열-선언,할당/getter,setter,생성자 빨리 만들기
2022.04.06 -
객체1-5) 오버로딩/Static/final변수
객체1-5) 오버로딩/Static/final변수
2022.04.06 -
객체1-3) 생성자부/접근제한자
객체1-3) 생성자부/접근제한자
2022.04.03 -
객체1-2.) 추상화/캡슐화/setter함수/Getter함수
객체1-2.) 추상화/캡슐화/setter함수/Getter함수
2022.04.01