오늘의 키워드
- 메서드 오버로딩
- 기본형과 참조형 매개변수
- 인스턴스 멤버와 클래스 멤버
- this
- 생성자
- 제어자
- import와 package
오늘의 내용
- 메서드 오버로딩
- 함수가 하나의 기능이 아닌 하나의 메서드 이름으로 여러 기능을 구현하는 것
- 같은 이름을 가진 메서드라도 타입, 순서가 다르면 동일한 이름 사용 가능
- 응답 값만 다르거나 접근제어자만 다른건 사용불가능하다
- 메서드의 이름은 하나만 사용해서 메서드 이름 절약이 가능하다
- 기본형&참조형 매개변수
- 기본형 매개변수
- 메서드를 호출할 때 전달한 매개값으로 지정한 값을 매개변수에 복사해서 전달
- 기본형일때는 값자체를 복사해서 원본값이 변경되지 않음
- 참조형 매개변수
- 메서드를 호출할 때 전달할 매개값으로 지정한 값의 주소를 매개변수에 복사해서 전달
- 저장된 곳의 원본주소를 알고있어 값을 읽거나 변경 가능
- 반환타입도 참조형이 될 수 있다
- 기본형 매개변수
- 멤버
- 멤버 = 필드 + 메서드
- 필드와 메서드는 선언 방법에 따라 인스턴스 멤버와 클래스 멤버로 구분
- 인스턴스 멤버
- 인스턴스 멤버 = 인스턴스 필드 + 인스턴스 메서드
- 객체를 생성해야 사용 가능하다
- 객체의 필드는 각각의 인스턴스마다 고유하게 값을 가질 수 있다
- 메모리 효율 때문에 메서드는 메서드 영역에 두고 모든 인스턴스들이 공유해서 사용한다
- 생성과 사용을 분리해야된다
- 인스턴스 메서드도 클래스 필드를 사용할 수 있다
- 클래스 멤버
- 클래스 멤버 = 클래스 필드 + 클래스 메서드
- 클래스 로더에 의해 메서드 영역에 저장되고 사용된다
- 메서드 영역의 클래스와 같은 위치에 고정적으로 위치
- 객체 생성없이도 사용 가능
- static 키워드를 이용
- 공용적인 데이터를 저장할 때 사용
- 지역변수
- 해당 메서드가 실행될 때마다 독립적인 값을 저장하고 관리
- 메서드 내부에서 정의될 때 사용된다
- 메서드가 종료될 때 소멸된다
- final 필드
- 최종적인 필드라는 뜻이다
- 초기값이 지정되면 프로그램 실행도중 수정이 불가하다
- final String company = "GENESIS"; 선언 방법
- 상수
- 공용이고 수정이 되지 않는다
- 전체적으로 대문자로 작성한다
- static final String COMPANY = "GENESIS"; 선언 방법
- 생성자
- public Car() {} // 선언
Car car = new Car(); // 호출 - 객체가 생성될 때 호출되며 객체를 초기화 한다
- 기본 생성자 : 괄호안에 아무것도 넣지않는 생성한다
- 모든 클래스는 생성자가 하나 이상 존재한다
- 생성자를 선언하지 않으면 컴파일러는 기본 생성자를 바이트코드 파일에 자동 추가
- 하나의 생성자라도 선언되어있으면 기본 생성자를 추가 안됨
- public Car() {} // 선언
- this
- 인스턴스 자신을 표현하는 키워드
- 생성자를 사용할 때는 붙이는게 좋다
- 내부 생성자 및 메서드에서 내부 멤버에 접근하기 위해 사용
- 필수는 아니지만 상황에 따라 필수가 될 수 있음
- 객체의 필드를 초기화할 때 중복되는 코드를 줄여줌
- 다른 생성자를 호출할 때 반드시 생성자의 첫줄에 작성해야한다
- this(...) : 자신의 생성자를 호출하는 키워드
- 제어자
- 클래스, 변수, 메서드의 선언부에 사용되어 부가적인 의미를 부여해준다
- 접근 제어자 : public, protected, default, private
- 그 외 제어자 : static, final, abstract
- 접근 제어자
- 단 하나만 사용가능하다
- 인스턴스의 생성을 제한할 수 있다
- 클래스의 접근 제어자와 일치한다
- 멤버 또는 클래스에 사용, 데이터를 보호하기 위해 외부에서 접근하지 못하도록 제한
- public : 접근 제한 없음
- protected : 같은 패키지 내에서 다른 패키지의 자손클래스에서 접근 가능
- default : 같은 패키지 내에서만 접근 가능
- private : 같은 클래스 내에서만 접근 가능
- 메서드와 멤버변수에선 모두 사용가능, 지역변수에선 사용불가
- Getter와 Setter
- Getter
- 외부에서 객체의 private한 필드를 읽을 때 사용
- 규칙은 get + 필드이름(첫 글자 대문자)
- 인스턴스 메서드 호출과 사용방법이 동일하다
- 예시 : public double getPrice( ) { }
- Setter
- 외부에서 객체의 private한 필드를 저장 및 수정할 필요가 있을 때 사용
- 규칙은 set + 필드이름(첫 글자 대문자)
- 인스턴스 메서드 호출과 사용방법이 동일하다
- 예시 : public void setModel(String model) { }
- package와 import
- package
- 클래스의 일부분이며 클래스를 식별해준다
- 상위 패키지와 하위 패키지를 도트로 구분
- 다른 패키지에서 접근할 땐 경로를 적어야 한다
- import
- 다른 패키지에 있는 클래스를 사용하기 위해 명시하는 키워드
- 서로 다른 패키지에 있는 같은 이름 클래스를 동시에 사용하려면 패키지명을 전부 명시해야한다
- package
- Getter
오늘의 회고
- 듣는 강의의 양은 줄었는데 내용은 많아지는 기이한 현상이 일어났다
- 강의가 계속 될수록 머리속은 뒤죽박죽
- 이래서 개인프로젝트 마감기한 맞춰서 제출가능할지 의문이다
'TIL' 카테고리의 다른 글
내일배움캠프 3주차 개인프로젝트 (0) | 2024.05.01 |
---|---|
내일배움캠프 3주차 TIL + 오류와 예외처리 (0) | 2024.04.29 |
내일배움캠프 2주차 TIL + 상속, 추상클래, 인터페이스 등 (0) | 2024.04.26 |
내일배움캠프 2주차 TIL + 연산자, 조건문, 반복, 배열, 컬렉션..... (0) | 2024.04.24 |
내일배움캠프 2주차 TIL + 변수 (0) | 2024.04.22 |