본문 바로가기
반응형

자바기본14

AWT - GUI 프로그래밍 #3 Button ▶ Button 프로그램에서 기본적으로 사용되는 컴포넌트입니다. 주로 사용자의 입력을 받아들일 때 사용됩니다. ​ ■ 주요 생성자 - Button() : 빈 버튼 생성 - Button(String label) : 주어진 label을 표시하는 버튼을 생성 Button button = new Button("버튼"); ■ 주요 메소드 - String getLabel() : 버튼의 텍스트를 얻음 - void setLabel(String label) : 버튼의 텍스트 설정 package awt; import java.awt.Button; import java.awt.Frame; import java.awt.Panel; class ButtonFrame{ private Panel panel; private Butto.. 2022. 9. 12.
AWT - GUI 프로그래밍 #2 Label 컴포넌트 컴포넌트는 특정 기능을 수행하는 최소단위 컴포넌트와 다른 컴포넌트를 담을 수 있는 컨테이너 컴포넌트, 독립된 창으로 실행될 수 있는 최상위 컴포넌트로 구분할 수 있습니다. 최소단위 컴포넌트 Label, Button, Canvas, Checkbox, Choice, List, Scrollbar, TextField, TextArea, Menu, MenuItem, MenuBar 일반적으로 컴포넌트라고 하면 최소단위 컴포넌트라고 할 수 있습니다. 최소단위 컴포넌트는 독립적으로 수행할 수 없기 때문에 최상위 컴포넌트에 포함되어야 합니다. ​ ​ ▶ Label AWT 컴포넌트 중 가장 단순한 형태 "종류:, 파일 시스템 :, 용량 : " 이런 것들이 Label입니다. ■ 주요 생성자 - Label() : 빈.. 2022. 9. 12.
AWT - GUI 프로그래밍 #1 AWT(Abstract Windows Toolkit)란 자바에서 GUI 프로그래밍을 지원하기 위해서 제공되는 패키지 모음을 말합니다. 지금까지 했던 프로그래밍은 윈도우에서 command창으로 실행을 한거라고 하면 AWT는 비주얼베이직이나 비주얼 C#과 비슷한 윈폼이라고 생각하면 됩니다. 그렇다고 윈폼과 동일 수준을 기대하시면 안됩니다. ​ AWT 프로그래밍 구조 AWT 프로그래밍의 구조는 크게 컴포넌트와 레이아웃 그리고 이벤트 처리로 나눌 수 있습니다. 컴포넌트는 버튼과 같은 GUI를 구성하는 요소를 말하고 레이아웃은 요소들의 위치를 설정하는 것이며 이벤트 처리는 버튼을 마우스로 클릭했을 때 특정 작업을 처리하는 것을 말합니다. Hello AWT 거의 모든 GUI프로그램은 프레임을 프로그램 단위로 사용합.. 2022. 9. 12.
예외 처리 예외 처리 프로그램에서 예외 처리는 안정적인 프로그램을 만들기 위해서입니다. 그러나 빌게이츠든 스티브 잡스든 100% 완벽한 프로그램은 못 만듭니다. 예외는 오류보다는 정상적인 프로그램의 처리를 벗어난 잘못된 동작이라고 할 수 있습니다. 예외가 발생했다면 최소한의 일을 처리할 수 있어야 합니다. ☞ 어떤 이유로 오류가 발생했는 지 사용자에게 알려주어야 합니다.(꼭 그렇지만도 않음. 공공프로젝트에서 오류코드와 오류명을 화면에 표시하면 보안상의 문제가 있다고 표시 못하게 하는 경우도 있음) ☞ 어떤 데이터를 다루는 중이었다면 모든 데이터를 저장해합니다.(가능할지 모르겠어요) ☞ 최악의 경우 안전한 방법으로 프로그램을 종료할 수 있어야 합니다. ​ 예외 타입 프로그램에서 오류를 모두 처리해 줄 수 있는 것은 .. 2022. 9. 12.
날짜 다루기 Date 사용하는 시간은 1970년 1월 1일 기준으로 현재까지의 사간을 1/1000초 단위로 나타냅니다. 주요 생성자 ■ Date() : Date 객체 생성, 1970년 1월 1일부터 현재까지 흐른 시간으로 초기화 ■ Date(long date) : 1970년 1월 1일부터 지정한 만큼 흐른 시간으로 초기화 주요 메소드 ■ boolean after(Date when) : 주어진 시간보다 나중 시간이면 true 아니면 false ■ boolean before(Date when) : 주어진 시간보다 이전 시간이면 true 아니면 false ■ long getTime() : Date 객체의 현재 시간을 1/1000초 단위로 리턴 ■ void setTime(long time) : Date 객체의 시간 설정 D.. 2022. 9. 12.
자바 문자열 다루기 #2 StringBuffer 클래스 StringBuffer 클래스의 기능은 String 클래스와 대부분 동일합니다. StringBuffer 클래스는 String클래스가 갖지 못하는 몇몇 장점을 가지고 있습니다. String보다 빠르다는 것과 문자열의 동적 조작이 가능하다는 것입니다. 주요 생성자 ■ StringBuffer() : 버퍼의 크기가 16인 객체 생성 ■ StringBuffer(int length) : 버퍼의 크기가 length인 객체 생성 ■ StringBuffer(String str) : 주어진 문자열을 초기값으로 객체 생성 주요 메소드 ■ StringBuffer append(모든형태의 데이터) : 문자열에 주어진 데이터 추가 ■ StringBuffer delete(int start, int en.. 2022. 9. 12.
자바 문자열 다루기 #1 String 클래스 String 클래스는 API문서의 java.lang 패키지에서 찾아볼 수 있습니다. 자바 API문서는 아래 링크를 참조하시면 됩니다. https://docs.oracle.com/javase/8/docs/api/ Java Platform SE 8 docs.oracle.com 그렇다면 String 클래스를 사용하기 위해서는 import java.lang.String 해주지 않을까? 자바는 기본적으로 java.lang 패키지를 자동으로 import해 줍니다. 그래서 따로 import 작업을 해주지 않아도 됩니다. java.lang.String 클래스의 주요 메소드 ■ char charAt(index) : 주어진 위치의 한 문자 리턴 ■ boolean endsWith(String suffix.. 2022. 9. 12.
자바 클래스와 객체 #6 내부 클래스 내부 클래스란 클래스 내부에 포함된 클래스를 의미합니다. 내부 클래스 특징 1. 내부 클래스는 외부 클래스의 변수나 메소드에 접근할 수 있습니다. 2. 내부 클래스를 사용하기 위해서는 반드시 객체를 생성해야 합니다. 3. 내부 클래스는 static 변수나 메소드를 가질 수 없습니다. 단, 상수는 가능합니다. 4. 내부 클래스는 외부에서 단독으로 접근 할 수 없습니다. 예제를 통해서 알아보도록 하겠습니다. InnerTest라는 클래스를 생성합니다. package com.bluedayj; public class InnerTest { public static void main(String[] args) { Outer outer = new Outer(); Outer.Inner inner = oute.. 2022. 9. 12.
자바 클래스와 객체 #5 static 프로그램에서 사용하는 메모리를 할당하는 방식이 두 가지가 있습니다. 동적 할당과 정적 할당인데 동적 할당은 프로그램이 실행 하는 중에 필요할 때 필요한 만큼 메모리를 할당하는 것이고, 정적 할당은 프로그램을 시작하기 전에 원하는 만큼 메모리를 할당받는 것입니다. 자바에서 객체를 생성할 때 즉, new를 사용하여 실행 시간에 메모리를 할당받는 것이 동적 할당에 해당되며 static 메소드나 static 변수가 정적 할당에 해당됩니다. ​ 예제를 통해서 한번 살펴보도록 하겠습니다. Static 이라는 클래스를 생성합니다. package com.bluedayj; public class Static { public String a = "일반 변수"; public static String b = "s.. 2022. 9. 12.
자바 클래스와 객체 #4 final 클래스의 구성요소가 더 이상 변경되지 않길 바랄 때 final을 사용합니다. 클래스에서 final을 사용하면 상속할 수 없고, 메소드에서 사용하면 오버라이딩할 수 없습니다. 클래스에서 사용 final로 선언된 클래스는 절대로 상속될 수 없습니다. 클래스 앞에 final를 붙여주면 됩니다. final class 클래스명{ } 두 개의 클래스를 만들어서 상속 여부를 확인해 보겠습니다. 먼저 FinalA라는 클래스를 만들고 소스 코드를 입력합니다. package com.bluedayj; public class FinalA { protected String name; protected int age; public FinalA(String name, int age) { this.name = name; .. 2022. 9. 11.
자바 클래스와 객체 #3 패키지 클래스를 통합 관리할 목적으로 패키지(package)를 사용합니다. 이전 포스팅 접근 제한자의 한 종류였던 package와 다른 개념입니다. 예를 들어 Controller만 모아서 관리하거나 Util만 모아서 관리하고자 할 때 패키지를 이용하시면 됩니다. 일종의 폴더(디렉토리)라고 생각하시면 됩니다. 패키지 만들기 소스의 처음에 package문을 사용하여 패키지를 선언합니다. 단, package의 선언은 반드시 소스의 가장 처음 부분이어야 합니다. package 패키지명; 이클립스로 클래스를 생성하실 때 상단에 Package부분에 사용하실 패키지명을 입력하시고 클래스명을 입력하시면 자동으로 패키지가 생성되고 그 패키지안에 클래스에 생성됩니다. 패키지 이용 패키지에 포함되어 있는 클래스를 사용하기 .. 2022. 9. 11.
자바 클래스와 객체 #2 클래스의 다양한 기능 지금부터는 클래스를 보다 효과적으로 사용하기 위한 클래스의 다양한 기능에 대해서 알아보도록 하겠습니다. 상속 노트북이라는 클래스가 필요하다고 가정하겠습니다. 노트북은 컴퓨터의 한 분류입니다. 노트북은 컴퓨터가 가진 특성외에 휴대성이라는 특성을 추가로 가지고 있습니다. 두 클래스 사이에 어떠한 포함 관계가 성립될 때 객체 지향의 상속 개념을 사용하면 클래스를 간단하게 만들 수 있습니다. ​ 컴퓨터라는 클래스를 예를 들어 컴퓨터 클래스를 상속하여 노트북이라는 클래스를 만들 수 있습니다. 컴퓨터의 여러 특성이 있겠지만 여기에서는 컴퓨터명, 제조사, CPU, 메모리, 저장장치 종류만 예로 들겠습니다. class Computer { private String name; private Stri.. 2022. 9. 11.
자바 클래스와 객체 #1 클래스와 객체, 객체지향 프로그래밍은 서로 떼어낼 수 없어서 클래스와 객체는 끊임없이 나옵니다. 객체 지향 언어 객체지향 프로그래밍을 설명하기 전에 절차 지향 프로그래밍을 알아야 합니다. 절차 지향 프로그래밍 절차 지향 프로그래밍(언어)는 아래와 같이 설명하고 있습니다. 참고하시길 바랍니다. https://terms.naver.com/entry.nhn?docId=833608&cid=42344&categoryId=42344 절차 지향 언어 컴퓨터에서 연산, 대입, 판단, 입출력, 실행 순서 등의 기본적인 처리를 쉽게 기술할 수 있고, 그런 실행 순서(절차)를 지정해서 프로그램을 작성하기 위한 프로그래밍 언어로 COBOL, FORTRAN, PL/Ⅰ terms.naver.com 쉽게 말해 자동차를 조립한다고 .. 2022. 9. 11.
자바 기본 입출력 자바에서 스크린과 키보드를 통합 입출력 방법인 표준 입출력을 제공합니다. 표준 입출력을 제공하는 클래스는 System으로 멤버 변수인 in, out, err 을 이용해서 표준 입력/출력/에러를 제공합니다. 자바의 기본 입력 int a = System.in.read(); //아스키 코드 값 1개 입력받기 String str = System.in.readLine(); //문자열 입력받기 자바의 기본 출력 System.out.print(출력); System.out.println(출력); System.out.printf("서식", 출력); 입·출력 예외 처리 자바에서 입·출력이 이루어지는 부분에서 예외 처리를 하도록 요구하고 있습니다. 자바 입·출력을 처리할 때 우선적으로 검토해야 하는 것이 예외 처리라는 것입.. 2022. 9. 9.
728x90
반응형