Study/쌍용

    자바 상속 & super

    의존성 주입(Dependency Injection) 생성자를 이용하여 의존성을 주입 상속 : 기존에 정의된 클래스에 메소드와 필드를 추가하여 새로운 클래스를 만드는 것. 슈퍼 클래스(부모 클래스) : 상속을 해주는 부모 클래스(상위, 기반 클래스) 서브 클래스(자식 클래스) : 상속을 받는 자식 클래스(하위, 파생 클래스) is-a 관계 일반적인 개념과 구체적인 개념과의 관계 상위 클래스가 일반적인 개념 클래스이고 하위 클래스가 구체적인 개념 클래스가 된다. has-a관계 하나의 클래스가 다른 클래스의 멤버를 가지고 이용하는 구조 자바는 다중 상속을 지원하지 않는다. (c++는 지원) 상위 클래스의 멤버(필드 또는 메소드)가 private 접근 제한자인 경우 상속을 받을 수 없다. 하위클래스의 객체를 생..

    자바 기본 API 클래스(2)

    String 클래스 indexOf() : 특정 문자나 문자열이 몇번째 인덱스에 존재하는지 반환. 없으면 -1 s2 = s1.substring(s1.lastIndexOf(".") + 1); // 파일에서 확장자만 추출 s2 = s1.replace("대한", "大韓"); // 모든 대한을 한문으로 변경. 정규식 사용불가 s2 = s1.replaceAll("대한", "大韓"); // 모든 대한을 한문으로 변경. 정규식 사용가능 정규식 패턴 \\d : 숫자, \\s : 공백(엔터, 탭 포함), | : 또는 \\w : 영숫자 \\W : 영숫자 제외 ^:시작(대괄호 밖) $:마지막 +:하나이상 ^:부정(대괄호 안) trim() : 왼쪽과 오른쪽 공백 제거 replaceAll()은 정규식 사용 가능, replace(..

    자바 기본 API 클래스(1)

    패키지 비슷한 성격의 클래스나 인터페이스 등을 모아 놓은 묶음으로 하나의 디렉토리(폴더) 자바 플랫폼 클래스 계층 구조 java.lang.Object 클래스는 자바 클래스의 최상위 클래스로 자바 플랫폼의 모든 클래스는 java.lang.Object 클래스로 부터 상속 받는다. wrapper 클래스 * : 기본형 데이터를 객체 단위로 처리할 수 있도록 만들어진 클래스 * : 기본형(int, long, double 등)은 null을 가질 수 없지만 wrapper 클래스는 null을 가질 수 있음 * : 내용불변(immutable) * 내용이 변경되면 새로운 영역의 메모리가 할당되고 기존 인스턴스는 garbage collector의 대상이 됨 기본형과 다르게 wrapper 클래스는 형변환이 되지 않는다. ja..

    자바 객체지향(3)

    생성자(Constructor) new 연산자와 같이 사용되며 객체 생성할 때 호출 자바의 모든 클래스는 생성자가 반드시 존재하며, 하나 이상 가질 수 있다. 생성자는 클래스명과 동일하며, 리턴 타입이 존재하지 않는다. 생성자를 정의하지 않는 경우, 컴파일시 디폴트 생성자가 추가된다. 생성자는 일반 메소드 처럼 호출할 수 없고 반환 타입이 없다. 생성자는 new 연산자 다음에 호출되며, 객체를 생성하고 초기화 작업을 담당 ※ 생성자에 인자(매개변수)가 있을 경우 객체 생성시 인자 또한 입력해야 한다. 객체 생성 순서 1) new 연산자에 의해서 객체의 메모리가 할당 : a필드가 heap 메모리 공간에 메모리 할당을 받는다. 2) a필드는 디폴트 값(0)으로 초기화 된다. 3) 생성자 몸체를 실행하여 a 필..

    자바 객체지향(2)

    call by value : 형식매개변수와 실매개변수가 기억공간을 따로 확보 기본 자료형은 파라미터 전달방법이 call by value 이다. call by reference : 참조(주소)값을 전달 객체를 파라미터로 전달하는 경우, 파라미터를 call by reference로 처리한다. getter/setter : Shift + Alt + s + r + a 문자열은 절대로 == 으로 비교할 수 없다. 문자열은 String 클래스의 equals() 를 이용하여 비교한다. 재귀호출 메소드 내에서 메소드 자기 자신을 호출하는 방식 반복문보다 처리 속도가 느려 비효율적 코드 간결, 오류 수정이 용이 종료 조건을 주지 않으면 StackOverFlowError가 발생하여 프로그램이 종료 된다. ex) 하노이 탑,..

    자바 객체지향(1)

    추상화 과정 1. 객체 모델링 2. 클래스 설계 3. 객체 생성 클래스 접근 권한 ex) public, private default(생략) : 동일한 패키지에서만 접근 가능 public : 어디에서나 접근 가능 private : 클래스 안에서만 접근 가능 protected : 동일한 패키지 및 하위 클래스에서 접근가능 인스턴스 변수 (인스턴스 : 할당 받음) 객체를 생성해야 접근할 수 있는 변수 "new 생성자()"를 호출할 때마다 메모리 할당이 됨 객체가 null이 되거나 오랫동안 객체를 참조하지 않는 경우 메모리가 회수됨 클래스 변수 클래스가 메모리에 로딩될 때 한번 메모리가 할당된다. 객체 생성과 무관하게 클래스명을 이용하여 바로 접근하여 사용할 수 있다. 프로그램이 종료되는 시점에 메모리에서 사라..