오버로딩
오버로딩(Overloading)은 메소드 오버로딩과 생성자 오버로딩이 있다. 하지만 둘다 같은 개념이다.
같은 이름의 함수를 여러 개 정의하고, 매개변수의 유형과 개수를 다르게 하여 다양한 유형의 호출에 응답하게 한다.
public class Main {
// Overroding 예제
// 같은 기능을 하는 것끼리 묶을때
public static void main(String[] args) {
// TODO Auto-generated method stub
Main m = new Main();
Main m1 = new Main(1);
Main m2 = new Main('A');
Main m3 = new Main(1, 2);
Main m4 = new Main("king");
}
Main() {
System.out.println("빈거");
}
Main(int a) {
System.out.println(a);
}
Main(char a) {
System.out.println(a);
}
Main(int a, int b) {
System.out.println(a + "" + b);
}
Main(String a) {
System.out.println(a);
}
}
오버라이딩
상위 클래스가 가지고 있는 멤버변수가 하위 클래스로 상속되는 것처럼 상위 클래스가 가지고 있는 메소드도 하위 클래스로 상속되어 하위 클래스에서 사용할 수 있다. 하지만, 하위 클래스에서 메소드를 재정의해서 사용할 수 있다.
상속 관계에 있는 클래스 간에 같은 이름의 메소드를 정의하는 기술을 오버라이딩(Overriding) 이라고 한다.
public class test {
public static void main(String[] args) {
wang w = new wang();
king k = new king();
//부모클래스 출력
k.p();
//자식클래스에서 재정의 출력
w.p();
}
}
class king {
protected void p() {
System.out.println("부모클래스!");
}
}
class wang extends king {
@Override
public void p() {
// TODO 자동 생성된 메소드 스텁
System.out.println("자식클래스에서 재정의");
}
}
String 클래스
1. substring
한 문자열에서 내용의 일부를 추출하는 메서드
주어진 시작위치(begin)부터 끝 위치(end) 범위에 포함된 문자열을 얻는다.
String s = "java.lang.Object";
String c = s.substring(10); c = "Object"
String p = s.substring(5,9); p = "lang"
2.split
문자열을 지정된 분리자(regex)로 나누어 문자열 배열에 담아 반환 한다.
String animals = "dog, cat, bear";
String[] arr = animals.split(",")
결과
arr[0] = "dog"
arr[1] = "cat"
arr[2] = "bear"
3. contains
지정된 문자열(s)이 포함되었는지 검사 한다.
String s = "abcedfg";
boolean b = s.contains("bc");
결과
b = true
4. endsWith
지정된 문자열(suffix)로 끝나는지 검사 한다.
String file = "Hello.txt";
boolean b = file.endsWith("txt");
결과
b = true
5. equals
매개변수로 받은 문자열(obj)과 String인스턴스의 문자열을 비교한다. obj가 String이 아니거나 문자열이 다르면 false를 반환한다. String 클래스는 equals 메소드를 오버라이드 해서 사용한다.
String s = "Hello";
boolean b = s.equals("Hello");
boolean b2 = s.equals("hello");
결과
b = true
b2 = false
6.replace
문자열 중의 문자열(old)을 새로운 문자열(nw)로 모두 바꾼 문자열을 반환 한다.
String s = "Hellollo";
String sl = s.replace("ll","LL"));
결과
sl = "HeLLoLLo"
7.toString
String toString()
String 인스턴스에 저장되어 있는 문자열을 반환 한다.
String s = "Hello";
String sl = s.toString();
결과
sl = "Hello"
8. toLowerCase
String 인스턴스에 저장되어있는 모든 문자열을 소문자로 변환하여 반환 한다.
String s = "Hello";
String sl = s.toLowerCase();
결과
sl = "Hello"
9. toUpperCase
String 인스턴스에 저장되어있는 모든 문자열을 대문자로 변환하여 반환 한다.
String s = "Hello";
String sl = s.toUpperCase();
결과
sl = "HELLO"
10. trim
문자열의 왼쪽 끝과 오른쪽 끝에 있는 공백을 없앤 결과를 반환한다. 이 때 문자열 중간에 있는 공백은 제거되지 않는다.
String s = " Hello World ";
String sl = s.trim();
결과
sl = "Hello World"
11. valueOf
지정된 값을 문자열로 변환하여 반환 한다.
참조변수의 경우, toString()을 호출한 결과를 반환 한다.
String b = String.valueOf(true);
String c = String.valueOf('a');
String i = String.valueOf(100);
String l = String.valueOf(100L);
String f = String.valueOf(10f);
String d = String.valueOf(10.0);
java.util.Date dd = new java.util.Date();
String date = String.valueOf(dd);
결과
b = "true"
c = "a"
i = "100"
l = "100"
f = "10.0"
d = "10.0"
date = "Sub Jan 27:21:26:29 KST 2008"