위 내용들을 한번에 정리하려고 욕심내니 힘들어서
class에 관해서는 정리해야할 내용이 많은 것 같아 나눠서 포스팅하려고 합니다.
자바에서 class(이하 클래스)는 프로그램의 최소단위라고 할 수 있습니다다.
클래스는 하나의 패키지 안에서는 중복해서 이름을 지을 수 없죠.
그리고 생성자(Constructor)(이하 생성자)는 클래스의 이름과 같다는 특징을 가지고 있는데,
class clothes{
private int shorts;
private int longs;
private [] int closet;
// 디폴트 생성자의 모습입니다.
clothes(){
// 두 변수를 담아줄 옷장을 배열화했습니다.
closet = new int[2]
}
// int형인 shorts와 longs를 매개변수로 받는 경우를 오버로딩했습니다.
clothes(int shorts, int longs){
// this의 첫번째 사용법입니다.
// 생성자 혹은 메서드(결국 생성자도 메서드이긴합니다만) 맨 위에 this() 형식으로
// this에서 하는 역할을 중복해서 쓸 수고를 덜 수 있습니다.
// 매개변수를 받지 않는 디폴트 생성자를 호출한 모습입니다. closet를 초기화합니다.
this();
this.shorts = shorts;
this.longs = longs;
}
void prn( /* clothes this */){
System.out.println("반팔티는" + this.shorts + "개, 긴팔티는" + this.longs + "개 있군요");
}
public void init(int shorts, int longs) {
// this의 두번째 사용법입니다.
// 클래스에서 선언한 멤버 변수 자체를 지칭할 때 사용합니다.
this.shorts = shorts;
this.longs = longs;
}
public clothes add(clothes c) { // this<-c1 매개변수 c<-c2
// c1과 c2더해서 새로운 객체에 저장하고 리턴
clothes temp = new clothes();
temp.shorts = this.shorts + c.shorts;
temp.longs = this.longs + c.longs;
return temp;
}
public clothes subtract(clothes c) {
clothes temp = new clothes();
temp.shorts = this.shorts - c.shorts;
temp.longs = this.longs - c.longs;
return temp;
}
}
위의 예시에서 생성자의 간단한 모습과 this의 사용법을 알아보았습니다.
보통 this는 레퍼런스변수, 참조변수의 역할을 하며
this() 의 경우는 조금 분류가 달라집니다만 오버로딩된 자기 자신을 호출한다는 점에서 같이 알아보았습니다.
this 변수는 따로 기술하지 않은 숨어있는 변수라는 특징도 가지고 있으며
this 에는 현재 메서드를 호출한 객체의 참조변수값이 전달되어 저장됩니다.
'코딩이야기 > JAVA' 카테고리의 다른 글
[JAVA] 사진 파일과 음악 파일의 FileNotFoundException (0) | 2022.11.01 |
---|---|
[JAVA] java.lang.NullPointerException 에러 (0) | 2022.10.31 |
[연습문제 풀이] programmers 코딩테스트 연습 옹알이 문제 풀이 (0) | 2022.10.06 |
[연습문제] 피자 나눠 먹기, while문, 나눗셈(나누기) 연산("/") (2) | 2022.10.05 |
[Java] for문과 while문 (반복 실행문/반복문) 그리고 break와 continue (0) | 2022.10.04 |