개발/Spring

자바 참조 자료형

728x90

말그대로 나머지 다이다.

 

기본 자료형 8개를 제외한 나머지 타입은 모두 참조 자료형이다.

 

가장 큰 차이는 new를 사용해서 객체를 생성하는지 여부의 차이라고 보면 된다.

(new없이 생성할 수 있는 유일한 참조자료형은 String 뿐)

 

기본 생성자는 이미 생성자가 선언되어있으면 생성되지 않는다.

 

자바에서 생성자는 왜 필요할까? 

 

생성자는 자바 클래스의 객체를 생성하기 위해서 존쟇나다.

 

컴파일러가 생성자의 이름이 클래스와 동일해야 생성자로 인식하기 때문이다.

 

DTO는 데이터 전송용 객체

VO 데이터 보관용 객체

 

VO가 DTO에 속하는 개념이라, DTO를 많이 사용한다.

 

DTO를 만들어 두면, 메소드를 선언할 대 리턴타입은 한가지만 선언할 수 있다.

 

이와 같이 복합적인 데이터를 리턴하려면 String[]과 같이 배열을 리턴해도 되겠지만, int 타입까지 포함되어 있다면 매우 애매해진다. 그래서 이처럼 DTO를 만들어 놓으면 메소드의 리턴타입에 MemberDTO로 선언하고 그 객체를 리턴해주면 된다.

 

this : 객체의 변수가 매개변수의 이름이 동일할 때, 인스턴스 변수를 구분하기 위해서 사용하는 예약어

 

메소드 overloading (과적하다, 과부하를 주다, 지나치다)

한 메소드 이름을 사용하여 여러 기능을 제공한다는 의미, 한 메소드 이름에 많은 과부하를 준다고 보면 된다.

매개변수의 갯수, 순서, 타입이 다르면 같은 메소드로 인식하는 형질

 

 

 

자바에서 메소드가 종료되는 조건

: 메소드의 모든 문장이 실행되었을 때

return 문장에 도달했을 때

예외가 발생했을 때

 

 

 

static 블록

 

객체가 생성되면서 딱 한번만 불러야 하는 코드가 있다고 하자

 

static{

// 딱 한번만 수행되는 코드

 

이 static 블록 객체가 생성되기 전에 한번만 호출되고, 그 이후에는 호출하려고 해도 호출할 수 없다.

 

그리고 클래스 내에 선언되어 있어야 하며, 메소드 내에서는 선언할 수가 없다.

 

즉 인스턴스 변수나 클래스 변수와 같이 어떤 메소드나 생성자에 속해있으면 안된다.

 

 

Pass by value : 값만 전달한다. , 원래 값은 놔두고 전달되는 값이 진짜인것 처럼 보이게 한다. 그래ㅔ서 원래의 값은 변하지 않는다.

, Pass by reference

 

 

모든 기본 자료형은 Pass By value 이다.

참조 자료형은 값이 아닌 참조가 전달되는 Pass By References다

 

 

 

 

매개변수를 지정하는 특이한 방법

 

매개변수가 몇개가 될지, 호출할 때마다 바뀌는 경우에는 배열을 넘겨주는 방법이 있다.

 

하지만 매개변수로 넘겨줄 때 계산할 숫자들을 모두 배열로 만든 후 넘겨줘야 한다는 단점이 존재함.

 

그래서 자바에서는 임의 갯수의 매개변수를 넘겨줄 수 있는 방법을 제공함

 

하나의 메소드에서 한 번만 사용 가능하고, 가장 마지막에 선언해야만 한다.

 

 

int...numbers 라고 하면

 

여러개의 int들을 넘겨줄 수 있다.

 

배열과 다르게 매개변수 수를 정하기 애매한 경우 사용하면 된다.

 

'개발 > Spring' 카테고리의 다른 글

패키지와 접근 제어  (0) 2021.04.06
Serializable, NIO  (0) 2021.04.05
자바 배열  (0) 2021.04.05
자바 소켓  (0) 2021.03.21
자바 컬렉션 Map  (0) 2021.03.18