[Java] 클래스(Class)

2019. 10. 16. 15:40·Language/Java

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

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

 

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

 

클래스 선언(설계)

public class 클래스이름 {
}

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

 

객체 생성

new 클래스();

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

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

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

 

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

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

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

또는

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

클래스의 구성 멤버

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

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

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

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

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

 

필드

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

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

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

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

 

 

생성자

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

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

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

∙ 리턴타입이 없음

 

 

메소드

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

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

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

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

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

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

 

'Language > 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
'Language/Java' 카테고리의 다른 글
  • [자바 프로그래밍 입문] 02 Java 프로그램의 실행 구조
  • [자바 프로그래밍 입문] 01 Hello Java World!
  • [JAVA] Chapter 02 - 1 변수
  • [Java] Map
soyeon26
soyeon26
  • soyeon26
    개발 일지
    soyeon26
  • 전체
    오늘
    어제
    • 분류 전체보기 (107)
      • Web (22)
        • Web (1)
        • HTTP (0)
      • Language (29)
        • Java Script (3)
        • Type Srcipt (1)
        • Java (25)
      • Front (19)
        • HTML+CSS (4)
        • React (15)
      • Back (41)
        • Spring(Springboot) (9)
        • JSP (21)
        • Database (5)
        • NestJS (6)
      • Devops (6)
        • Docker (1)
        • Git & SVN (5)
      • App (7)
        • Android (7)
      • IT 정보 (3)
  • 블로그 메뉴

    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

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

  • 최근 글

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

티스토리툴바