Java
-
07 (1) 상속Java 2023. 5. 6. 14:04
상속(inheritance) - 기존의 클래스로 새로운 클래스를 작성하는 것(코드의 재사용) - 두 클래스를 부모와 자식으로 관계를 맺어주는 것 ex) class 자식클래스 extends 부모 클래스 { //... } - 자손은 조상의 모든 멤버를 상속받는다.(생성자, 초기화블럭 제외) - 자손의 멤버 개수는 조상보다 적을 수 없다. (같거나 많다) - 자손의 변경은 조상에 영향을 미치지 않는다. >상속을 하면 Child Class는 점점 커져 확장(extends)된다. 따라서 키워드를 extends를 사용 포함 관계 - 클래스의 멤버로 참조변수를 선언하는 것 클래스 간의 관계 결정하기(상속 VS 포함) 상속관계 ‘~은 ~이다. (is-a)' 포함관계 ‘~은 ~을 가지고 있다. (has-a)' 단일 상속..
-
06 (9) this( )와 thisJava 2023. 5. 6. 13:54
- this( )를 사용하는 이유 : 코드의 중복을 제거하기 위해서 변수의 초기화 - 지역변수(lv)는 수동 초기화 해야함(사용전 꼭!!!) - 멤버변수(iv, cv)는 자동 초기화된다. (디폴트 값으로 자동 초기화) >> int i의 값을 모르는데 int j = i에 넣을려고 했기 때문에 에러 발생 >> int i = 0; 으로 초기화하거나 값을 넣어줘야 한다 멤버 변수의 초기화 - 클래스 변수 초기화 시점 : 클래스가 처음 로딩 될 때 단 한번(cv,메모리에 올라갈 때) - 인스턴스 변수 초기화 시점 : 인스턴스가 생성될 때 마다 (iv) >> 객체를 또 다시 생성하게 되면 클래스 초기화는 실행(X) 인스턴스 초기화만 실행 (O) - cv : 클래스가 처음 로딩 될 때 단 한번만 실행 초기화순서 : ..
-
06 (8) 오버로딩, 생성자Java 2023. 5. 6. 12:56
오버로딩 - 한 클래스 안에 같은 이름의 메서드 여러 개 정의하는 것 생성자 - 인스턴스가 생설될 때마다 호출되는 ‘인스턴스 초기화 메서드’ - 이름이 클래스 이름과 같아야 한다. 생성자 오버로딩 - 이름이 클래스 이름과 같아야 한다. - 리턴 값이 없다. (void 안붙임) - 모든 클래스는 반드시 생성자를 가져야 한다.- 리턴 값이 없다. (void 안붙임) - 모든 클래스는 반드시 생성자를 가져야 한다. - 매개 변수가 있고, 없음므로 1,2,3 오버로딩에 해당 - 이름이 같아도 매개변수로 구분이 가능하다 기본생성자 - 매개변수가 없는 생성자 - 생성자가 하나도 없을 때만 컴파일러가 자동 추가 - 생성자가 없을 경우는 컴파일러가 자동으로 생성해준다 매개 변수가 있는 생성자 - 코드의 재사용 가능 출..
-
06 (7) static 메서드와 인스턴스 메서드Java 2023. 5. 3. 21:34
static 메서드와 인스턴스 메서드 - static 메서드: 메서드 앞에 static이 있으면 static 메서드 (클래스 메서드) - 인스턴스 메서드: 메서드 앞에 static이 없으면 인스턴스 메서드 static을 언제 붙여야 할까? - 속성(멤버 변수) 중에서 공통 속성에 static을 붙인다. - 인스턴스 멤버(iv, im)을 사용하지 않는 메서드에 static을 붙인다.(iv의 쓰임에 따라 사용) → static의 활용은 변수와 메서드가 쓰임이 다르다, 메서드는 명령문 집합 static 메서드는 인스턴스 변수(iv)를 사용할 수 없다. - iv는 객체 생성후에 호출가능하므로 에러 static 메서드는 인스턴스 메서드(im)를 호출할 수 없다. - static 메서드는 (호출 X)→ 인스턴스 메..