보리차
chapter 11 메소드 오버로딩과 String 클래스 본문
메소드 오버로딩
메소드를 구분하는 조건은 다음과 같다.
- 메소드의 이름
- 메소드의 매개변수 정보
이때 메소드의 이름은 같아도 매개변수 선언이 다르면 동일한 이름의 메소드 정의를 허용하는데 이를 '메소드 오버로딩'이라 한다.
생성자도 오버로딩의 대상이 된다.
키워드 this를 이용해 다른 생성자를 호출할 수 있다.
class Person {
private int regiNum; // 주민등록 번호
private int passNum; // 여권 번호
Person(int rnum, int pnum) {
regiNum = rnum;
passNum = pnum;
}
Person(int rnum) {
this(rnum, 0); // rnum과 0을 인자로 받는 다른 생성자 호출
}
}
키워드 this를 이용해 인스턴스 변수에 접근할 수 있다.
String 클래스
String 클래스의 인스턴스 생성
// 둘 다 가능
String str = new String("Simple String")
String str = "Simple String"
두 방법의 차이점
String 인스턴스는 Immutable(변경할 수 없는) 인스턴스다. 따라서 따옴표로 String 인스턴스를 생성하게 되면 문자열이 같은 경우 같은 인스턴스를 공유하지만 new String()으로 인스턴스를 생성하면 새 인스턴스를 생성하기 때문에 문자열이 같아도 다른 인스턴스를 참조하게 된다.
// 동일 인스턴스 참조
String str1 = "Simple String";
String str2 = "Simple String";
// 다른 인스턴스 참조
String str3 = new String("Simple String");
String str4 = new String("Simple String");
String 인스턴스를 이용해 Switch문을 구성할 수 있다.
String 클래스의 메소드
String str1 = "red";
String str2 = "apple";
// 문자열 연결
String str3 = str1.concat(str2) // redapple
// 문자열 일부 추출
String str4 = str2.substring(2, 4); // pp (2이상 4미만의 문자열 추출)
// 문자열 내용 비교
boolean isSame = str1.equals(str2) // false
int com = str1.compareTo(str2) //사전 편찬 순서를 기준으로 비교(str1이 str2보다 앞서면 음수, 같으면 0 뒤서면 양수)
// 기본 자료형의 값을 문자열로 바꾸기
String str5 = String.valueOf(2); // "2"
// 문자열을 대상으로 하는 + 연산, += 연산
String str6 = str1 + str2 // redapple
'Java' 카테고리의 다른 글
chapter 13 배열(Array) (0) | 2022.01.28 |
---|---|
chapter 12 콘솔 입력과 출력 (0) | 2022.01.26 |
chapter 10 클래스 변수와 클래스 메소드 (0) | 2022.01.26 |
chapter 09 정보 은닉 그리고 캡슐화 (0) | 2022.01.25 |
chapter 08 패키지와 클래스 패스 (0) | 2022.01.25 |