1) 추상 클래스 개념
추상 메서드 한 개 이상 가지며, 추상 메서드를 반드시 구현하도록 강제하는 기능이다.
abstract class 추상_클래스명 {
abstract 자료형 메서드명(); // 메서드 내부는 정의하지 않음
}
class 자식_클래스명 extends 추상_클래스명{
자료형 메서드명(){
명령어; // 메서드를 상속받아 메서드 내부를 정의한다.
}
}
자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위한 문법이다.
오직 추상 메서드와 상수만 멤버로 가질 수 있으며, 그 외의 다른 어떠한 요소도 허용하지 않는다.
'기본 설계도'라고 한다.
interface 인터페이스_클래스명 {
자료형 메서드명(); // 메서드 내부는 정의하지 않는다.
}
class 자식_클래스명 implements 인터페이스_클래스명 {
자료형 메서드명(){
// interface의 메서드를 상속받아 내부를 정의
}
}
프로세스보다 가벼운, 독립적으로 수행되는 순차적인 제어의 흐름이고, 실행 단위이다.
Thread 클래스 상속 받고, run()메서드에 스레드 동작 시 수행할 코드를 작성한다.
class T_Soojebi extends Thread {
public void run() {
// 스레드 동작 시 수행할 코드
System.out.println("Run");
}
}
public class Soojebi {
public static void main(String[] args){
Thread t1=new T_Soojebi();
Thread t2=new Thread(new T_Soojebi());
t1.start();
t2.start();
System.out.println("Main");
}
}
// Run
// Main
// Run
1) Thread 스레드 변수=new 상속받은스레드클래스();
2) Thread 스레드 변수=new Thread(new 상속받은스레드클래스());
1) Runnable 인터페이스 상속 부분
class T.Soojebi implements Runnable {
public void run(){
System.out.println("Run");
}
}
public class Soojebi{
public static void main(String[] args){
Thread t=new Thread(new T_Soojebi());
t.start();
System.out.println("Main");
}
}
// Run
// Main
2) Thread 클래스 호출 부분
Thread 스레드변수=new Thread(new 상속받은스레드클래스());
다수의 데이터를 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합이다.
2) Set : 집합적인 저장 공간
HashSet, SortedSet 정렬을 위한 Set계열의 클래스
배열의 단점을 보완 : 메모리 낭비를방지하고 동적인 크기 변경이 가능하다.
자료구조의 구현 : 자료구조 형태인 List, Set, Map 등이 클래스로 구현
일관된 인터페이스 : 대량의 데이터를 일관된 인터페이스를 제공하여 쉽고 효율적으로 프로그램 작성이 가능하다.
프로그램이 동작 중에 의도하지 않은 비정상적인 동작을 처리하는 기법이다.
try, catch, finally로 구성된다.
try {
명령문;
}
catch ( 예외처리명 ) {
예외처리_명령문;
}
finally {
명령문;
}
/ by zero
finally문자열이 출력된다.
public class Soojebi {
public static void main(String[] args){
try {
throw new Exception(); //throw를 통해 의도적으로 예외를 던지는 예약어이다.
}
catch (Exception e) {
System.out.println("강제 예외 발생");
}
}
}
접근제어자 자료형 메서드명(매개변수) throws 예외처리명 {
명령문
}
public class Soojebi{
public void divide(int a, int b) throws Exception{
System.out.prinln(a/b);
}
public static void main(String[] args){
Soojebi a=new Soojebi();
try {
a.divide(4, 0);
}
catch (Exception e) {
System.outprintln(e.getMessage());
}
}
}
/ by zero가 출력된다.