일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
- 로켓펀치 #취준컴퍼니 #취업 #일상 #취준생
- 다중 catch 블록
- 항해99
- 예외 처리
- 예외클래스
- 일반 예외
- 실행 예외
- 코딩테스트준비
- try-catch-finally 블록
- 99클럽
- til
- throws 키워드
- 개발자취업
- 예외
- Today
- Total
목록JAVA (30)
innn
참조변수 super ( == this와 비슷, lv와 iv구별에 사용) - 객체 자신을 가리키는 참조변수. 인스턴스 메서드(생성자) 내에서만 존재. (static 메소드 내에는 사용불가) - 조상의 멤버를 자신의 멤버와 구별할 때 사용. 이름이 같아도 두 개가 따로 만들어짐 하나는 super.x 하나는 this.x인 것임. 여기서 x는 super.x인 동시에 this.x 인 것임. super. 과 super()은 전혀 다른 것이다. 관계 없음 super() 은 조상의 생성자이다. - 조상의 생성자를 호출할 때 사용한다. - 조상의 멤버는 조상의 생성자를 호출해서 초기화한다. 추가조건 - 생성자의 첫 줄에 반드시 생성자를 호출해야한다. 그렇지 않으면 컴파일러가 생성자의 첫 줄에 super();를 삽입 St..
(메소드) 오버라이딩 - 상속받은 조상의 메소드를 자신에 맞게 변경하는 것 그니까 오버라이딩은 덮어쓰는거임. 변화 수정, 체인지임 새로운게 아니라 이름 똑같 매개변수 똑같 선언부를 완전히 똑같이 만든애를 내용만 수정해서 쓰는거임. ((( 흥달쌤 인강에 나왔던 아버지처럼 살기 싫어. 이게 오버라이딩임 ))) overrid ; v.덮어쓰다 오버라이딩의 조건 1. 선언부가 조상 클래스의 메소드와 일치해야한다. 2. 접근 제어자를 조상 클래스보다 더 좁은 범위로 변경할 수 없다. public, protected, (default), private 3. 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다. 오버로딩 기존에 없는 새로운 메소드를 정의하는 거 (new) 오버라이딩 (= 상속과 관계 있음) 상속받은 ..
생성자 this() - 생성자에서 다른 생성자 호출할 때 사용 - 다른 생성자 호출시 첫 줄에서만 사용 가능 참조변수 this - 인스턴스 자신을 가리키는 참조변수 - 인스턴스 메서드(생성자 포함)에서 사용가능 - 지역변수(lv)와 인스턴스 변수(iv)를 구별할 때 사용 this 인스턴스 자신을 가리키는 참조변수. this(), this(매개변수) 생성자. 같은 클래스의 다른 생성자를 호출할 때 사용한다.
다중 상속의 문제점이 있다. TV와 DVD를 같이 상속 받은 TVDVD라는 클래스가 있다. 이때 각 클래스에 이름이 같지만 내용이 다른 메소드가 있다면 ?? 충돌이 일어날 수 있음. 충돌 났을때 해결하기 어려움. 나중에 인터페이스를 이용하면, 충돌 문제를 해결하면서 다중상속을 해결할 수 있음. 다중 상속 관계를 표현하고 싶다면? - 비중 높은건 상속으로 나머지는 포함으로 처리한다. Object 클래스 - 모든 클래스의 조상 - 부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다. 그래서 toString(), equals() 등의 메서드를 쓰는 거임.
클래스의 관계는 크게 두 가지로 나뉜다. 1. 상속 2. 포함 포함이란?(Composite) - 클래스의 멤버로 참조변수를 선언하는 것. 왼쪽은 저장공간이 xyr 세 개다. 오른쪽 역시 저장공간은 xyr로 세개다.(r위의 객체 c는 x,y의 주소번지를 갖고 있기때문에 저장공간이 아니다.) 두 경우 저장공간은 동일하지만 구조만 다른셈이다. 클래스 간의 관계를 결정할때 언제 상속하고 언제 포함할까? 가장 간단한 방법은 문장을 만드는 것이다. is a 관계면 상속 관계 has a 관계는 포함 관계다. 원은 점이다 원은 점을 가지고 있다. 어느 문장이 더 자연스러울까 ? 두번째다. 사실, 대부분의 경우는 포함이다. (90퍼센트) 상속은 조건이 까다롭기 때문 생성된 객체를 메모리를 그림으로 그려보는 것이 설계에 ..
상속 - 기존의 클래스를 이용해서 새로운 클래스를 작성하는 것 (코드의 재사용) - 두 클래스를 부모와 자식으로 관계를 맺어주는 것. class 자식 클래스 extends 부모클래스 { } class Parent {} class Child extends Parent { } Child 클래스와 Parent 클래스는 상속 관계에 있다고 한다. 자손은 조상의 모든 멤버를 상속 받는다. ((생성자, 초기화 블록 제외)) ((부모의 부모가 있을 수 있어서 자손이라고 표현. 부모란 표현 대신 조상이란 표현씀. 바로 위 부모말고 부모의 부모클래스도 있을 수 있으니)) 선택의 여지가 없음. 부모가 맘에 안들든 들든, 부모의 모든 멤버를 무조건 상속 받아야함. 그래서 자손의 멤버 개수가 조상보다 적을 수 없다. (같거나..
자바에서 변수는 클래스 변수, 인스턴스 변수, 지역 변수가 있다. 변수의 종류를 결정짓는 것은 "변수가 선언된 위치"다. public class test { int iv; // 인스턴스 변수 (왜? 객체마다 다 다르게 초기화되는 인스턴스별로 다 다른 변수니까) static int cv; // 클래스 변수 (왜? 클래스 끼리 모두가 공유하는 변수니까) void method() { int lv; // 지역 변수 (왜? 블록 안에서 설정된 지역 내부에서만 활동하는 변수니까) } } 위의 코드엔 모두 3개의 int 타입 변수가 선언되어 있다. 여기서 iv와 cv는 클래스 내부에 선언되어 있으므로 멤버 변수이다. 그 중 cv는 static으로 선언되어있으니 클래스 변수이고, iv는 인스턴스 변수이다. lv는 메소..
자바 한 바퀴 돌고 클래스 복습 사물로 표현할 수 있는 것 = 필드 필드와 Behavior 자바에서 클래스란 사물과 추상화. (여기선 클래스 안에서) 어제는 공통적 특성이나 비헤이비어를 하나로 끌어당겨서 쓰는게 추상화.(모델링에서) 추상화 = 메소드 틀 = 시스템구조 = 클래스 시스템 구조하고 behaivor 명세화한다(specification) 클래스라고 한다면 필드와 메소드를 생각해야해 어떤 건 메소드가 없을 수도 있어. 클래스는 클래스 A - 필드, 메소드 있어 필드만 있어도 되고, 메소드만 있을 수 있어. 그래도 클래스야. 필드만 있는 클래스를 DTO라고 함. 데이터베이스 내용을 끌어당길때, 그 값과 DTO가 같아야 객체에 실을 수 있음. 그래서 DTO임. 필드만 있는 클래스는 Data Trans..