일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- 운영체제의 예
- 운영체제란 무엇인가
- 호출스택
- this()
- 조상의 생성자
- 기본형 매개변수
- 클래스 변수
- static import문
- 초기화 순서
- 참조형 매개변수
- 운영체제의 구조
- this()와 참조변수 this 차이점
- 이것이코딩테스트다
- 명예의전당(1)
- static 메서드
- webview_flutter
- 오버로딩
- stateless widget
- 인스턴스 메서드
- stateful widget 생명주기
- object클래스
- 운영체제의 분류
- 운영체제의 목적
- 오버라이딩과 오버로딩 차이점
- 참조형 반환타입
- PriorityQueue
- stateful widget
- 객체 배열
- FLUTTER
- 프로그래머스
- Today
- Total
Coram Deo
ch 6-1~12 [객체지향 개념] - 클래스, 객체, 인스턴스, 객체 배열, 클래스 변수, 인스턴스 변수, 지역변수 본문
<9/6 자바의 정석 복습>
ch6-1 객체지향 언어(OOP Object-oriented programming)
객체지향언어 = 프로그래밍 언어 + 객체지향 개념(규칙)
객체지향언어를 사용하는 이유 : 코드 재사용성 높음, 유지보수 용이, 중복 코드 제거
객체지향 핵심 개념 : 캡상추다
-> 캡슐화 상속 추상화 다형성
* 다형성이 가장 중요!
- 객체지향 개념 공부법
(6장 2,3번 반복 + 7장 다형성까지만 공부) -> 반복 + 외우기(A4 2장에 요약하기)
7장 뒷부분은 나중에 공부.
8,9,10,11,12,13장 진도나가면서 객체지향 개념 계속 반복
- 책 5번 반복한 후에 관심분야에 따라서
웹 : JSP, Spring 공부 (실습)
앱 : 안드로이드 만들기(실습)
위 실습을 통해 코딩 개념이 쌓인 후 -> 디자인 패턴 공부(이론서)
ch6-2 클래스와 객체
클래스 -> 제품 설계도(TV 설계도)
객체 -> 제품(TV)
클래스 정의 : 객체를 정의해 놓은 것
클래스 용도 : 객체를 생성하는데 사용
객체 정의 : 실제로 존재하는 것. 사물 또는 개념
객체 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름.
객체 = 속성(변수) + 기능(메서드)
ch6-4 객체와 인스턴스
객체 : 모든 인스턴스를 대표하는 일반적 용어
TV 클래스로부터 만들어낸 객체 -> TV 인스턴스
클래스(설계도) -> 인스턴스화 -> 인스턴스(객체, 제품)
ch6-5 한 파일에 여러 클래스 작성하기
0. 1개의 소스파일에는 1개의 클래스만 작성하는 것이 바람직.
1. public class가 있을 경우, 1개의 소스파일에는 1개의 public class만 허용
2. public class이름과 소스파일 이름은 반드시 같아야 함.
3. public class가 없을 경우, class들의 이름 중 하나는 소스파일 이름과 같아야 함.
4. main 메서드가 포함되어 있는 클래스의 이름은 소스파일 이름과 같아야 함. 안그럼 컴파일은 되는데 실행X.
만약 이름이 다르다면, 수동으로 지정 가능.
run -> run confiugrations -> main 메서드가 있는 클래스를 지정할 수 있음.
원래 자동으로 설정되어있는 기본값은 소스파일 이름 클래스임.
ch6-6,7 객체의 생성과 사용
클래스(= 설계도), 객체(= 제품), 참조변수(= 리모컨)
클래스에는 멤버(변수, 메서드)가 있음
1. 설계도를 작성한다. (= 클래스 작성)
2. 제품을 만든다. (= 참조변수 리모콘을 통해 객체 생성) Tv t = new Tv();
3. 제품을 사용한다. (객체의 사용 -> 변수, 메서드 사용)
* 객체 생성 : 참조변수와 객체를 연결
객체를 생성하면 메모리 어딘가에 만들어짐. 그 메모리의 주소를 참조변수에 대입.
두 개의 리모콘이 하나의 객체를 가리킬 수 있음.
그러나 하나의 리모콘으로 두 개의 객체를 가리킬 수는 없음.
ch6-8 객체 배열
객체 배열 == 참조변수 배열
Tv [] tvArr = new Tv[3]; // 참조변수 배열 만든 것.
tvArr[0] = new tv();
tvArr[1] = new tv();
tvArr[2] = new tv();
객체 배열 : 참조변수 3개를 묶어서 하나의 배열로 만든다.
ch6-9,10 클래스의 정의
클래스
1. 설계도
2. 데이터 + 함수
3. 사용자 정의 타입 : 원하는 타입을 직접 만들 수 있다.
- 변수 : 하나의 데이터를 저장할 수 있는 공간
- 배열 : 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
- 구조체 서로 관련된 여러 데이터(종류 관계X)를 하나로 저장할 수 있는 공간
- 클래스 : 데이터와 함수의 결합(구조체 + 함수)
ch6-11 선언위치에 따른 변수 종류
클래스 영역 : iv(instance variable), cv(class variable, iv앞에 static붙이면 됨, 아무때나 사용가능), 선언문만 가능
메서드 영역 : lv (=local variable)
- 생성 시기
iv : 인스턴스(객체)가 생성되었을 때(중요!)
cv : 클래스가 메모리에 올라갈 때(하드디스크에서 메모리로 올라갈 때)
lv : 변수 선언문이 수행되었을 때 (메서드 종료시 자동 제거)
객체 = iv를 묶어놓은 것(완전 정확한 말은 아니지만, 프로그래밍 관점에서 이해할 때 이렇게 생각하기)
ch6-12 클래스 변수와 인스턴스 변수
* 원카드 예시
카드 속성 : 무늬, 숫자, 폭, 높이 등
인스턴스 변수 -> 카드마다 다른 개별 속성 : 무늬, 숫자
클래스 변수 -> 카드마다 같은 공통 속성 : 폭, 높이
cv는 항상 한 개씩만 존재 / iv는 객체마다 한 개씩 있음.
만약 클래스 변수를 바꾸고 싶다면, 참조변수(리모콘)가 아닌 클래스 이름을 앞에 쓰는 걸 권장함.
예시) Card.width = 200;
'자바의 정석' 카테고리의 다른 글
ch 6-26~31 [객체지향 개념] - static 메서드, 인스턴스 메서드, 오버로딩 (0) | 2022.11.01 |
---|---|
코포자를 위한 코딩 공부법 #3 (0) | 2022.10.31 |
코포자를 위한 코딩 공부법 #1 (0) | 2022.10.31 |
코포자를 위한 코딩 공부법 #2 (0) | 2022.10.31 |
ch 6-14~25 [객체지향 개념] - 메서드, 호출스택, 기본형 매개변수, 참조형 매개변수, 참조형 반환타입 (0) | 2022.10.31 |