일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 웹 애플리케이션 요청 흐름
- Exception Handing
- 선언적 배포
- ubuntu redis
- 특정 행 출력
- apt-rdepends
- 자료구조
- 폐쇄망
- docker
- SQL 내장 함수
- redis 설정
- kafkaCLI
- 예측 범위 내의 요구사항
- 웹 애플리케이션 아키텍처
- 의존성 패키지 설치
- Port already in use: 9999
- REST 성숙도 모델
- abstract 제어자
- 오프라인 설치
- 도커
- 포함 관계
- 쿠버네티스 패턴
- 객체
- 예외 전가
- Oracle.DatabaseError
- redis 외부설정
- 특정 행
- 의존성 설치
- redis 명령어
- image 압축
- Today
- Total
리꾸므
[JAVA] 객체지향 프로그래밍 기초(feat. 클래스, 객체, 필드) 본문
클래스(Class)
- 클래스(Class)는 '객체(Object)를 정의해놓은 것' 객체 그 자체가 아닌 객체 생성하는데 사용되는 틀.
- 클래스는 객체를 생성하는데 사용되며, 객체는 클래스에 정의된 대로 생성된다.
클래스의 정의 : 클래스란 객체를 정의해 놓은 것이다.
클래스의 용도 : 클래스는 객체를 생성하는데 사용된다.
클래스 구성요소 : 필드(int x = 1;), 메서드(void prin(){}), 생성자(Post), 이너클래스(class Post2)
객체(Object)
- 객체의 사전적인 정의는 '실제로 존재하는 것'
- 우리가 주변에서 볼 수 있는 사물들이 곧 객체
- 클래스와 객체 관계는 설계도와 제품의 관계
- 객체지향이론에서는 사물과 같은 유형적인 것뿐만 아니라, 개념이나 논리와 같은 무형적인 것들도 객체로 간주한다.
- 프로그래밍에서의 객체는 클래스에 정의된 내용대로 메모리에 생성된 것을 의미한다.
객체의 정의 : 실제로 존재하는 것. 사물 또는 개념.
객체의 용도 : 객체가 가지고 있는 기능과 속성에 따라 다름.
객체의 구성요소 : 속성, 기능
객체 구조
클래스명 참조_변수명 = new 생성자();
- 참조 변수는 실제 데이터 값이 아닌 힙 메모리의 주소값을 가리킴
- new 키워드는 생성된 객체를 힙 메모리에 넣으라는 의미
- new 키워드와 생성자를 통해 클래스의 객체를 생성한다는 것은 해당 객체를 힙 메모리에 넣고 그 주소값을 참조변수에 저장하는 것과 같다.
Post(클래스) post(참조 변수) = new Post();
- Post: 클래스 영역의 저장
- post: 스택 영역의 저장
- 생성자로 만들어진 인스턴스는 힙 메모리 영역들어가며 객체 내부에는 클래스의 멤버들 위치
필드 : 클래스에 포함된 변수, 객체의 속성을 정의
종류 : 클래스 변수, 인스턴스 변수, 지역변수
class Post { // => 클래스 영역
int postId; // 인스턴스 변수
static int classPostId; // 클래스 변수(static 변수, 공유변수)
void method() { // => 메서드 영역
int postId = 0; // 지역 변수. {}블록 안에서만 유효
}
}
필드 종류 | 특징 | 저장 영역 |
인스턴스 변수 | 고유한 속성을 저장하기 위한 변수, new 생성자()를 통해 인스턴스가 생성될때 생성 | 힙 메모리 영역 |
클래스 변수 | static 유무, 공통된 저장공간을 공유 | 힙 메모리 영역 |
지역 변수 | 메서드 내에 선언, 매세더 내에서만 사용가능 변수 직접 초기화하지 않으면 값 출력시 오류 발생 |
스택 메모리 영역 |
'발걸음 > 일지' 카테고리의 다른 글
[JAVA] 객체지향 프로그래밍 기초3(feat. 생성자, this, 내부클래스) (0) | 2022.11.06 |
---|---|
[JAVA] 객체지향 프로그래밍 기초2(feat. static, 메서드) (0) | 2022.11.06 |
26번째 발자국_Ubuntu를 통해 Redis 사용하기(feat. vi) (1) | 2022.09.22 |
25번째 발걸음_혼돈의 회원파트(feat.Redis,Docker) (0) | 2022.09.22 |
6주차_회고 (0) | 2022.09.11 |