목록프로그래밍 언어 (70)
알버트의 개발하는 블로그

이번시간에는 자바에서 제공하는 스레드(thread)의 개념과 스레드 관련 주요 메소드를 알아보도록 하겠습니다. 스레드는 프로그래밍으로 멀티태스킹을 구현함에 있어서 굉장히 중요하기 때문에 반드시 알아두어야 하는 개념 중에 하나입니다. 스레드란? (Thread) 우리가 컴퓨터로 음악을 들으면서 워드작업을 하면 2가지 이상의 프로세스를 동시에 하는 것입니다. 그리고 이것을 우리는 멀티태스킹을 한다라고 합니다. 쓰레드는 이 프로세스 내에서 실행되는 세부 작업의 단위입니다. 여러 개의 쓰레드가 모여 하나의 프로세스를 구성하게 되는데요. 그리고 이 하나의 프로세스를 구성하는 여러 개의 쓰레드를 멀티 쓰레드라고 합니다. 예를 들면, 자바 내에서 우리가 메인 클래스에서 프로그래밍을 하면 메인클래스의 쓰레드가 무조건 실..

이번 시간에는 자바에서 제공하는 유용한 클래스인 HashSet과 TreeSet 클래스에 대해서 익혀보겠습니다. HashSet과 TreeSet은 ArrayList처럼 원하는 데이터를 저장할 수 있는 클래스입니다. 하지만 이 둘은 ArrayList와는 다르게 중복된 데이터를 허용하지 않는다는 점에서 공통점을 갖고 있습니다. 그래서 데이터를 저장해야 하는데 중복된 데이터는 필요없을 때 유용하게 쓰입니다. 먼저 HashSet부터 예제를 통해서 알아보겠습니다. HashSet 클래스 예제 package kr.koreait.collectionTest; import java.util.HashSet; import java.util.Random; public class HashSetTest { public static v..

이번 시간에는 자바 추상 클래스와 다형성에 대해서 익혀보는 시간을 갖도록 하겠습니다. 추상 클래스는, 추상 메소드를 포함한 클래스를 말합니다. 몸통이 구현이 안된 추상메소드를 포함하고 있기 때문에 이 클래스를 상속받는 클래스들은 추상 메소드의 몸통을 명시하면서 오버라이드해주어야 하는데요. 다형성은 이 상속받은 추상메소드를 여러 클래스에서 각기 다른 방법으로 사용할 수 있는 것을 말합니다. 즉, 단어의 뜻처럼 '여러가지 형태를 가지고 있다'는 것을 의미합니다. 구체적으로 말하자면 추상 메소드의 다형성이 될 것입니다. 간단한 예제를 통해서 다형성을 구현해보도록 하겠습니다. 추상 클래스와 다형성 예제 package abstractClassTest; import java.util.Scanner; abstract..

이번 시간에는 자바에서 제공하는 추상 메소드와 추상 클래스에 대해서 알아보고 익혀보도록 하겠습니다. 먼저 추상 메소드라는 것을 알아야 추상 클래스에 대해서 알 수 있습니다. 추상 메소드는 메소드는 메소드지만, 머리만 있고 몸통이 없는 메소드를 말합니다. 즉, 함수의 원형은 있는데 그 함수로 뭘 처리해주겠다는 내용이 없는 것입니다. 즉, 함수의 몸통인 "{ }"블록이 없이 대가리만 선언한 불완전한 함수를 추상 메소드라고 합니다. public void kindOf() { } //

이번 시간에는 자바의 상속 기능과 메소드 오버라이딩에 대해서 알아보겠습니다. 상속이란 것은, 상속받는 자식 클래스가 상속받은 부모 클래스의 변수와 함수를 자유롭게 쓸 수 있다는 것입니다. 그래서 객체를 만들었을 때 생성되는 부모클래스의 함수도 그대로 상속받아서 사용하게 되는데요. 부모의 함수를 그대로 갖다가 쓰기 때문에 자식 클래스에서 메소드를 다르게 쓰고 싶을 때는 메소드 오버라이딩(재정의)을 해야 합니다. 간단하게 요약하자면, 상속 : 자식 클래스가 부모 클래스의 변수와 함수를 상속받아서 사용할 수 있는 것 함수 재정의( 메소드 오버라이드) : 기존 함수의 정의를 쓰지 않고 재정의해서 사용하는 것. 함수명은 똑같으나 다른 기능을 갖추게 된다. 이와 같습니다. 이제 간단한 예제를 통해서 상속과 메소드 ..

이번 시간에는 자바에서 제공하는 유용한 클래스 중에 하나인 StringTokenizer 클래스를 익혀보겠습니다. StringTokenizer은 String을 입력받아서 사용자가 지정하는 구분자로 데이터를 나눠주는 역할을 합니다. StringTokenizer은 구분자를 따로 설정하지 않을 때는 공백이나 탭을 구분자로 설정해줍니다. 구분자를 통해서 구분되어진 데이터를 '토큰'이라고 합니다. 간단한 예제를 통해서 StringTokenizer 클래스를 실습해보겠습니다. StringTokenizer 클래스 예제 import java.util.StringTokenizer; public class StringTokenizerTest { public static void main(String[] args) { //문자..

이번 시간에는 자바에서 제공하는 PrintWriter 클래스에 대해서 배워 보겠습니다. PrintWriter 클래스는 파일을 만들어 내용을 입력하고 파일내용을 출력해주는 중요한 클래스입니다. 그래서, 쓰기 위해서는 파일의 경로도 설정해줘야 하고 내용도 입력해주어야 합니다. PrintWriter 클래스 Write 예제 import java.io.FileNotFoundException; import java.io.PrintWriter; //PrintWriter 패키지 포함 import java.util.Scanner; public class printWriter { public static void main(String[] args) { Scanner sc = null;//스캐너 클래스 sc객체 선언 Pri..

이번 시간에는 자바에서 제공하는 랜덤 난수 기능을 이용하여 로또 번호를 뽑는 프로그램을 짜보겠습니다. c++에서도 랜덤 난수 기능이 있었는데요. 자바에서 이 기능이 좋아서 그대로 가져갔습니다. 하지만 쓰는 방법은 좀 달라졌습니다. 자바에서 랜덤 난수를 쓰는 방법을 로또 번호 생성프로그램을 통해 배워보겠습니다. 로또 번호 뽑기 프로그램 import java.util.Random;//랜덤난수 패키지 포함 public class randomTest { public static void main(String[] args) { //랜덤 난수를 생성해주는 코드 Random random = new Random(); int[] lotto = new int[45];//45개짜리 lotto배열 생성 for (int i =..