본문 바로가기
반응형

Software/JAVA24

[JAVA] Day14. 멀티 스레딩 1. 스레드 - 다중 스레딩 : 하나의 프로그램이 동시에 여러 가지 작업을 할 수 있도록 하는 것 - 스레드 : 각각의 작업, 동일한 데이터를 공유함 - 프로세스 : 자신만의 데이터를 가짐 - 프로그램을 보다 빠르게 실행하기 위해 멀티 스레딩 사용 2. 멀티 스레딩의 문제점 - 여러 스레드들이 같은 데이터를 공유하게 되면 '동기화' 문제 발생 3. 스레드 생성과 실행 Thread t = new Thread(); t.start(); 3-1) 스레드 생성: Thread 클래스 상속하는 방법 - Thread 클래스를 상속받은 후에 run() 메소드 재정의 - run 메소드 안에 작업 기술 - Thread 객체 생성하고 start() 호출해서 스레드 시작 class MyThread extends Thread {.. 2023. 1. 18.
[JAVA] Day13. 파일 입출력 1. 스트림 Stream - 순서가 있는 데이터의 연속적인 흐름 - 입풀력 단위에 따라 분류 바이트 스트림 문자 스트림 바이트 단위로 입출력하는 클래스 문자 단위로 입출력하는 클래스 추상 클래스인 InputStream, OutputStream에서 파생됨 기본 추상 클래스인 Reader, Writer 클래스에서 파생됨 바이트 스트림 클래스 이름에는 InputStream(입력), OutputStream(출력)이 붙음 문자 스트림 클래스 이름에는 Reader(입력), Writer(출력)이 붙음 2. 문자 스트림 - 입출력 단위가 문자 (바이트 X) - 자바는 유니코드 이용하여 문자 저장 - 주요 메소드 - 파일에서 문자 읽고 쓸 때는 FileReader, FileWriter 사용 - 파일에서 문자 읽는 경우 .. 2023. 1. 18.
[JAVA] Day12. 제네릭과 컬렉션 1. 제네릭 (generic programming) 다양한 종류의 데이터 를 처리할 수 있는 클래스와 메소드를 작성하는 기법 ex) class Box { ... } // T : 타입 매개변수 - String도 될 수 있고, Integer도 될 수 있음 2. 기존의 방법 일반적인 객체를 처리하려면 Object 참조 변수 사용: 어떤 객체이든지 참조 가능 public class Box { private Object data; private void set(Object data) { this.data = data; } public Object get() { return data; } } Box b = new Box(); b.set("Hello World!"); // 문자열 객체 저장 String s = (St.. 2023. 1. 11.
[JAVA] Day11. 자바 그래픽 1. 그리는 위치 - JPanel : 그림 그릴 수 있는 화면 갖고 있고, 동시에 컨테이너 역할도 함 class MyPanel extends JPanel { ... } public class MyFrame extends JFrame { public MyFrame() { MyPanel panel = new MyPanel(); add(panel); } } 2. paintComponent() - 컴포넌트가 가지고 있는 메소드 - 모든 컴포넌트가 가지고 있으며, 이 메소드를 재정의함으로써 그림을 그림 - 컴포넌트를 다시 그릴 필요가 있을 때마다 자바 시스템에 의해 호출됨 (ex. 프레임이 가려졌다가 다시 나타나는 경우) - super.paintComponent(g) 호출 - 전체 구성요소를 전부 그리는 것이 아.. 2023. 1. 10.
[JAVA] Day10. 스윙 컴포넌트 1. 스윙 컴포넌트 - 윈도우 기반 응용 프로그램을 만드는데 사용되는 JFC(Java Foundation Classes) 의 일부 - AWT와 달리 플랫폼 독립적이고 경량 컴포넌트 구조 - JButton, JTextField, JTextArea, JRadioButton, JCheckbox, JMenu, JColorChooser 등 2. JComponent 클래스 - 최상위 컨테이너를 제외하고는 거의 모든 컴포넌트가 JComponent를 상속받음 - ex) JPanel, JLabel, JComboBox 등 - 스윙 컴포넌트들이 공통적으로 가져야하는 속성과 메소드 포함 - JComponent 메소드 3. 예제 - 텍스트 필드로 사용자에게 정수 입력받은 뒤 제곱 반환 import javax.swing.*; i.. 2023. 1. 9.
[JAVA] Day9. 이벤트 처리 1. 이벤트 - 사용자가 버튼을 클릭한다거나, 마우스를 움직이거나, 키를 누르면 발생 - 이벤트 리스너 : 발생된 이벤트 객체에 반응하여 이벤트를 처리하는 객체 2. 이벤트 처리 과정 1) 이벤트 리스너 작성 class MyListener implements ActionListener { public void actionPerformed (ActionEvent e) { // Action event 처리 // 이벤트 객체가 발생하면 호출됨! } } 2) 이벤트 리스너를 컴포넌트에 등록 public class MyFrame extends JFrame { JButton button; ... public MyFrame() { // 생성자에서 컴포넌트 생성, 추가 button = new JButton("동작");.. 2023. 1. 8.
반응형