객체=Object
객체지향개념을 왜 도입했나?
적은 노력으로 유지보수
코드의 중복을 제거
재사용성 높임
객체지향 4가지 핵심특징
1. 캡슐화
2. 상속
3. 추상화
4. 다형성
객체지향개념은 규칙이다.
일단 외우기!! 이해보다는 실습을 위주로 하기
- 과자틀, 제품 설계도 → 클래스 (Class)
- 과자틀에 의해서 만들어진 과자들 , 제품→ 객체 (Object)
- 특정 클래스로부터 생성된 객체 =인스턴스
클래스는 객체를 정의 해 놓은것
클래스는 객체를 생성하는데 사용
클래스-----인스턴스화----->인스턴스(객체)
객체=속성(변수)+기능(메소드)
클래스가 왜 필요한가?
객체를 생성하기 위해
객체가 왜 필요한가?
객체를 사용하기 위해
객체를 사용한다는것은?
객체가 가진 속성과 기능을 사용하려고
객체 변수는 서로 공유되지 않는다.
하나의 클래스에 한개의 public 클래스만 존재한다.
소스파일의 이름은 public 클래스와 일치해야된다.
하나의 소스파일에 두개 이상의 클래스 파일을 만들 수 있다.
그러나 하나의 소스파일에 하나의 클래스만 작성하는것이 바람직하다.
객체의 생성
클래스명 변수명;
변수명 = new 클래스명();
객체의 사용
t.channel = 7;--->변수 사용
t.channelDown();--->메소드 호출
1. 변수 - 하나의 데이터를 저장할 수 있는 공간
2. 배열 - 같은 종류의 여러 데이터를 하나로 저장할 수 있는 공간
3. 구조체 - 서로 관련된 여러 데이터를 하나로 저장할 수 있는 공간
4. 클래스 - 데이터롸 함수의 결합 (구조체 + 함수)
클래스의 정의
1. 설계도
2. 데이터+함수
3. 사용자 정의 타입
static 변수는 공유된다.
메소드란?
{ } 문장들을 묶어놓은것
작업단위로 문장들을 묶어서 구별
값을 받아서 처리하고 결과를 반환(출력)
메소드의 장점 - 중복 코드 제거, 관리 용이, 재사용 가능
메서드 작성할때
반복적으로 수행되는 여러 문장을 메서드로 작성
하나의 메서드는 한가지 기능만 수행하도록 작성하기
메소드= 선언부 + 구현부
반환타입 메소드이름 (타입변수명, 타입변수명, ........)
return 문
실행 중인 메서드를 종료하고 호출한 곳으로 되돌아간다.
return 반환값;
메소드가 작업을 마쳤을때 써야한다
반환타입이 void일 경우 생략가능하다. 컴파일러가 자동으로 추가한다.
반환타입이 void가 아닐 경우, 반드시 return문이 필요하다.
에러 : return문이 없음...?
왜 이런 에러가 나오지? 조건식을 쓸때 참인경우와 거짓인 경우 둘다 만들어야한다.
반드시 타입에 맞는 값을 return해야된다. 조건식이 참일때만 되는경우 에러-->거짓일때도 eles return으로 설정해줘야된다.
호출스택(call stack)
스택 : 밑이 막힌 상자. 위에 차곡차곡 쌓인다. 꺼낼때는 위에 것이 가장 먼저 꺼내진다.
호출 스택 : 메서드 수행에 필요한 메모리가 제공되는 공간
메소드가 호출되면 호출 스택에 메모리 할당, 종료되면 해제
기본형 매개변수- 변수의 값을 읽기만 할 수 있다.(read)
참조형 매개변수 -변수의 값을 읽고 변경할 수 있다.(read&write)
참조형 반환타입
반환타입이 참조형일 경우 객체의 주소를 반환한다.
static 메소드와 instance 메소드
인스턴스 메소드
-인스턴스 생성 후 참조변수.메소드이름() 으로 호출한다.
-인스턴스 멤버와 관련된 작업을 하는 메소드
-메소드 내에서 인스턴스 변수 사용 가능
static 메소드
-객체생성없이 클래스이름.메소드이름() 으로 호출한다.
-인스턴스 멤버와 관련이 없는 작업을 하는 메소드
-메소드 내에서 인스턴스 변수 사용 불가
'연습하기 > 자바의 정석' 카테고리의 다른 글
자바의 정석 챕터 4-1 (0) | 2022.12.04 |
---|---|
자바의 정석 챕터3-2 (0) | 2022.12.04 |
자바의 정석 챕터3-1 (0) | 2022.11.09 |
자바의 정석 챕터 2 - 3 (0) | 2022.11.07 |
자바의 정석 챕터 2-3 (0) | 2022.11.07 |
댓글