1. 생성자
1)생성자 만들기
● 생성자는 하나 이상 선언되어야 함
● 생성자 이름은 클래스 이름과 동일해야 함
● 생성자는 리턴타입을 지정할 수 없다
→리턴타입을 사용하지 않고 바로 메소드 이름을 쓴다.
● 생성자의 형태: 접근제한자 메소드 이름(매개변수){};
*자동생성방법: 우측 마우스-source-generate constructor using field
2)생성자 수행과정
● 연산자 new에 의해 메모리에 A클래스의 객체가 생성된다.
● 생성자는 new를 통해 객체를 생성할 때만 호출되어 수행된다.
-생성자의 매개변수의 개수와 타입=main 객체 매개변수의 개수와 타입
-객체 생성 시 생성자의 매개변수에 맞춰 매개변수를 입력한다.
● 연산자 new의 결과로 생성된 객체에 입력한 값을 필드값에 저장하는 역할을 함
● 필드에 있는 모든 값을 반드시 생성할 필요는 없으며, 객체에서 입력하기 원하는 값만
생성자로 만들 수 있다.
2. 디폴트 생성자(기본생성자)
● 개발자가 생성자를 정의하지 않으면 자동으로 기본 생성자가 정의됨
● ()에 매개변수를 사용하지 않으면 디폴트 생성자가 됨
● 디폴트 생성자의 형태
접근제한자 메소드명( ){ }
● 디폴트 생성자만 존재하고 디폴트에 아무런 기능이 없을 경우 생략가능함
3. 생성자에서 다른 생성자 호출하기(this)
접근제한자, 메소드명(매개변수){this.변수명 =변수명}
● 초기화할 변수가 많아지면 변수관리가 어려우므로 this 키워드로 변수명을 관리한다.
접근제한자, 메소드명(매개변수){this.변수명 =변수명}
this.변수명(필드)=변수명(매개변수)→매개변수의 값을 필드의 변수에 대입한다.
4. 캡슐화
● 개념: 필드의 정보를 외부로부터 접근하지 못하도록 제한하는 것
● 사용방법: 필드에서 변수 생성 시 자료형 앞에 private 입력
● 캡슐화된 필드 접근방법: 외부에서 공개된 메소드를 통해 필드에 접근
-public get 메소드 만들고 필드값을 return
-main에서 객체명.get메소드 입력하여 출력문으로 호출하기
● 캡슐화된 필드값 수정방법: 외부에서 공개된 메소드를 통해 필드에 접근, main에서 입력된
값을 매개변수에 저장함
-public set메소드 만들고 매개변수 입력, this.필드명 = 변수명 반환데이터 작성
-main에서 객체명.set메소드명(값) 값을 입력하면 변경된 값이 출력된다.
*생성자 오버로딩: 생성자의 이름이 같더라도 main객체에 쓴 매개변수의 타입과
개수에 따라 컴파일러를 통해 자동으로 적합한 메소드를 찾아 실행한다.
5. 접근제한자
● public: 같은 프로젝트 내에서 어디서든 접근 가능
● protected: 같은 패키지, 같은 클래스 내에서 접근 가능, 상속관계일 때는 다른 클래스에도
접근 가능하다.
● default(생략): 같은 패키지, 같은 클래스 내에서 접근 가능, 다른 패키지에서 접근 불가
● private: 내 클래스에서만 접근 가능
6. 상속
● 이미 작성된 클래스의 특성(변수, 메소드)을 새로운 클래스에 이어받아 생성하는 기법
-상위클래스(부모클래스, 슈퍼클래스): 이미 작성된 클래스
-하위클래스(자손클래스, 서브클래스): 새로운 클래스
● 장점: 기존 코드를 그대로 재사용하거나 재정의>재사용+확장
● 상속관계 설정방법
하위클래스 이름이 있는 코드에서 하위 클래스 뒤에 extends 상위클래스 입력, import
상속관계를 설정하면 상위클래스의 기능(메소드)을 하위클래스에서도 사용가능
>하위클래스에 상위클래스 메소드를 입력하지 않더라도 하위클래스.메소드 호출가능
'JAVA' 카테고리의 다른 글
[JAVA]14.디자인 패턴 (0) | 2023.06.15 |
---|---|
[JAVA]13.상속 (0) | 2023.06.12 |
[JAVA]11. 객체지향 프로그래밍 (0) | 2023.06.10 |
[JAVA]10. ArrayList (0) | 2023.06.09 |
[JAVA]9. 메소드 (0) | 2023.06.08 |