쌍용 강북 교육센터 국비학원 Day 3일차
생성자 (constructor)
Member 라는 클래스가 존재한다고 가정할때, 기본생성자 선언하는 법
Member hongMbr = new Member(); -> 파라미터 (매개변수) 가 없는 생성자를 기본생성자 라고부른다.
생성자 -> 인스턴스(객체)화 할때 사용되어지는 일종의 메소드
매개변수가 없는 기본생성자에게 매개변수를 하나씩 선언하는 방법이다. 하지만 위와 같은 방법은 가독성이 떨어지기 때문에 매개변수를 받는 생성자를 보통 사용한다.
반대로 파라미터가 있는 생성자를 선언할 때는 괄호안에 매개변수를 넣어주면 된다.
따라서 Member 에서는 지역변수를 필드 값에 넣어주어야 하기 때문에
이렇게 선언을 해주어야한다. 여기서 한가지 자세히 보면 매개변수의 변수와 필드의 명과 다르다. 코드를 간결하게 하기위해 이를 똑같이 만들어준다. 하지만 변수명을 같게 만들어주면 지역변수명과 멤버변수명이 동일할 경우에는 지역변수명이 더 우선하기 때문에 멤버 변수 앞에 자기 자신을 가르키는 this. 를 넣어주어야 한다.
(this 는 자기자신 클래스인 Member 클래스의 인스턴스를 뜻하는 것이다)
여기서 주의할 점은 모든클래스는 기본생성자를 명시(선언)하지 않으면 기본 생성자는 생략되어있다. 파라미터가 있는 생성자를 만들면 자동적으로 생략되어 있던 기본생성자는 삭제된다. 매개변수가 있는 생성자의 주목적은 필드를 초기화 시켜주는 것이다.
- > 매개변수를 받는 생성자를 사용하려면 클래스 내부에서 매개변수를 받는 생성자를 선언해줘야 하고, 매개변수를 하나씩 선언할 경우에는 기본생성자가 생략되어 있기 때문에 생략 가능하다.
overloading (오버로딩)
- 메소드의 이름은 같더라도 파라미터의 개수가 다르면 다른 메소드로 취급 하므로 메소드 중복이 아니다.
- 메소드의 이름은 같고, 파라미터의 개수도 같더라도 파라미터의 데이터타입의 순서가 다르면 다른 메소드로 취급 하므로 메소드 중복이 아니다.
- 메소드의 이름은 같고, 파라미터의 개수도 같고, 파라미터의 데이터타입의 순서도 같고, 단 return 타입은 다를 경우라도 메소드 중복이라고 본다.
- 그러므로 메소드의 이름이 같지만 메소드가 중복이 안되려면 리턴타입은 필요가 없고 오로지 파라미터가 달라야 한다.
'Java' 카테고리의 다른 글
쌍용강북교육센터 국비 학원 Day 5일차 Java (조건문, try catch문, wrapper 클래스, Math 클래스) (0) | 2023.01.06 |
---|---|
쌍용강북교육센터 국비 학원 Day 4일차 Java (Casting, Operator, Scanner) (0) | 2023.01.05 |
쌍용강북교육센터 국비 학원 Day 2일차 Java (static, 자료형 타입) (0) | 2023.01.03 |
쌍용강북교육센터 국비 학원 Day 1일차 Java (Class, instance) (0) | 2023.01.02 |
Java 기초 입문 12일차 (메소드 참조, Stream) (0) | 2023.01.02 |