김갱환
맨땅에 코딩
김갱환
전체 방문자
오늘
어제
  • 분류 전체보기 (239)
    • ⁂ 맨땅에 코딩 (11)
      • : Story (3)
      • : MiniProject 'MyWeb' (1)
      • : Final Project (5)
      • : Josa-Moa 한국어 조사 처리 프로젝트 (1)
    • —————Frontend——————————————.. (0)
    • ⁂ HTML (10)
      • : 기본 익히기 (10)
    • ⁂ CSS (15)
      • : 기본 익히기 (15)
    • ⁂ Java Script (32)
      • : 기본 익히기 (28)
      • : 자바스크립트 라이브러리 (1)
      • : 연습 문제 (3)
    • ⁂ jQuery (11)
      • : 기본 익히기 (11)
    • ⁂ Bootstrap (3)
      • : 기본 익히기 (3)
    • ⁂ TailWind CSS (1)
    • ⁂ AJAX (5)
      • : 기본 익히기 (5)
    • ⁂ Vue.js (3)
      • : 기본 익히기 (3)
    • —————DB : Data Base————————.. (0)
    • ⁂ Oracle DB (27)
      • : 기본 익히기 (24)
      • : 연습 문제 (3)
    • ⁂ MyBatis Framework (15)
      • : 기본 익히기 (15)
    • —————Backend———————————————.. (0)
    • ⁂ Java (62)
      • : 기본 익히기 (42)
      • : JDBC - Java DataBase Conn.. (4)
      • : Crawling (2)
      • : 독학으로 공부하기(과거) (11)
      • : 연습문제 (3)
    • ——————Web————————————————— (0)
    • ⁂ JSP (28)
      • : 기본 익히기 (28)
    • ⁂ Spring FrameWork (15)
      • : Legacy Project (1)
      • : 기본 익히기(Boot 기반) (14)
    • ——————————————————————— (0)
    • ⁂ Error Note (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 코딩공부
  • 풀스택
  • 백앤드
  • 객체지향프로그래밍
  • 자바
  • ErrorPage
  • 프론트앤드
  • http에러메세지
  • 코딩공부 #자바공부
  • 코딩 #코딩공부 #상수 #리터럴 #형변환 #개발자 #자바 #자바공부 #자바독학
  • 비트연산자 #코딩공부 #자바공부 #코딩 #자바 #프로그래밍 #개발자
  • 코딩
  • 코딩공부 #코딩 #자바 #자바독학 #자바공부 #개발자 #프론트앤드 #백앤드 #풀스택
  • httperror
  • web.xml수정
  • 연산자 #기본연산자 #코딩 #자바 #독학 #자바공부 #자바연산자
  • 개발자
  • 자바공부
  • 코딩 #코딩공부 #프론트앤드 #백앤드 #풀스택개발자
  • HTML공부

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
김갱환

맨땅에 코딩

⁂ Java/: 기본 익히기

[JAVA] #5-2 New 연산자 - 참조 자료형을 이해해보자

2022. 9. 8. 11:51

New 연산자

 

 클래스를 사용하려면 클래스에 메모리를 할당하고 사용하여야 한다.

 그 때 사용하는 연산자가 바로 new 이다.

 형식은 아래와 같다.

new 클래스명()

 그리고 이렇게 선언되어서 메모리가 부여된 하나의 클래스를 객체라고 말한다.

 

1) 클래스의 Type

 자바에는 기본적인 자료형이 있다.

 예를 들어 int a=3; 에서 int는 메모리 4바이트를 할당한다.

 위에서 만들었던 Sungjuk() 클래스를 new 연산자로 선언하면 Sungjuk() 클래스에 메모리가 할당된다.

 이런 형태로 메모리가 할당되는 것을 참조 자료형(reference)이라고 부른다.

 이 참조 자료형에 메모리가 할당되는 방식은 RAM(Random Access Memory)의 heap 영역에 메모리가 할당되고 주소값이 발생되면서 진행이 된다.

 

 

2) 참조형에는 번지가 있어요

 좀 더 쉽게 접근해보자.

 int는 자료형이 정해져있다.

 하지만 Sungjuk 클래스를 new Sungjuk()으로 메모리를 할당해서 선언했다.

 이 클래스의 자료형은 무엇일까?

 정답은 알 수 없다.

 

 이것은 굉장히 획기적인 개념이다.

 왜냐하면 기본형 변수에 넣어서만 사용했던 것들과는 달리 넣어지는 값들을 다양하게 사용할 수 있기 때문이고,

 이렇게 되면 다양한 기능과 특성을 만들고 사용할 수 있다는 뜻이기 때문이기도 하다.

 그래서 참조형 변수는 자료형(Date Type)이 아니라 그냥 형태, 즉 타입(Type)이라고 부른다.

 

int a = 10;
int b = 10;


a == b // 두 값이 10인지 비교

 위의 int 자료형으로 선언된 a와 b는 각각의 값이 정수형 데이터인 10을 갖고 있고, 이 둘이 같은지 비교한다.

 

String a = "a";
a = a + "b";
String b = "ab";

a != b // a와 b 둘 다 "ab"라는 값을 갖지만, "ab"를 참조하는 메모리 주소값이 같은지 비교하기에 같지 않다고 나온다

 하지만 String이라는 클래스로 선언된 a와 b이 갖고 있는 "ab"를 비교할 때는 달라진다.

 데이터 값이 아니라 클래스가 갖고 있는 값이 가진 메모리의 주소값을 비교하기 때문이다.

 이 주소값을 우리는 편하게 번지라고 부른다.

 

 자 다시 돌아가서 new 연산자를 사용해서 sungjuk 클래스를 편하게 사용해보자.

// sj는 참조변수(reference) : 메모리가 할당된 곳의 주소를 기억한다
Sungjuk sj= new Sungjuk(); // 예) 50번지

sj.name="손흥민";
sj.kor=100;
sj.eng=95;
sj.mat=90;
// sj.aver 에러. private 속성은 클래스 외부에서 접근 불가능

sj.calc();
sj.disp();
// sj.view(); 에러. private 속성은 클래스 외부에서 접근 불가능

 sj 라는 참조변수를 만들어 sungjuk 클래스의 주소를 기억시켰다(그것이 50번지라면 #50으로 기억한다).

 이제부턴 sj. 만 사용해도 성적 안에 만들어둔 여러 요소들을 사용할 수 있다.

 sj라는 변수가 sungjuk 클래스의 요소들의 주소값들을 모두 가지고 있기 때문이다.

 

 위를 바탕으로 아래의 값을 입력했다.

Sungjuk one=new Sungjuk();
one.name="박지성";
one.kor=20;
one.eng=30;
one.mat=35;
one.calc();
one.disp();

Sungjuk two=new Sungjuk();
two.name="김연아";
two.kor=20;
two.eng=30;
two.mat=35;
two.calc();
two.disp();

 

 이렇게 new를 사용하면 객체가 만들어지고 객체에 주소값을 부여하게 된다.

 이것을 인스턴스, 라고 부른다.

저작자표시 비영리 동일조건 (새창열림)

'⁂ Java > : 기본 익히기' 카테고리의 다른 글

[JAVA] #5-4 String 메서드  (0) 2022.09.08
[JAVA] #5-3 생성자 함수(Constructor)  (0) 2022.09.08
[JAVA] #5-1 클래스(Class)  (2) 2022.09.08
[JAVA] #4-4 메인(main)  (0) 2022.09.07
[JAVA] #4-3 자바의 함수 호출 방식  (0) 2022.09.07
    '⁂ Java/: 기본 익히기' 카테고리의 다른 글
    • [JAVA] #5-4 String 메서드
    • [JAVA] #5-3 생성자 함수(Constructor)
    • [JAVA] #5-1 클래스(Class)
    • [JAVA] #4-4 메인(main)
    김갱환
    김갱환
    코딩의 코자도 모르는 이의 공부 기록장

    티스토리툴바