반응형 개발/Java38 Java enum (열거형) 백기선님이 과거에 진행했던 Java 스터디 11주차 스터디 입니다. enum 정의하는 방법 enum(열거형)은 서로 관련된 상수를 편리하게 선언하기 위한 것으로 여러 상수를 정의할 때 사용하면 유용하다. 열거형을 정의하는 방법은 아래와 같다. enum 열거형이름 { 상수명1, 상수명2, ... } 열거형에 정의된 상수를 사용하는 방법은 '열거형이름.상수명'이다. 클래스의 static 변수를 참조하는 것과 동일하다. enum Direction{ EAST, SOUTH, WEST, NORTH } class Unit{ int x, y; Direction dir; void init(){ this.dir = Direction.WEST; //유닛의 방향을 WEST로 초기화한다. } } 열겨형 상수간의 비교에는 ==을.. 개발/Java 2022. 5. 26. Java Thread 백기선님이 과거에 진행했던 Java 스터디 10주차 스터디 입니다. Thread 클래스와 Runnable 인터페이스 자바에서 쓰레드를 구현하는 방법은 2가지가 있다. Thread클래스를 상속받는 방법과 Runnable 인터페이스를 구현하는 방법이다. 일반적으로 Runnalbe 인터페이스를 구현해 쓰레드를 구현한다. class MyThread extends Thread{ public void run(){ //Thread클래스의 run메서드를 오버라이딩해 코드를 작성 } } class MyThread implements Runnable{ public void run(){ //Runnable인터페이스의 run메서드를 오버라이딩해 코드를 작성 } } 쓰레드를 구현한다는 것은, 위의 두 방법 중 어떤 것을 선택하.. 개발/Java 2022. 5. 25. Java Exception 백기선님이 과거에 진행했던 Java 스터디 9주차 스터디 입니다. 자바에서 예외 처리 방법 (try, catch, throw, throws, finally) 예외처리란, 프로그램 실행 시 발생할 수 있는 예기치 못한 예외의 발생에 대비한 코드를 작성하는 것이다. 예외처리의 목적은 예외의 발생으로 인한 실행 중인 프로그램의 갑작스런 비정상 종료를 막고, 정상적인 실행상태를 유지할 수 있도록 하는 것이다. 발생한 예외를 처리하지 못하면, 프로그램은 비정상적으로 종료되며, 처리되지 못한 예외는 JVM 예외처리기가 받아서 예외의 원인을 화면에 출력한다. try-catch문 하나의 try 블럭 다음에는 하나 이상의 catch 블럭이 온다. 발생한 예외의 종류와 일치하는 catch 블럭이 없으면 예외는 처리되지 않.. 개발/Java 2022. 5. 24. Java interface 백기선님이 과거에 진행했던 Java 스터디 8주차 스터디 입니다. 인터페이스 정의하는 방법 인터페이스는 일종의 추상클래스다. 인터페이스는 추상 클래스처럼 추상 메서드를 가진다. 그러나 추상 클래스처럼 일반 메서드를 가질 수 없다. 또한 인터페이스는 멤버변수를 구성원으로 가질 수 없다. 오직 추상메서드와 상수만을 멤버로 가질 수 있다. 그외의 다른 어떠한 요소도 허용하지 않는다. 모든 메서드는 public이다. 인터페이스는 기본 설계도라 할 수 있다. 객체지향의 핵심인 다형성을 적극적으로 활용할 수 있게 해주는 요소다. 정의하는 방법은 아래와 같다. interface 인터페이스이름{ public static final 타입 상수이름 = 값; public abstract 메서드이름(매개변수목록); } 인터페.. 개발/Java 2022. 5. 22. 자바 패키지 (Java Package) 백기선님이 과거에 진행했던 Java 스터디 7주차 스터디 입니다. Package 키워드 이전에 패키지에 관한 내용을 적은 포스팅이 있다. 아래 링크에서 확인할 수 있다. https://devdebin.tistory.com/101?category=1004578 package(패키지) package, 즉 패키지란 클래스의 묶음이다. 패키지에는 클래스 또는 인터페이스를 포함시킬 수 있다. 또한 서로 관련된 클래스를 그룹 단위로 묶어 놓음으로써 클래스를 효율적으로 관리할 수 있다 devdebin.tistory.com Package, 패키지를 정리하자면 패키지란, 클래스의 묶음이다. 사실 클래스의 실제 이름은 패키지명을 포함한다. java.lang.String이 String 클래스의 원래 이름이다. 하나의 소스파.. 개발/Java 2022. 5. 20. Java 상속 (extends) 백기선님이 과거에 진행했던 Java 스터디 6주차 스터디 입니다. 자바 상속의 특징 상속이란 무엇인가? 상속이란, 기존의 클래스를 재사용하여 새로운 클래스를 작성하는 것이다. 기존 클래스를 상속 받아 새로운 클래스를 만들면, 코드를 공통적으로 관리하므로 코드의 추가 및 변경이 매우 용이하다. 결국 코드의 재사용성을 높이고 코드의 중복을 제거해 프로그램의 생산성과 유지보수에 크게 기여한다. 자바 상속은 extends 키워드를 사용해 상속을 진행한다. 상속해주는 클래스를 흔히 '조상 클래스' 상속 받는 클래스를 '자손 클래스'라고 칭한다. class Child extends Parent { } 이제 자바 상속의 특징에 대해 간단히 정리해보자. 생성자와 초기화 블럭은 상속되지 않는다. 멤버만 상속된다. 자손 .. 개발/Java 2022. 5. 20. Java Class 백기선님이 과거에 진행했던 Java 스터디 5주차 스터디 입니다. 클래스 정의하는 방법 클래스를 정의하는 방법을 알기 위해서는 클래스에 대해 알아야한다. 아래는 클래스, 객체, 인스턴스에 대한 내용을 정리한 포스팅이다. https://devdebin.tistory.com/93?category=1004578 클래스, 객체 , 인스턴스 클래스란? 객체를 정의해 놓은 것. 객체의 설계도 또는 틀이다. 객체를 생성하는 데 사용하지만, 객체 그 자체는 아니다. 기능(메서드)과 속성(필드)을 가진다. 객체란? 우리가 주변에서 볼 수 있 devdebin.tistory.com 필자가 정리한 클래스의 의미는 '객체(인스턴스)를 생성하기 위한 설계도'이다. 클래스를 정의하기 위해서는 다양한 고려 사항이 있다. 클래스명 멤.. 개발/Java 2022. 5. 20. JUnit 5 기초 학습과 Stack, 큐 구현 및 테스트 백기선님이 과거에 진행했던 Java 스터디 4주차 스터디 입니다. JUnit5이란 자바 개발자가 가장 많이 사용하는 테스팅 프레임워크가 JUnit이다. 단위 테스트를 작성하는 자바 개발자 93% JUnit을 사용한다. JUnit5의 구조는 아래와 같다. Platform: 테스트를 실행해주는 런처(ide가 JUnit Platform을 지원한다) 제공. TestEngine API 제공. Jupiter: TestEngine API 구현체로 JUnit 5를 제공. 우리는 Jupiter을 사용해 테스트를 진행한다. Vintage: JUnit 4와 3을 지원하는 TestEngine 구현체. JUnit5 시작 본인은 gradle 프로젝트에서 진행했으므로 build.gradle 파일에 아래와 같은 의존성을 추가한다. .. 개발/Java 2022. 5. 18. 제어문(조건문과 반복문) 백기선님이 과거에 진행했던 Java 스터디 4주차 스터디 입니다. 조건문 If if문은 가장 기본적인 조건문이다. 크게 조건식과 괄호로 이루어진다. 만일(if) 조건식이 참(true)이면 괄호{ } 안의 문장들을 수행한다. if (조건식) { //조건식이 true일 때 수행될 코드를 작성한다. } If - else if문에 else블럭이 추가된 것이 if-else문이다. else의 뜻이 '그 밖의 다른'이므로 조건식의 결과가 참이 아닐 때, 즉 거짓일 때 else블럭의 문장을 수행하라는 뜻이다. if (조건식) { //조건식이 true일 때 수행될 코드를 작성한다. } else { //조건식이 false일 때 수행될 코드를 작성한다. } if - else if 첫 번째 조건식부터 순서대로 평가해서 결과가.. 개발/Java 2022. 5. 17. 자바 연산자 (Operator) 백기선님이 과거에 진행했던 Java 스터디 3주차 스터디 입니다. 산술 연산자 산술 연산자에는 사칙 연산자(+ ,- ,* ,/ )와 나머지 연산자(%)가 있다. 곱셈, 나눗셈, 나머지 연산자가 덧셈, 뺄셈 연산자보다 우선 순위가 높으므로 먼저 처리된다. 피연산자(연산자가 아닌 것, ex 1, 10)가 정수형인 경우, 나누는 수로 0을 사용할 수 없다. boolean 타입을 제외한 모든 기본형 타입에서 사용이 가능하다. 계산하는 값의 결과가 변수의 타입의 범위를 넘어서면 오버 플로우가 발생할 수 있다. 코드 예제 byte a = 10; byte b = 10; byte c = (byte) a + b; //JVM은 기본적으로 32바이트로 계산하므로 a와 b 두 개의 피연산자들을 int형으로 바꾸어 계산한다. .. 개발/Java 2022. 5. 13. 자바 데이터 타입, 변수 그리고 배열 백기선님이 과거에 진행했던 Java 스터디 2주차 스터디 입니다. 프리미티브 타입 종류와 값의 범위 그리고 기본 값 프리미티브 타입을 기본형이라고 부르겠다. 자바에는 총 8가지의 기본형이 있다. 우선 기본형은 NULL을 가질 수 없다. 만약 NULL을 쓴다면 Wrapper 클래스를 사용해야 한다. 기본형 변수는 메모리에서 스택 영역에 저장된다. 기본형 분류, 타입 메모리 크기, 기본 값, 범위에 대해 아래와 같이 정리했다. 분류 타입 메모리 크기 기본 값 범위 논리형 boolean 1 byte false false, true 문지형 char 2 byte '\u000' '\u0000' ~ '\uffff' 정수형 byte 1byte 0 -128 ~ 127 short 2byte 0 -32,768 ~ 32,76.. 개발/Java 2022. 5. 12. Java JVM, ByteCode 백기선님이 과거에 진행했던 Java 스터디 1주차 스터디 입니다. 늦었지만 저는 이제 시작해보겠습니다. 1. JVM이란 무엇인가? JVM이란 'Java Virtual Machine'의 약어다. 자바를 실행하기 위한 가상 머신(컴퓨터)이라고 이해할 수 있다. 자바로 작성된 모든 프로그램은 JVM 위에서만 실행된다. 따라서 자바 프로그램을 작동시키기 위해서 JVM은 필수적이다. 일반 애플리케이션의 코드는 OS만 거치고 하드웨어로 전달된다. 그러나 Java 애플리케이션은 JVM을 한 번 더 거치기 때문에, 그리고 하드웨어에 맞게 완전히 컴파일된 상태가 아니고 실행시에 해석(Interpret)되기 때문에 속도가 느리다는 단점을 가진다. 그러나 요즘엔 바이트코드(컴파일된 자바 코드)를 하드웨어의 기계어로 바로 변.. 개발/Java 2022. 5. 12. 이전 1 2 3 4 다음 반응형