== 새로운 자료형
이름 명명 규칙
중요
클래스명 객체명 === 자료형 참조변수(주소값을 담고 있다는 뜻)명
Q1. 객체 이름이 가지고 있는 값 → 주소값
Q2. 어떤 주소값? → 객체의 주소값
Q3. 객체는 어디에? → 힙
Q4. 객체명은 메모리 공간에서 어디에? → 스택
진짜 값이 담기는 코드는 new 클래스명()
해당 코드가 적히기 전에는 힙영역에 아무것도 없다(아직 만들지 않았기 때문)
클래스 === 객체 === Objrct
—> 이질적인 구조
⇒ 모델(Model) ⇒ value object(= 데이터 덩어리) ⇒ Data Transfer Objectt (=DTO, 바구니, 이동의 역할)
책
영화
이러한 위의 데이터 뭉텅이를 옮기기 때문에 Data Transfer Object라고 부르는 것
모델 하우스처럼 예시? 자료형을 미리 정의해주기 때문에 model이라고도 부르는 것
즉…
📢 객체 = Object = 모델 = VO = DTOfield = 멤버변수..
메서드 - 반복되는 기능들을 묶어놓은 코드 블록
/
접근제한자 반환형(반환값자료형) 메서드 이름(매개변수){
return 반환값;
}
예를 들어 return 뒤 반환값이 3.14다. .그럼 반환값 자료형은 double
return 뒤가 객체(클래스)면, 반환값 자료형에는 클래스명 적어주기!
return이 없을때=⇒ void
++ 변수명이 겹칠경우 가장 가까운 변수를 가져옴..
인수(인자) : argument = 넘겨주는 값(=args)
매개변수 : parameter = 받는 값(=parm)
변수명으로 데이터 입력하는 것과 무슨 차이가 있길래?
→ public 변수명 ~~ 으로 하면, 선택권 없이 무조건 항상 오픈되어 있거나, 막혀있거나 둘 중 하나인데
메서드로 관리하면 작업자의 필요에 따라 해당 변수에 접근하는 권한을 선택적으로 조절할 수 있고, set/get이라는 직관적인 메서드 명을 통해 이게 어떤 역할을 하는 건지 바로 알 수 있어 코드를 관리하기 보다 용이해짐.
System.out.println(객체명);
패키지이름.클래스명@해시코드(16진수로 된 객체의 고유번호)
// 객체 이름을 출력하면 toString() 메서드와 결과가 같다. 자동으로 호출되는 것임!
System.out.println(J);
System.out.println(J.toString());
System.out.println(J.hashCode()); // 10진수
// 메서드를 재정의하다 = 이미 만들어진 메서드의 기능을 바꿔서 사용한다.
toString은 객체명만 적었을 때 자동으로 호출된다.
toString() 메서드를 재정의하여, 멤버변수의 내용을 출력할 수 있는 용도로 사용한다.
@Override //에노테이션 : 정보를 알려주는 역할 (주석 포함)
public String toString() {
return ;
}
접근제한자 반환형 메서드이름(매개변수){
return 반환값
}
접근제한자
this : 내 객체 인스턴스의 주소값
ex)
this.name : 해당 인스턴스의 name 필드 값 접근