수업을 들으면서 오늘 느낀 것은
아는 것이 없으면 무엇을 모르는지 모를 뿐만아니라,
개념을 정확하게 알고있는 상태로 수업을 들어야 심화 개념을 온전하게 받아 들일 수 있으며
이해한 심화개념을 기반으로 스스로 더 많은 질문을 하여 배움의 흐름을 잡아나갈 수 있기 떄문이다.
실제로,
자바의 '객체,클래스,함수,변수'와 같은 기본 개념들을 정확히 해 둔 덕분에 다중 for문이나 2차원 배열도 재미있게 들을 수 있었다.
따라서 이번 장에서는 자바의 한 페이지를 온전히 설명하기 위해 기본 개념을 탄탄하게 하는 시간을 갖고자 한다.
아래는 조사한 개념의 관계도다.
파일이 커서 글씨가 잘 안보이는데, 분할해서 설명을 적어놓았으니 아래파일은 참고만 하자.
접근제한자는
접근제한자의 종류는
1. public
2. protected
3. default
4. private
로 구성된다.
다른 패키지나 클래스에서도 접근할 수 있다.
동일한 패키지 내의 클래스들과해당 클래스를 상속받은 클래스에서 접근할 수 있다.
같은 패키지 내에서 접근 가능하다.
오직 동일한 클래스 내에서만 접근 가능하다.
중요하다고 생각한 것은 protected와 private 접근제한자를 통해 보안을 강화할 수 있다는 것이다.
private
<보안이 강화되는 이유>
- 캡슐화를 통해 클래스의 내부 구현을 숨길 수 있다.
protected
<보안이 강화되는 이유>
- 외부에서의 직접적인 접근을 제한함.
- 상속 계층 내에서의 상호작용과 확장성을 보호
또한 private로 실습을 진행해 봤는데,
class에 선언되지 않고 함수 내에 선언되면 오류가 나는걸 알 수 있었다.
또한 사용하기 위해서는 함수 내에서 객체를 생성하는 방식(new)으로 사용할 수 있다.
객체 지향 프로그래밍에서 객체를 생성하기 위한 설계 도구.
객체의 상태와 행동을 정의하는 멤버변수(속성)과 메서드의 집합이다.
객체의 상태를 나타내는 데이터
클래스의 멤버 변수로 선언된다.
객체의행위를 정의하는데 사용.
특정 작업을 수행하기 위한 코드 블럭이다
객체는 상태를 나타내는 데이터다.
클래스의 멤버 변수로 선언된다.
객체를 생성할 때 호출되는 특별한 메서드이다.
생성자는 클래스와 동일한 이름을 가지고 있으며, 객체를 초기화하는 역할을 한다.
목적은 아래와 같다.
- 멤버 변수의 초기화
- 객체의 일관성 유지
: 객체를 사용하기 전에 필요한 데이터로 초기화하여 객체의 내부 상태를 일관되게 설정- 코드의 간결성
: 객체를 생성하고 초기화하는 과정을 한 번에 처리할 수 있다.- 인스턴스 생성의 편의성
: 매개변수를 통해 외부에서 데이터를 전달받기 때문에 객체를 생성하는 과정이 간편해진다.
특징은 아래와 같다.
- 객체의 초기화
- 클래스와 동일한 이름
- 반환 타입 없음!
- 자동 호출
- 오버로딩 가능
미리 정의된 것은 내장함수인줄 알았는데,
Scanner와 같은 내장클래스와
this와 같은 키워드로 미리 정의된 것이 나뉜다는 것을 알았다.
이에 대한 것을 그림으로 도식화 하고, 개념을 정리하는 시간을 가졌다.