[Java] 클래스(Class)

2019. 10. 16. 15:40·Java

클래스는 객체(Object)를 만드는 설계도

클래스로 부터 만들어진 객체를 인스턴스(instance)라고 한다.

 

자바는 객체지향프로그래밍인데, 클래스를 설계하고 설계된 클래스로 객체를 생성한다음 그 객체를 이용하는 프로그래밍이다.

 

클래스 선언(설계)

public class 클래스이름 {
}

일반적으로 소스 파일당 하나의 클래스를 선언하지만 2개 이상의 클래스 선언도 가능하긴 하다.

 

객체 생성

new 클래스();

new는 클래스로부터 객체를 생성시키는 연산자

new 연산자 뒤에는 생성자가 오는데, 생성자는 클래스() 형태를 가지고 있음

생성된 객체는 메모리 힙(heap) 영역에 생성된다.

 

new 연산자는 힙 영역에 객체를 생성시킨 후 객체 주소를 리턴함

이 주소를 클래스 변수에 저장해두면 변수를 통해 객체를 사용할 수 있다.

클래스 변수;
변수 = new 클래스();

또는

클래스 변수 = new 클래스();

클래스의 구성 멤버

클래스에는 객체가 가져야 할 구성 멤버가 선언된다.

구성 멤버에는 필드, 생성자, 메소드가 있다.

얘네는 생략되거나 복수의 개수로 작성될 수 있음

public class ClassName
{
   //필드
   int fildname;
   
   //생성자
   ClassName() {…}

   //메소드
   void methodName() {…}
}

 

필드

∙ 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳

∙ 선언 형태는 변수와 비슷하지만 변수는 아님

∙ 변수는 생성자와 메소드 내에서만 사용되고 생성자와 메소드가 실행 종료되면 자동 소멸

∙ 필드는 객체 전체가 소멸되지 않는 한 객체와 함께 존재

 

 

생성자

∙ new 연산자로 호출되는 특별한 중괄호 블록

∙ 객체 생성 시 초기화를 담당

∙ 필드를 초기화하거나 메소드를 호출해서 객체를 사용할 준비를 함

∙ 리턴타입이 없음

 

 

메소드

∙ 객체의 동작에 해당하는 중괄호 블록

∙ 메소드를 호출하게 되면 중괄호 블록에 있는 모든 코드들이 일괄적으로 실행됨

∙ 필드를 읽고 수정하는 역할

∙ 다른 객체를 생성해서 다양한 기능 수행

∙ 객체 간의 데이터를 전달하는 수단

∙ 외부로부터 매개값을 받아 실행에 이용하고, 실행 후 결과값을 외부로 리턴할 수도 있음

 

'Java' 카테고리의 다른 글

[자바 프로그래밍 입문] 객체와 메모리  (0) 2021.11.09
[자바 프로그래밍 입문] 02 Java 프로그램의 실행 구조  (0) 2021.11.04
[자바 프로그래밍 입문] 01 Hello Java World!  (0) 2021.11.03
[JAVA] Chapter 02 - 1 변수  (0) 2019.11.12
[Java] Map  (0) 2019.08.27
'Java' 카테고리의 다른 글
  • [자바 프로그래밍 입문] 02 Java 프로그램의 실행 구조
  • [자바 프로그래밍 입문] 01 Hello Java World!
  • [JAVA] Chapter 02 - 1 변수
  • [Java] Map
soyeon26
soyeon26
  • soyeon26
    개발 일지
    soyeon26
  • 전체
    오늘
    어제
    • 분류 전체보기 (86)
      • Web (1)
        • Web (1)
        • HTTP (0)
      • Java (25)
        • JVM (0)
      • Spring (9)
      • AWS (0)
      • Language (4)
        • Java Script (3)
        • Type Srcipt (1)
      • Front (19)
        • HTML+CSS (4)
        • React (15)
      • Back (20)
        • JSP (0)
        • Database (5)
        • NestJS (6)
      • Devops (6)
        • Docker (1)
        • Git & SVN (5)
      • App (7)
        • Android (7)
      • IT 정보 (3)
      • 회고록 (0)
  • 블로그 메뉴

    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    Spring
    Next.js 필요성
    java의 정석
    과학기술인 번호 발급
    sql강의
    강의 후기
    javascript
    과학기술인번호 조회
    자바스크립트set
    과학기술인 등록
    중복제거
    React Next.js
    Next.js
    csrvsssr
    SSR
    springboot
    인프런
    과학기술인 등록번호 발급
    CSR
    과학기술인등록번호 조회
    csr과ssr의 차이
    데이터베이스 강의
    백엔드
    React
    강의후기
    Java
    스프링부트
    김영한
    프론트엔드
    SQL강의 추천
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
soyeon26
[Java] 클래스(Class)
상단으로

티스토리툴바