728x90
✨ 이 글은 [ 코드프레소 Java 웹 개발 체험단 활동 ] 내용입니다 ✨
💜 코드프레소 이러닝 강의 수강 중 - Java 프로그래밍 초급 💜
😎 아래의 링크를 통해 프리미엄 IT 교육 서비스, 코드프레소를 확인해보세요 😎
프리미엄 IT 교육 서비스 - 코드프레소
www.codepresso.kr
생성자(Constructor)
- 객체가 생성되는 시점에 호출되는 특별한 형태의 메소드
- 객체가 생성되는 시점에 초기화를 하기 위해 사용된다
- 주로 생성자에서는 객체 멤버 변수의 초기화 작업을 한다
- 멤버 변수를 명시적으로 초기화하지 않은 경우에는 아래와 같이 저장된다
- 숫자형 변수 : 0
- boolean 변수 : false
- 참조 변수 : null
생성자(Constructor)의 문법
- 생성자의 이름은 클래스의 이름과 동일하다
- 접근 제어자는 보통 public을 사용한다
- 0개 또는 1개 이상의 파라미터를 선언할 수 있다
- 리턴 타입은 생략된다
- 파라미터가 없는 경우는 아래와 같이 생성자를 추가한다
초기화 값을 직접 지정(하드코딩)
- 파라미터가 있는 경우에는 아래와 같이 생성자를 작성한다
모든 멤버 변수의 값을 인자로 전달받아 초기화하는 생성자
- 또한 객체 생성과 함께 전달하는 인자 값으로 객체의 멤버 변수를 초기화할 수도 있다
- 멤버 변수의 일부만 초기화할 수도 있다
Default 생성자
- 생성자를 명시적으로 추가하지 않은 경우 Default 생성자를 제공한다
- 단, 1개 이상의 생성자를 명시적으로 구현한 경우에는 제공하지 않는다
- Default 생성자 사용의 예시
생성자 정리!
- 셍성자는 객체가 생성될 때 호출되는 특별한 형태의 메소드
- 생성자의 이름은 클래스명과 동일하며 리턴 타입은 사용하지 않는다
- 생성자는 주로 객체의 멤버 변수를 초기화하는 목적으로 사용한다
- 생성자를 명시적으로 구현하지 않은 경우에는 Default 생성자를 제공한다
- 파라미터가 있는 생성자를 호출하기 위해서는 new 키워드로 객체 생성 시 인자를 전달해야 한다
같은 작업을 하지만 파라미터만 다른 메소드가 필요한 경우
- C언어 수학 관련 함수 중 절댓값을 구하는 함수의 종류
- abs(), labs(), fabs(), cabs()
- 메소드를 사용할 때 동일 작업을 위한 다양한 이름의 메소드를 기억해야 한다
- 메소드를 개발할 때 파라미터의 조합에 따라 다양한 이름을 생성해야 한다
- 명확한 동작을 의미하는 것이 아닌 조악한 이름이 만들어질 수 있다!
메소드 오버로딩(Method Overloading)
- 특정 클래스 안에서 파라미터가 다른 동일한 이름의 메소드를 선언한다
- 파라미터의 자료형 또는 개수가 다르면 동일한 이름을 사용할 수 있다
- 메소드 호출 시 파라미터 세팅 조건에 따라 호출되는 메소드가 결정된다
- 리턴 타입은 메소드 오버로딩의 조건에 해당하지 않는다
- 아래와 같이 파라미터가 동일한데 리턴 타입만 다른 것은 메소드 오버로딩을 사용할 수 없다!
생성자 오버로딩
- 생성자도 특수한 형태의 메소드이기 때문에 오버로딩 적용이 가능하다
- 초기화를 원하는 멤버 변수만 선택해서 초기화가 가능하다
- 생성자 오버로딩은 빈번하게 사용된다
- 아래의 예시는 객체 생성 시 세팅하는 파라미터의 조합에 따라 서로 다른 생성자가 호출된다
메소드 오버로딩 정리!
- 메소드 오버로딩은 서로 다른 조합의 파라미터를 사용하는 동일한 이름의 메소드를 한 클래스 내부에서 사용하는 것이다
- 의미있는 메소드의 이름을 여러 메소드에 사용할 수 있다
- 메소드 호출 시 세팅하는 파라미터에 따라 어떤 메소드가 호출될지 결정된다
- 리턴 타입은 메소드 오버로딩의 조건이 되지 않는다
- 생성자도 오버로딩이 가능하다
728x90
'코드프레소 체험단 > Java 프로그래밍' 카테고리의 다른 글
[Java 프로그래밍 초급] 객체지향 고급 (1) (0) | 2022.01.20 |
---|---|
자바, 인텔리제이 꿀팁! (0) | 2022.01.20 |
[Java 프로그래밍 초급] 객체지향 기초개념 (2) (0) | 2022.01.20 |
[Java 프로그래밍 초급] 객체지향 기초개념 (1) (0) | 2022.01.20 |
[처음 시작하는 Java 프로그래밍] 반복문 (0) | 2022.01.14 |
댓글