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 예외처리명{
명령문
}
'정보처리기사 > [수제비] 정보처리기사 실기' 카테고리의 다른 글
VII. SQL 응용_03. 절차형 SQL 활용하기 (0) | 2023.03.20 |
---|---|
VII. SQL 응용_02. 응용 SQL 작성하기 (0) | 2023.03.20 |
VII. SQL 응용_01. 데이터베이스 기초 (0) | 2023.03.17 |
VI. 프로그래밍 언어활용_02. C언어 (0) | 2023.03.03 |
VI. 프로그래밍 언어활용_01. 기본 (0) | 2023.03.03 |