[정처기 실기] 6. 프로그래밍 언어 활용 - JAVA

선뀰·2024년 6월 13일
0

- 추상 클래스

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

Thread 클래스 호출

1) Thread 스레드 변수=new 상속받은스레드클래스();
2) Thread 스레드 변수=new Thread(new 상속받은스레드클래스());

Runnable 인터페이스 상속

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 상속받은스레드클래스());

- 컬렉션

컬렉션 프레임워크

다수의 데이터를 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합이다.

  • Collection
    1) List : 순서가 있는 저장 공간
    LinkedList : 링크드리스트 , Stack : 스택 자료구조 , Vector : 동기화 보장, ArrayList : 동기화 보장하지 않음

2) Set : 집합적인 저장 공간
HashSet, SortedSet 정렬을 위한 Set계열의 클래스

  • Map
    1) Hashtable : 동기화 보장하는 Map 계열의 클래스
    2) HashMap : 동기화 보장하지 않는 Map 계열의 클래스
    3) SortedMap : 정렬을 위한 Map 계열의 클래스
    TreeMap

컬렉션 프레임워크의 특징

배열의 단점을 보완 : 메모리 낭비를방지하고 동적인 크기 변경이 가능하다.
자료구조의 구현 : 자료구조 형태인 List, Set, Map 등이 클래스로 구현
일관된 인터페이스 : 대량의 데이터를 일관된 인터페이스를 제공하여 쉽고 효율적으로 프로그램 작성이 가능하다.

예외 처리

프로그램이 동작 중에 의도하지 않은 비정상적인 동작을 처리하는 기법이다.
try, catch, finally로 구성된다.

try {
	명령문;
}
catch ( 예외처리명 ) {
	예외처리_명령문;
}
finally { 
	명령문;
}

/ by zero
finally문자열이 출력된다.
  • throw
    의도적으로 예외를 던지는 예약어이다.
    런타임에 발생된 에러를 처리하기 위해 사용된다.
public class Soojebi {
	public static void main(String[] args){
    	try {
        	throw new Exception(); //throw를 통해 의도적으로 예외를 던지는 예약어이다.
        }
        catch (Exception e) {
        	System.out.println("강제 예외 발생");
        }
    }
}
  • throws
    throws는 메서드에서 발생하는 예외를 던지는 예약어이다.
접근제어자 자료형 메서드명(매개변수) 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가 출력된다.

profile
공부 기록

0개의 댓글