쓰레드 우선순위 - 자바의 쓰레드는 우선 순위 라는것을 가지고 있다. - 하나의 프로그램에서 동시에 여러 개의 쓰래드가 운영될 경우 우선 처리할 쓰레드를 결정하는데 쓰레드 우선순위를 이용한다. - 우선 순위 값은 1~10 까지 이며 기본 값은 5 이다. - 쓰레드의 우선 순위 값이 10 이면 가장 먼저 처리할 확률이 높아지고 1이면 다른 것보다 늦게 처리될 확률이 높아진다. - 우선 순위가 높다고 해서 반드시 가장 먼저 처리되는 것은 아니고 가장 먼저 처리될 확률이 높아지는 것 뿐이다. 반복해서 실행을 하더라도 우선순위에 따라 확률이 높아지는 것 뿐 이지 무조건 해당 우선순위에 따라 실행되는 순서가 결정되는 것은 아니다.
쓰레드 - 프로그램을 작성하다 보면 동시에 여러 개의 일을 해야 할 떄가 있다. - 이러한 멀티 프로세싱을 구현 할 수 있도록 제공하는 것이 쓰레드 이다. 쓰레드 작성 법 - 쓰레드를 작성하는 방법은 Thread 클래스를 상속 받는 방법 과 Runnable 인터페이스를 구현하는 방법 두가지가 있다. 클래스 상속 방법 - Thread 클래스를 상속 받고 run .메서드를 구현해 주면 된다. class 클래스 이름 extends Thread { public void run(){ 소스코드 } } 인터페이스 구현 법 - Runnable 인터페이스를 구현하고 run 메서드를 구현하면 된다. class 클래스이름 implements Runnable{ public void run(){ 소스코드 } } 쓰레드 사용 법..
인터페이스 - 인터페이슨느 추상 메서드로만 구현되어 있는 것을 가르킨다. - 자바에서는 단일 상속만 지원을 하므로 추상 클래스를 하나 이상 상속받을 수 없다. - 자바에서는 인터페이스를 통해 반드시 구현해야 할 메서드를 동시에 여러개를 구현할 수 있다. - 인터페이스는 다중 상속을 지원하기 위해서 제공하는 것이 아니라 하나의 클래스를 여러 종류의 참조 변수를 통해 접근할 수 있고 메서드를 호출 할 수 있도록 지원되는 개념이다. - 인터페이스에 정의된 메서드는 모두 추상 메서드 이며 변수는 static final 변수이다. - 메서드를 선언할 때 abstract 키워드를 붙히지 않아도 추상 메서드로 간주한다. - 변수에 static final 을 붙히지 않아도 static final 로 간주한다. 인터페이..
추상 메서드 - 클래스를 작성할 때 메서드를 구현 하지 않고 선언만 해 놓은 메서드를 추상 메서드 라고 부른다. - 추상 메서드는 구현 되지 않은 메서드 이므로 메서드를 구현을 해야지만 사용이 가능하다. - 추상 메서드는 접근 제한자와 리턴 타입 중간에 abstract 라는 키워드를 붙혀준다. 구현된 메서드 public void method() { } 구현되지 않은 메서드 public abstract void method(); 추상 클래스 - 추상 메서드를 하나라도 가진 클래스를 추상 클래스 라고 부른다. - 추상 클래스는 구현되지 않은 메서드인 추상 메서드를 가지고 있기 떄문에 직접 객체 생성할 수 없다. - 추상 클래스의 기능을 사용하기 위해서는 반드시 추상 클래스를 상속받는 서브 클래스가 있어야 한..
중첩 클래스 - 클래스 내부에 클래스를 만들어서 사용하는걸 의미한다. - 프로그래밍을 할 때 여러 군데서 사용하는 클래스가 아니라면 파일을 새로 만들거나 코드의 아래 부분으로 내려서 만들지 않고 바로 만들어서 바로 쓸 수 있도록 하는 개념이다. - 경우에 따라서는 객체를 생성할 수 있는 부분이 클래스를 설계한 부분으로 한정되어 있는 경우도 있다. - 클래스 내부에 만든 클래스를 Inner Class 라고 부르며 Inner 클래스를 감싸고 있는 클래스를 Outer Class 라고 부른다. 일반 중첩 클래스 - 클래스 내부에 클래스를 만들어서 사용하는 경우이다. - Inner 클래스의 객체를 만들기 위해서는 반드시 Outer 클래스의 객체를 생성하고 이를 통해 Inner 클래스를 만들어야 한다. - Inne..
Final - Final 은 더 이상 변경할 수 없다는 의미를 가지고 있는 키워드 이다. - 변수 : 변수에 값을 넣을 수 없으며 변수의 선언과 동시에 초기화를 반드시 해줘야 한다. - 메서드 : 상속관계가 있을 때 자식 클래스에서 메서드를 Overriding 할 수 없다. - 클래스 : 상속을 하지 못하도록 막아 줄 수 있다. 즉, final은 더 이상 변경 할 수 없다 라는 의미를 가지고 있으며 클래스, 메서드, 변수와 함께 사용할 수 있다.
- 프로그래밍을 할 때 여러 군데서 사용하는 클래스가 아니라면 파일을 새로 만들거나 코드의 아래 부분으로 내려서 만들지 않고 바로 만들어서 바로 쓸 수 있도록 하는 개념이다.
- 경우에 따라서는 객체를 생성할 수 있는 부분이 클래스를 설계한 부분으로 한정되어 있는 경우도 있다.
- 클래스 내부에 만든 클래스를 Inner Class 라고 부르며 Inner 클래스를 감싸고 있는 클래스를 Outer Class 라고 부른다.
일반 중첩 클래스
- 클래스 내부에 클래스를 만들어서 사용하는 경우이다.
- Inner 클래스의 객체를 만들기 위해서는 반드시 Outer 클래스의 객체를 생성하고 이를 통해 Inner 클래스를 만들어야 한다.
- Inner 클래스는 Outer 클래스의 맴버에 접근할 수 있지만 Outer 클래스는 Inner 클래스의 맴버에 접근 할 수 없다. Inner 클래스의 맴버는 Outer 클래스의 객체가 생성되어 있다는 가정하에 사용하므로 접근이 가능하지만 Outer 클래스는 Inner 클래스의 객체의 생성과 관계가 없으므로 Inner 클래스에 대한 접근이 자유롭지 못하다.
static 중첩 클래스
- 일반 중첩 클래스에서 Inner 클래스가 static 으로 정의된 경우이다.
- Inner 클래스가 Static 으로 정의되어 있어 Outer 클래스의 객체 생성 없이 바로 객체 생성이 가능하다.
- Inner 클래스에서는 Outer 클래스에 정의된 맴버 중에 Static 맴버만 접근이 가능하다. Outer 클래스의 객체 생성 없이 바로 Inner 클래스의 객체를 생성하므로 Outer 클래스의 객체가 생성되지 않았다는 가정하에 개발을 해야한다.
메서드 내부의 중첩 클래스
- 클래스를 메서드 내부에 만든 경우를 의미한다
- 메서드 내부에 만든 중첩 클래스는 다른곳에서 참조 변수 조차 선언할 수 없다.
- Inner 클래스에서는 클래스 내부에 선언한 변수만 사용할 수 있으며 클래스를 만든 메서드 내부에 있는 지역 변수 중 final 변수만 접근이 가능하다. 그 외의 모든 변수는 접근이 불가능하다.
익명 중첩 클래스
- 클래스로 부터 객체 생성을 할 때 클래스 내부 코드를 바로 작성하는 것을 의미한다.
- 원본 클래스가 가지고 있는 메서드를 Overriding 해야 할 경우 상속받은 클래스를 만들지 않고 바로 Overriding 을 할 수 있다.
- 추상 클래스라는 것을 이용할 때 자주 사용하는 기법 이다.
정리, 중첩 클래스는 해당 코드 내부에서만 사용하는 클래스 일 경우에만 사용하도록 하자, 다른곳에서는 사용할 수 없기 떄문에 객체지향적이지 않을 수 있다.