본문 바로가기

언어/Java

메소드 오버로딩, String 클래스

메소드 오버로딩

 

= 매개변수의 선언이 다르면 동일한 이름의 메소드 정의를 허용한다

   매개변수 선언, 매개변수 수, 매개변수 타입이 달라도 오버로딩이 성립된다

   그러나 메소드 반환형 다른건 오버로딩이 성립되지 않는다

 

this 접근

 

생성자 호출

class time{
	private int reg;
	private int pass;
	
	time(int num, int pnum){
		reg=num;
		pass=pnum;
	}
	
	time(int rnum){
		this(rnum,0);
	}
	
}

this로 같은 이름의 메소드를 생성자로 호출할 수 있다

★ this() : 자신의 다른 생성자를 호출하는 코드로 생성자의 첫 줄에서만 허용한다

* 상위클래스가 먼저 호출되기 때문이다

 

인스턴스 변수 접근

class simple{
	private int date;
	
	simple(int date){
		this.date=date;
	}
	
	int getDate() {
		return this.date;
	}
}

simple내에 인스턴스 변수 date가 선언되었고 this로 선언된 지역 내에 매개변수를 가르켰다

 

 

 

 

String 클래스

 

1. String 클래스 인스턴스 생성 

String str1 = new String("Simple1");

 

2. String 클래스 인스턴스 생성 

String str2 = "Simple2";

 

1번과 2번 차이로는

1번은 new 생성자이고 2번은 String인스턴스이다

이때 String인스턴스는 문자열 내용이 같으면 하나의 인스턴스를 생성해 공유한다

 

 

3. String 클래스 인스턴스 생성 

showString("Funny");

public static void showString(String str) {
		System.out.println(str);
	}

showString의 메소드 호출전 "Funny"을 인스턴스화 시킨다

 

메소드 종류들

concat : 문자열 연결시키기

substring : 문자열 일부 추출

compareToIgnoreCase : 문자열 내용 비교

valueOf : 자료형 값 바꾸기

문자열 + 문자열로 문자열을 합할 수 있다 -> 컴파일할때 concat메소드를 호출한다

 

stringBuilder : 문자열을 저장하기 위한 메모리 공간이 존재하며 문자를 추가, 삭제할 수 있다

stringBuilder 메모리 공간 크기 지정

stringBuilder str1 = new stringBuilder(64);

전달 숫자만큼 문자 저장할 공간 마련된다

멀티 스레드에 안전하진 않다 멀티 스레드를 사용할 때 stringBuffer을 사용해야한다

 

* 스레드 : CPU 기본 이용 단위

* 단일 스레드 : 하나의 프로세스에서 하나의 스레드 실행

* 멀티 스레드 : 하나의 프로세스에서 여러 개의 스레드 실행

'언어 > Java' 카테고리의 다른 글