<< 객체지향 >>
* 구조
1. class
- field
- method
- 생성자
2. 캡슐화
3. 상속
4. 다형성
- 오버로딩(메소드의 특성)/클래스와 다형성의 관계
- 오버라이딩(메소드의 특성)/상속과 다형성의 관계
5. API
- lang
- util
- IO(네트워크 프로그래밍에서 중요)
* 특징
1. 객체지향 특징
- 객체의 정의: 정보를 효율적으로 관리하기 위해 의미를 부여하고 분류하는 논리적 단위
2. 클래스 구조
- 클래스 만들시 앞에 대문자(무조건 기본관례)
- 메소드 이름: 소문자로 시작
- 합성단어: 네이밍 컨벤션에 따라서 만들것
- 자바는 비즈니스언어: 이름을 잘 작성하고, 무슨 의미인지 잘 알아야한다.
3. 코드실행과정
< JVM >
java - cp(classpath) - target - 클래스
=> code compile 전 수정, save시 target 폴더안에 .class 파일 존재
* method area
1. .class가 로드됨.
2. static main: 객체 생성을 하지 않기 때문.(객체는 heap영역에서 생성)
3. 객체를 생성할 정보를 담고있음.
4. main이후 객체생성 정보를 받으면 공간의 절반은 static, 나머지는 정보의 field 등.. (해당 class에서 정보가 가시적으로 보이지 않다면 classpath에서 찾는다)
- static변수 이곳에서 생성
* stack
- 지역변수의 저장값은 무조건 stack에 들어감
- block이 끝나면 지역변수는 pop이 된다.
- 메모리 관리의 중요성에 대해서 잘 알도록 하자.
* heap
- 객체가 만들어 지는 곳.
5. 필드정보를 보고 객체를 생성
6. 객체의 정보들이 초기화(문자는 null, 정수는 0)
7. 저장값을 참조해서 변수에 수정
4. 접근제어자(접근제어자는 붙이는게 좋다.) => 원칙!
- 쉽게 이해하는 tip
1. default 는 별 생각하지마라(코드에서 잘사용X) , 같은 패키지에서는 사용가능
2. public: 어디에서든 접근가능
3. private: 같은 클래스내에서 접근 가능(field는 private를 붙이는것이 좋음, 정보은닉 때문에.)
4. protected: 같은 패키지 또는 상속받은 클래스에서 사용
5. 캡슐화
6. 정보은닉
- 데이터 보호
- getter(읽기 전용), setter(쓰기전용)
- 메소드를 통해서 정보에 접근을 하면 제어가 가능( 조건문, 반복문 등을 통해서 )해서 정보보호가 가능하다.
* 메소드
- 식별자: 후에 프레임워크를 사용시 잘 따라야한다.(규칙을 잘 지킬 것.)
- 시그니처: 메소드의 인자의 타입, 개수, 순서
- static: 클래스 변수.(그냥 접근도 가능하고 클래스로 접근도 가능하다)
*package: 소문자로 생성
* 생성자
- 호출 위치가 new 뒤에 붙어 있음.
- 객체가 생성된 후에 호출이됨.
- 모든 클래스는 하나 이상의 생성자가 있어야한다.
- 생성자를 따로 명시하지 않아도 기본생성자가 기본적으로 있다.
* 오버로딩
- 코드의 중복을 줄이도록 하자, 피하자
'study > 개인공부' 카테고리의 다른 글
Java 기본(2) - 문자열 (0) | 2021.05.04 |
---|---|
wrapper class (0) | 2021.05.03 |
M1-W2-D1 (0) | 2021.05.03 |
M1-W1-D4 (0) | 2021.04.29 |
M1-W1-D2 (0) | 2021.04.27 |