JAVA
StringBuilder
: String을 보완한 객체
: String과 동일한 기능
StringBuilder t1 = new StringBuilder("JAVA SE 8");
System.out.println(t1);
StringBuilder t2 = new StringBuilder("Hello JAVA SE 8");
System.out.println(t2);
StringBuilder t3 = new StringBuilder();
t3.append("우리 ");
t3.append("나라 ");
System.out.println(t3);
String을 다중으로 사용할때의 기능 저하됨을 보완한 객체이다.
String과 동일하게 문자열을 사용할때 사용한다.
package ch7;
class C{
int k = 300;
}
class B extends C{
int k = 200;
}
public class A extends B{
int k = 100;
public static void main(String[] args) {
C t = new A();
System.out.print(t.k);
}
}
클래스 B와 A에 값이 없을때
package ch7;
class C{
int k = 300;
}
class B extends C{
}
public class A extends B{
public static void main(String[] args) {
C t = new A();
System.out.print(t.k);
}
}
필드의 값은 형의 값과 같다.
필드 값이 없을때에는 부모 필드의 값을 가져와 출력 (300)
package ch7;
class C{
public void printTest() {
System.out.print("C ");
}
}
class B extends C{
public void printTest() {
System.out.print("B ");
}
}
public class A extends B{
public void printTest() {
System.out.print("A ");
}
public static void main(String[] args) {
C t = new A();
t.printTest();
}
}
메소드에 값이 없을때
package ch7;
class C{
public void printTest() {
System.out.print("C ");
}
}
class B extends C{ }
public class A extends B{
public static void main(String[] args) {
C t = new A();
t.printTest();
}
}
메소드의 값을 구할때는 형에 상관없이 메소드의 값을 출력한다.
마찬가지로 메소드 값이 없을때는 부모 메소드의 값을 가져와 출력한다.
구성 : Main - Service - DAO
service와 DAO는 같은데 왜 두번의 동작을 하는가 ?
예시)
커피집 아메리카노 주문 - >
사람 : 아메리카노를 만드는 것
컴퓨터 : 물과 커피를 섞어 아메리카노를 만드는 것
커피는 물과 커피 하나의 동작마다 서비스라는걸로 인지하기때문에 각각을 저장 해주는 것
실질적인 서비스의 저장이 DAO에서 이루어진다.
서비스에서는 DAO의 메소드를 불러오는 역할만 한다.
그 불러온 내용의 서비스를 메인에서 호출해서 사용.
순서
클래스 - 변수선언
인터페이스 - service, dao
클래스 - implements 사용하여 인터페이스 오버라이딩
메인 - 실행
여러개의 호출이 이동되니 확인을 잘 하고 형 변환을 신경쓰자 !