| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 데이터조회예제
- List데이터조회
- JavaScript #자바스크립트 #선택자 #HTML태그접근 #JS
- JavaScript #자바스크립트 #복습 #배열 #Array
- JavaScript #예제 #복습 #Web #웹 #개발자가되고파ㅜㅜ
- 페이징처리예제
- JavaScript #선언적함수 #익명함수 #화살표함수 #함수선언방법 #복습
- Java #JDBC #Mybatis #동적SQL
- Java
- 예제
- 스프링
- springframework
- 프레임워크
- 데이터매핑
- 서블릿기초 #servlet #java #webprogramming
- 어노테이션
- 동적sql
- Java #Web #공부 #복습 #Servlet #서블릿 #포워드 #sendRedirect #dispatcher
- Java #자바 #인터페이스 #implements #다형성 #interface #복습 #정리 #나만의공부
- WEB
- mybatis자료형 #참고자료
- Spring
- JavaScript #인라인 #인터널 #익스터널 #데이터입출력
- 복습
- Java #자바 #초보개발자 #다형성 #동적바인딩 #instanceof #학습 #요약정리 #복습
- fremework
- mybatis
- 특징및기본구조
- 데이터베이스 #DataBase #Oracle #DB #DataBase개요
- 정리
- Today
- Total
개발군싹
[Java] 객체란(1)? 본문

객체지향언어
현실 세계는 사물이나 개념처럼 독립되고 구분되는 각각의 객체로 이루어져 있으며, 각 객체간의 상호작용이 발생한다. 이 개념을 컴퓨터로 옮겨 놓아 만들어낸 것이 객체지향언어이다.
자바에서 객체 (Object)
클래스에 정의된 내용대로 'new'연산자를 통해 메모리 영역에 생성된것을 말한다.

객체의 특성에 대한 정의를 한 것으로 캡슐화(encapsulation)를 통해 기능을 포함한 개념이다.
사물이나 개념의 공통 요소를 추상화(abstraction)하여 정의한다.
객체의 추상화(abstraction)

회원관리 프로그램을 만든다고 가정해보자. 위 표와 같이 회원정보에 필요한 항목들을 정리하고 해당 항목의 변수와 자료형을 정하여 추상화 결과물을 도출해 낼 수 있다. 이렇게 추상화한 결과를 토대로 우리는 프로그래밍 언어를 사용해서 각 데이터를 저장할 수 있는 저장소를 선언 및 사용할 수 있다.
정리하자면 객체지향언어에서의 객체는 클래스에 정의된 내용을 토대로 메모리에 결과물을 할당하는 것이다.

객체는 배열과 비슷하게 객체 변수를 선언하고 new연산자와 생성자를 사용하여 객체를 생성할 수 있다.
배열과 다른점은 배열은 같은 자료형을 저장할 수 있는 공간들을 할당하는 것이지만 객체는 여러개의 자료형을 저장할 수 있는 공간들을 할당할 수 있다. 이는 우리가 프로그래밍을 하는데 있어서 폭넓은 정보를 저장 할 수 있도록 도와준다.
클래스(Calss)
- 클래스 선언
//클래스 선언 방법
[접근제한자][예약어]class 클래스명 {
//필드, 멤버변수
[접근제한자][예약어]자료형 변수명;
[접근제한자][예약어]자료형 변수명;
[접근제한자]생성자명(){ }
[접근제한자]반환형 메소드명(매개변수){
//메소드 로직
}
}

클래스에서 필드(Field)란?
필드는 클래스 내에 선언하는 변수(저장공간)를 말한다. 이를 멤버변수라고도 이야기한다.
필드 표현식
[접근제한자][예약어]Class 클래스명{
[접근제한자][예약어]자료형 필드명[=초기값];
}
접근제한자

클래스는 2개의 접근제한자로 선언할 수 있지만 필드는 4개의 접근제한자로 선언할 수 있다.
보통 우리가 앞으로 구현하고 사용할 클래스에서는 'private'로 접근제한자를 선언할 것이다. 이는 클래스의 특징인 '캡슐화(Encapsulation)'때문에 그렇다. 클래스는 자바에서 흔히 '설계도'라고 이야기한다. 이때문에 설계도의 설정한 값들을 외부에서 쉽게 바꿀수 있으면 안되기 때문에 클래스 내부의 필드(멤버)변수는 'private'로 선언하여 클래스 내에서만 직접접근 가능하도록 한다.
예약어
필드의 예약어는 'static'과 'final' 두가지가 있다. 두 예약어의 쓰임은 후에 알아보도록하며 여기서는 각 예약어의 정의만 알아보도록 하겠다.
- static : 같은 타입의 여러 객체가 공유할 목적의 필드, 프로그램 실행(run time)시 정정 메모리 영역(static영역)에 자동할당된다.
public static String msg;
- final : 하나의 값을 고정적으로 저장해서 사용하기 위해 선언하는 예약어, 보통은 final 예약어를 사용하면 '상수(constant)'를 선언한것과 같이 값을 변경하지 않고 사용할 변수에 사용한다.
- (** 상수는 불변의 값이며 초기값을 설정해줘야 한다.)
public final int AGE=19;
초기화 블럭
초기화 블럭은 클래스를 객체화(생성)할 때 자동으로 실행되는 로직이다. 초기화 블록을 이용하여 선언된 필드들을 초기화 할때 사용한다. 초기화 블록은 클래스 내 { }(중괄호)를 이용하여 선언할 수 있다.
public class InitialTest {
private int age;
private String name;
private double height;
{
//인스턴스 초기화블럭
System.out.println("인스턴스 초기화 블럭 실행");
age = 31;
name = "홍길동";
height = 177.3;
}
}
'Java' 카테고리의 다른 글
| [Java] 객체 배열(Object Array) (0) | 2023.09.17 |
|---|---|
| [Java]객체(2) - 생성자(Contructor)와 this (0) | 2023.09.15 |
| [Java] 배열 (0) | 2023.09.12 |
| [Java] 반복문 (0) | 2023.09.12 |
| [Java] 조건문 (0) | 2023.09.12 |