정보처리기사/[수제비] 정보처리기사 실기

VI. 프로그래밍 언어활용_03. 자바

web_seul 2023. 3. 8. 19:51
반응형

03. 자바

1) 자바 기본 구조 : 모든 소스 코드는 클래스 단위로 구성, public static void main 으로 시작

public : 접근제어자, static : 메모리 할당 방법, void : return이 없는 함수

public class Soojebi{	//Soojebi.java
  public static void main(String[] args){
    System.out.printIn("Hello");
  }
}

 

2) 자료형 : 프로그래밍 언어에서 실수값, 정수값과 같은 여러 종류의 데이터를 식별하는 형태, 메모리 공간을 효율적으로 사용하고 2진수 데이터를 다양한 형태로 사용하기 위해 존재

문자형 문자 하나를 저장하고자 할 때 사용하는 자료형
메모리에 저장은 숫자로 저장됨
char
문자열형 문자 여러개를 저장하고자 할 때 사용하는 자료형 String
정수형 정수값을 저장하고자 할 때 사용하는 자료형 byte,  int(4byte), short(2byte), long(8byte)
부동 소수점 소수점을 포함하는 실수값을 저장하고자 할 때 사용하는 자료형 float(4byte), double(8byte)
논리형 변수의 참, 거짓을 나타낼 때 사용하는 자료형
treu, false (소문자) 두가지 값을 저장
boolean

* 파이썬 : True/False (대문자)

 

3) 변수 : 저장하고자하는 값이 있을 때, 그 값을 주기억장치에 기억하기 위한 공간

int a = 10;
//a: 변수명
//10: 데이터값
클래스 변수
(Class Variable)
클래스 블록에 선언하는 변수
클래스가 시작되면 변수가 생성되고 클래스가 종료되면 변수가 소멸
지역 변수
(Local Variable)
블록 내에서 선언하는 변수
블록이 시작되는 부분에 바로 선언해주어야 하고 중괄호가 닫히는 시점에 소멸
static 변수
(Static Variable)
프로그램 전체에서 사용할 수 있는 변수
프로그램이 시작되면 변수가 생성되고 프로그램이 종료되면 변수가 소멸
변수 선언시 static 이라는 키워드를 붙임

 

4) 배열 : 같은 타입의 변수들로 이루어진 집합

int a[]={1,2,0}

 

1차원 배열 선언 : 초기값을 선언하지 않을 경우 정수일 때는 0, 실수일 때는 0.0, 문자열일 때는 NULL이 저장, 자바에서 배열의 크기를 구할 때는 length 속성을 사용

초기값이 없는 경우 자료형 []배열명 = new 자료형[배열_요소_개수];
자료형 배열명[] = new 자료형[배열_요소_개수];
초기값이 있는 경우 자료형 []배열명 = {초기값};
자료형 배열명[] = {초기값};

 

2차원 배열

int a[][] = {{1,0}, {0,0}};
초기값이 없는 경우 자료형 [][]배열명 = new 자료형[행의 개수][열의 개수];
자료형 배열명[][] = new 자료형[행의 개수][열의 개수];
초기값이 있는 경우 자료형 [][]배열명 = {{초기값}, {초기값}, ...};
자료형 배열명[][] = {{초기값}, {초기값}, ...};

 

5) 표준 입출력 함수

System.in.readLine()

 

6) 연산자 : 프로그램 실행을 위해 연산을 표현하는 기호

문자열 + 숫자 = 문자열

 

7) 반복문

for문

for(초기식; 조건식; 증감식){
  명령문;
}

 

for each문 : 배열이나 리스트의 크기만큼 반복하는데 반복할 때마다 배열이나 리스트의 항목을 순차적으로 변수에 대입하는 반복문

for(제어변수 : 배열){
  명령문;
}

 

8) 사용자 정의함수(메서드) : 사용자가 직접 새로운 함수를 정의하여 사용하는 방법, 사용자 정의 함수에서 매개변수나 생성된 변수는 사용자 정의 함수가 종료되면 없어짐

자료형 함수명(자료형 변수명, ...){
  명령어;
  return 반환값;
};

 

static 메서드 개념 : 클래스가 메모리에 올라갈 때 자동적으로 생성되는 메서드, 인스턴스를 생성하지 않아도 호출이 가능하게 됨

 

9) 클래스 : 객체지향 프로그래밍(OOP; Object-Oriented Programming)에서 특정 객체를 생성하기 위해 변수와 메서드를 정의하는 틀

클래스 접근제어자 : 지정된 클래스, 변수, 메서드를 외부(같은 패키지이거나 다른 패키지)에서 접근할 수 있도록 권한을 설정하는 기능

클래스 접근제어자 종류

public 외부의 모든 클래스에서 접근이 가능한 접근 제어자
protected 같은 패키지 내부에 있는 클래스, 하위 클래스(상속받은 경우)에서 접근이 가능한 제어자
자기 자신과 상속받은 하위 클래스 둘 다 접근이 가능한 접근 제어자
default 접근 제어자를 명시하지 않은 경우로 가으 ㄴ패키지 내부에 있는 클래스에서 접근이 가능한 접근 제어자
자바에만 존재하는 접근 제어자
private 같은 클래스 내에서만 접근이 가능한 접근 제어자

 

클래스 정의 : 변수는 변수선언과 동일, 메서드는 사용자 정의함수와 문법이 동일

public class 클래스명{
  private 자료형 변수명;
  public 반환_자료형 메서드명(자료형 변수명, ...){
    명령어;
    return 반환값;
  }
}

 

클래스 변수 생성 : 클래스는 객체를 생성하기 위해 변수와 메서드를 정의하는 틀이므로 실제 변수를 통해서 인스턴스를 new 키워드를 이용해 생성

클래스명 변수명 = new 클래스명(파라미터);
변수명.메서드명();

 

this : 현재 객체를 가리키는 키워드, 클래스 내부의 변수와 메서드를 가리킬 수 있음

this.변수;
this.함수(매개변수);

 

생성자 : 해당 클래스의 객체가 생성될 때 자동으로 호출되는 특수한 종류의 메서드, 일반적으로 클래스의 멤버 변수를 초기화하거나 클래스를 사용하는데 설정이 필요한 경우 사용

//생성자 정의
public class 클래스명 {
  public 클래스명(자료형 변수명, ...){
    명령어;
  }
}

//생성자 호출
클래스명 클래스변수 = new 클래스명(매개변수);

 

소멸자(finalize) : 객체의 수명이 끝났을 때 객체를 제거하기 위한 목적으로 사용되는 메서드, 반환값이 없는 것이 특징

//소멸자 정의
public class 클래스명{
  public void finalize(매개변수){
    명령어;
  }
}

//소멸자 호출
클래스변수.finalize(매개변수)

 

10) 클래스 상속(Inheritance) : 어떤 객체가 있을 때 그 객체의 변수와 메서드를 다른 객체가 물려받는 기능

class 부모_클래스명{
}
class 자식_클래스명 extends 부모_클래스명{
}

 

오버로딩 : 동일 이름의 메서드를 매개변수만 다르게하여 여러개 정의할 수 있는 기능

특징 : 메서드 이름이 같아야 함, 매개변수 개수가 달라야 함, 매개변수 개수가 같을 경우 데이터 타입이 달라야함, 반환형은 같거나 달라도됨

 

오버라이딩 : 하위 클래스에서 상위 클래스 메서드를 재정의할 수 있는 기능

특징 : 오버라이드 하고자하는 메서드가 상위클래스에 존재해야함, 메서드 이름은 같아야함, 메서드 매개변수 개수, 데이터타입이 같아야함, 메서드 반환형이 같아야함

class 부모_클래스명{
  public 반환_자료형 메서드명(자료형 변수명){}
}
class 자식_클래스명 extends 부모_클래스명{
  public 반환_자료형 메서드명(자료형 변수명){
    //부모 클래스의 메서드명, 매개변수가 동일해야함
  }
}

 

부모 클래스 접근 개념 : 자바는 super 키워드를 사용하여 상위 클래스의변수나 메서드에 접근

super.메서드명();

 

11) 추상 클래스 : 미 구현 추상 메서드를 한개 이상가지며 자식클래스에 해당 추상 메서드를 반드시 구현하도록 강제하는 기능

abstract class 추상_클래스명{
  abstract 자료형 메서드명();	//메서드 내부는 정의하지 않음
}
class 자식_클래스명 extends 추상_클래스명{
  자료형 메서드명(){
    명령어;	//메서드를 상속받아 메서드 내부를 정의
  }
}

 

12) 인터페이스 : 자바의 다형성을 극대화하여 개발코드 수정을 줄이고 프로그램 유지보수성을 높이기 위한 문법, 일종의 추상클래스

interface 인터페이스_클래스명{
  자료형 메서드명();	//메서드 내부는 정의하지 않음
}
class 자식_클래스명 implements 인터페이스_클래스명{
  자료형 메서드명(){
  	//interface의 메서드를 상속받아 내부를 정의
  }
}

 

13) 스레드 : 프로세스보다 가벼운, 독립적으로 수행되는 순차적인 제어의 흐름이며 실행단위

//Thread 클래스 상속
class T_클래스명 extends Thread{
  public void run(){
    //스레드 동작시 수행할 코드
  }
}

//Thread 호출
Thread 스레드변수 = new 상속받은 스레드클래스();
Thread 스레드변수 = new Thread(new 상속받은 스레드클래스());
스레드변수.start();
//Runnable 인터페이스 상속
class T_클래스명 implements Runnable{
  public void run(){
    //스레드 동작시 수행할 코드
  }
}

//Thread 호출
Thread 스레드변수 = new Thread(new 상속받은 스레드클래스());

 

14) 컬렉션 프레임워크 : 다수의 데이터를 효과적으로 처리할 수 있는 표준화된 방법을 제공하는 클래스의 집합

List

LinkedList : 데이터의 삽입, 삭제가 빈번한 경우 ArrayList보다 효율적으로 사용할 수 있는 클래스

ArrayList : List의 자식 클래스로 크기가 가변적으로 변하는 선형리스트의 성질을 가지고 있는 클래스

List 변수명 = new LinkedList();
LinkedList 변수명 = new LinkedList();
ArrayList 변수명 = new ArrayList();

List<자료형> 변수명 = new LinkedList<자료형> ();
LinkedList<자료형> 변수명 = new LinkedList<자료형> ();
ArrayList<자료형> 변수명 = new ArrayList<자료형> ();
add(값) 값을 추가하는 메서드
add(인덱스, 값) 해당 인덱스(번지)에 값을 추가하는 메서드
remove(값) 해당 인덱스(번지)에 값을 제거하는 메서드
size() 원소 개수를 출력하는 메서드

 

Set

HashSet : Set의 자식클래스(하위클래스, 파생클래스) 로 중복된 원소를 허용하지 않는 집합의 성질을 가지고 있는 클래스

Set 변수명 = new HashSet();
HashSet 변수명 = new HashSet();

Set<자료형> 변수명 = new HashSet<자료형> ();
HashSet<자료형> 변수명 = new HashSet<자료형> ();
add(값) 값을 추가하는 메서드
중복된 값이 들어오면 추가하지 않음
remove(값) 해당 인덱스(번지)에 값을 제거하는 메서드
size() 원소 개수를 출력하는 메서드

 

TreeSet : 이진 검색 트리라는 자료구조 형태로 데이터를 저장하는 클래스

Set 변수명 = new TreeSet();
TreeSet 변수명 = new TreeSet();

Set<자료형> 변수명 = new TreeList<자료형> ();
TreeSet<자료형> 변수명 = new TreeSet<자료형> ();
add(값) 값을 추가하는 메서드
중복된 값이 들어오면 추가하지 않음
remove(값) 값을 제거하는 메서드
size() TreeSet에 들어있는 원소의 개수를 얻는 메서드
headSet(값) 값보다 작은 객체들을 반환하는 메서드
tailSet 값보다 큰 객체들을 반환하는 메서드

 

Map

HashMap : 키와 값으로 구성된 객체를 저장하는 구조로 되어있는 자료구조를 구현한 클래스, 키의 중복허용x

Map 변수명 = new HashMap();
HashMap 변수명 = new HashMap();

Map<자료형> 변수명 = new HashMap<자료형> ();
HashMap<자료형> 변수명 = new HashMap<자료형> ();
put(키, 값) 해당 키에 해당하는 값을 추가하는 메서드
remove(키) 해당 키에 해당하는 값을 제거하는 메서드
get(키) 해당 키에 해당하는 값을 얻는 메서드
size() HashMap에 들어있는 원소의 개수를 얻는 메서드

 

TreeMap : 키와 값으로 구성된 객체를 저장하는 구조로 되어있는 자료구조를 구현한 클래스, 이진 검색트리 사용

Map 변수명 = new TreeMap();
TreeMap 변수명 = new TreeMap();

Map<자료형> 변수명 = new TreeMap<자료형> ();
TreeMap<자료형> 변수명 = new TreeMap<자료형> ();
put(키, 값) 해당 키에 해당하는 값을 추가하는 메서드
remove(키) 해당 키에 해당하는 값을 제거하는 메서드
get(키) 해당 키에 해당하는 값을 얻는 메서드
size() HashMap에 들어있는 원소의 개수를 얻는 메서드

 

15) 예외처리 : 프로그램이 동작중에 의도하지않은 비정상적인 동작을 처리하는 기법

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

 

throw : 의도적으로 예외를 던지는 예약어

public class 클래스명{
  public static void main(String[] args){
    try{
      throw new Exception();
    }
    catch (Exception e){
      System.out.printIn("강제 예외");
    }
  }
}

 

throws : 메서드에서 발생하는 예외를 던지는 예약어

접근제어자 자료형 메서드명(매개변수) throws 예외처리명{
  명령문
}

 

반응형