다음주 R,파이썬을 하루정도 하고, 자바랑 r 연결정도, 2틀정도 팀만들어서 하는건 상황봐서.. sql + java 2개가 중점적
--------------------------------------------------------------------------------------------------------------------------------------------------------
복습>
: 객체지향 3가지 특징 (캡슐화, 상속, 다형성)
오버로딩 : 한 클래스에 내에서
오버라이딩 : 상속받은 클래스에서 메소드 재정의해서 쓰는것
생성자(constructor) : public이 아닐수도 있음
--------------------------------------------------------------------------------------------------------------------------------------------------------
-----패턴이야기
(디자인패턴 : 싱글톤, mvc, .... (1. GoF책(C), 2. head first Design patterns(java) - 에릭프리먼)읽어보면 좋을듯)
(디자인 패턴이 뭔데..? 체스와 비슷.. 패턴을 외워두면 엄청 편리함, 문창과등 ㅋㅋ)
IT도 패턴이 있음, 프로그램 실력이 느는 시기가 있음
싱글톤 : 인스턴스를 하나 만들고 공유해야 하는 경우
package oop5b;
public class PointTest {
public static void main(String[] args) {
Point pt1 = new Point();
Point pt2 = new Point();
// object클래스에서 가지고 있는 것들
// 서로다른 인스턴스임을 알 수 있음
// toString : 클래스값 + 해쉬코드값
// 아무나 인스턴스 만들지 말고 하나만 만들고 공유하고 싶게 만들고 싶을 때
System.out.println(pt1.getClass());
System.out.println(pt1.hashCode());
System.out.println(pt1.toString());
System.out.println(pt2.getClass());
System.out.println(pt2.hashCode());
System.out.println(pt2.toString());
}
}
--------------------------------------------------------------------------------------------------------------------------------------------------------
복습 >
인터페이스 이야기
변경가능한 규격을 먼저 만든후 그 규격에 대한 객체를 구현
--------------------------------------------------------------------------------------------------------------------------------------------------------
자바 목표 : jdbc 디비와 연동까지 이해하기 위한 기초적인거 먼저 배운다. >
1. 접근제한자 : public, protected, default, private
|
클래스내부 |
같은 패키지 |
상속관계 |
누구나 |
public |
O |
O |
O |
O |
protected |
O |
O |
O |
X |
default |
O |
O |
X |
X |
private |
O |
X |
X |
X |
같은 패키지가 상속(다른사람이 내꺼를 가져다 쓴거)보다 우선순위가 높다!
--------------------------------------------------------------------------------------------------------------------------------------------------------
2. Final
클래스 : *상속을 받지 않고 원형그대로 유지해야 하는 클래스인 경우 : final을 붙인다. 상속불가
메소드 : 메소드에 final을 붙이면 상속은 가능하지만 그 메소드는 오버라이딩이 불가하다. 오버라이드 불가
변 수 : 변수앞에 final을 붙이면 그 변수는 변경이 불가하고 초기값을 주거나 생성자에서 줘야 한다. setter있음 안됨
*static 과 붙여서 공유하되 변결 불가한 변수로 쓰임
--------------------------------------------------------------------------------------------------------------------------------------------------------
3. pakage(java, javax, org - 3가지)
(자바8기준) - https://docs.oracle.com/javase/8/docs/api/
OS spec을 맞추는것:java os api를 그대로 쓴거, ex.awt, javax(확장) 자바 자체적으로 확장시킴ex.swing, otg : 표준관련 ex. w3c, xml ..
책 6,7,8장 필요부분 다 봄, 예제 확인하기, 동영상강의 추천
--------------------------------------------------------------------------------------------------------------------------------------------------------
인터페이스 연습!
인터페이스는 제품의 스펙을 적어놓은 것, 규칙, 그래서 값을 가질수 없다.
static int max_channel = 100 -> 상수가 됨
--------------------------------------------------------------------------------------------------------------------------------------------------------
4. 예외처리
(일반예외, 런타임(실행) 예외)
--------- 일반예외
package Exception;
public class ExceptionTest01 {
public static void main(String[] args) {
String str = null;
try {
System.out.println(str.toString());
//throw new NullPointerException()
} catch (Error | Exception e) { //Exception e = new NullPointerException();, 업캐스팅, 자바7이상 |(또는) 기능
e.printStackTrace();
} finally { //예외가 발생하던 안하던 무조건 수행하고 싶은것이 있을 때(ex. 자원을 끊는것들)
System.out.println("finally");
}
System.out.println("종료");
}
}
따로따로 하고 싶다면 catch를 여러개!!
nullpointer exception -> exception : OK, exception -> nullPointerException : X, 순서가 상위가 먼저오면 다 잡아버리기 때문에오류발생
위에 하위class, 아래에 super class 배치해야한다.
-------- runtime 예외
->이건 직접 예외처리
package Exception;
public class ExceptionTest02 {
public static void main(String[] args) {
runMethod();
System.out.println("종료");
}
private static void runMethod() {
System.out.println("runMethod block");
try {
System.out.println(10 / 0);
} catch (Exception e) {
e.printStackTrace();
} // 불능
}
}
-----------
-> 내메소드를 사용하는곳에서 예외처리 : 더 좋은 이유 - 다른 안드로이드, 웹등에서도 사용가능하다
-> 호출할때 한번에 묶어서 하면 좋음
package Exception;
public class ExceptionTest02 {
public static void main(String[] args) {
try { //메소드 호출한쪽에서 예외처리
runMethod();
} catch (Exception e) {
e.printStackTrace();
}
System.out.println("종료");
}
//예외발생
private static void runMethod() throws Exception {
System.out.println("runMethod block");
System.out.println(10 / 0);
}
}
'학부 정리 > Java' 카테고리의 다른 글
18.01.12 자바 - 필기01 미완성 (0) | 2018.01.12 |
---|---|
18.01.11 자바 - 필기02 미완성 (0) | 2018.01.11 |
18.01.10 자바 - 필기02 (0) | 2018.01.10 |
18.01.10 자바 - 필기01 (0) | 2018.01.10 |
[JAVA] 이클립스에서 ctrl+space 단축키 만들기 (0) | 2018.01.02 |