인자(argument) vs 파라미터(매개변수)
인자 : 메소드에 전달하는 데이터 값 ( 송신 )
파라미터 : 전달 받는 인자 값을 저장하는 변수 ( 수신 )
this의 개념
- 객체 내부에서 this는 해당 객체 자신을 의미한다.
- 변수의 이름이 중복되지 않는 경우엔 명시하지 않아도 무방하다.
- 파라미터의 이름을 의미 있게 만들면, 멤버 변수의 이름과 보통 중복됨
- 따라서 this로 파라미터의 이름을 의미있게 만들어서 중복되게 사용 가능하다.
setter/getter 메소드
setter
- 1개의 멤버 변수의 값을 세팅하는 메소드는 set이라고 관례적으로 지정한다. (setter)
- setter 메소드 안에 검증 로직을 넣을 수 도 있다.
getter
- 1개의 멤버 변수의 값을 반환하는 메소드는 get이라고 관례적으로 지정한다. (getter)
- getter 메소드 안에 검증 로직을 넣을 수 도 있다.
- 변수가 private여도 getter 메소드가 public이기 때문에 값을 출력하는 것이 가능하다.
가능하다면 return문은 최대한 적게 유지하는 것이 가독성 측면에서 효율적이다.
생성자 (Constructor)
체가 생성되는 시점에 호출 되는 특별한 형태의 메소드로 초기화를 위해 사용된다.
주로 멤버 변수를 초기화하는데 명시적으로 초기화 하지 않는 경우 아래 값이 저장된다.
- 숫자형 변수는 0
- 불리안 변수는 false
- 참조 변수는 null
생성자를 명시적으로 추가하지 않는 경우 Default 생성자를 제공한다.
(ex) User steve = new User();
사용자 객체의 생성자 추가
public class User {
private String email;
private String password;
private String nickname;
private int age;
public User() {
this.email = "dudrn1947@naver.com";
this.password = "1234";
this.nickname = "jamjam";
this.age = 25;
}
/////
public static void main(String[] args) {
User jaemin = new User();
위의 예제와 마찬가지로 생성자를 통해서 객체를 생성함과 동시에 변수를 설정할 수 있다.
생성자에 매개변수를 넘겨주는 것도 가능하다.
이 때 멤버 변수의 일부만 초기화한다면 나머지는 default 값이 할당된다.
만약 생성자가 하나 이상 존재할 경우 파라미터가 없는 default 생성자는 생략된다.
아래의 예제를 통해서 확인하자 !
생성자에 대해 정리해보면 아래와 같다.
- 생성자는 객체가 생성될 때 호출 되는 특별한 메소드이다.
- 생성자의 이름은 클래스명과 동일하고 리턴 타입은 명시하지 않음
- 주로 객체의 멤버 변수 초기화의 목적으로 한다.
- 생성자가 없는 경우 Default 생성자가 제공되지만 , 생성자가 작성되면 Default 생성자는 사라짐
- 파라미터가 있는 생성자를 호출하기 위해서는 new 키워드로 객체 생성 시 인자를 전달해야 한다.
메소드 오버로딩 ( Method overloading )
- "동일한 이름의 메소드를 한 클래스 내부에서 사용하는 것을 의미한다."
- 같은 작업을 하지만 파라미터만 다른 메소드가 필요한 경우 사용한다.
- 특정 클래스 안 파라미터의 자료형 개수가 다른 동일한 이름의 메소드 선언 가능
- 메소드 호출 시, 파라미터 세팅 조건에 따라 호출 메소드가 결정된다
- 리턴 타입은 고려하지 않아서 리턴 타입만 다른 것은 오버로딩 할 수 없다.
(Example)
- public int add(int a, int b)
- public int add(int a, int b, int c)
- public double add(double a, double b)
- public long add(int a, int b) (X) => 메소드의 파라미터가 동일함
steve.isAulit() | >> false |
steve.isAdult(18) | >> ture |
생성자 오버로딩
- 생성자도 특수한 형태의 메소드로 오버로딩 적용이 가능하다.
- 초기화 원하는 멤버 변수만 선택해1서 초기화가 가능하다.
- 객체 생성 시 세팅하는 파라미터 조합에 따라 다른 생성자가 호출된다.
- 빈번하게 사용되니 잘 기억해 두자 !
- 코드프레소 Java 웹 개발 체험단 활동 중
- 코드프레소 웹개발 트랙의 "Java 프로그래밍 초급" 내용입니다.
- 코드프레소 URL: https://www.codepresso.kr/
'EXTERNAL ACTIVITY > Code Presso -웹개발 트랙 체험단-' 카테고리의 다른 글
<코드 프레소 웹개발 트랙> Java 프로그래밍 초급 [3] (0) | 2022.01.19 |
---|---|
- (0) | 2022.01.19 |
<코드 프레소 웹개발 트랙> Java 프로그래밍 초급 (0) | 2022.01.17 |
<코드 프레소 웹 개발 트랙> 실무자가 알려주는 Git 활용한 프로젝트 관리[2] (0) | 2022.01.15 |
<코드 프레소 웹 개발 트랙> 실무자가 알려주는 Git 활용한 프로젝트 관리 (0) | 2022.01.14 |