본문 바로가기
728x90

java16

[Java] Chapter04: 끝말잇기 게임 (Word Chain) n명이 참가하는 끝말잇기 게임을 만들어보자. 처음 단어는 '라면'으로 지정되어 있고, 원하는 참가 인원수를 정해 이름을 입력할 수 있다. 규칙을 추가하여, 시간을 재서 10초가 지나면 단어를 맞게 입력해도 패배처리되도록 만들도록 하자. 1. 입력한 참가인원(Player) 수만큼의 value를 받을 수 있는 배열이 있어야 한다. 1-1. Player 클래스를 만들고, 그 클래스를 활용해서 참가인원수(number)만큼의 개수의 Player 객체 배열을 만든다. 2. 기본적인 게임 규칙을 적용시켜야한다. 먼저 말이 이어지도록 입력되는 단어(new word)의 첫 글자와 전에 입력된 단어(last word)의 마지막 글자가 같은지를 확인해야 한다. 2-1. string의 첫글자와 마지막글자를 가져오는 방법은 s.. 2023. 4. 10.
[Java] final()과 public static final final은 말 그대로 마지막이라는 의미를 담고 있다. final() 메소드를 선언하는 것은 오버라이딩을 할 수 없는 메소드임을 선언하는 것과 같다. 즉 상속받을 수 없는 메소드가 된다. final은 필드에 선언되면 변경할 수 없는 상수가 된다. 만약 a를 final int a = 3; 이라고 선언하면, a값은 이제 변하지 않는 상수가 되는 것이다. 그래서 이를 잘 활용하면 public static final로 선언을 하면 프로그램 전체에서 사용할 수 있는 상수가 된다. public static final double PI = 3.14; 이렇게 선언되면 이제 PI는 프로그램내에서 어디서든 사용이 가능하고(클래스이름.PI로 사용하면 된다), 항상 3.14가 된다. 2023. 4. 9.
[Java] 접근제한자와 public static void 뜻 접근제한자란, 변수 및 객체(class, interface) 앞에 선언함으로써 외부 코드에서 접근 범위를 통제한다. 쉽게 말하면, 객체에 다른 객체가 접근하는 것을 허용할지 말지 지정해 준다. 종류 기능 public 패키지 상관 없이 모든 외부 코드에서 접근 가능 private 외부에서 클래스 변수에 직접 접근할 수 없고, 클래스의 메소드를 통해서만 접근이 가능, 상속받은 클래스에서도 접근이 불가능 protected 동일한 패키지의 클래스들과 상속받은 클래스에서만 접근이 가능 default 동일한 패키지 내의 클래스들만 접근 가능, 키워드는 생략 가능 public static void (String[] args) { ... 접근제한자가 들어가는 자리이다. 클래스는 public 클래스와 default 클래.. 2023. 4. 6.
[Linux] 우분투에 자바 설치하기 1. 저장소 업데이트하기 새로운 프로그램을 깔기 전에 $sudo apt update && apt upgrade 로 항상 저장소를 업데이트 및 업그레이드를 하는 습관을 들이자. 2. 자바 Open JDK 17버전 설치하기 $sudo apt –y install openjdk-17-jdk 로 자바 Open JDK 17 버전을 설치를 한다. 설치가 끝나면, 설치가 제대로 되었는지 확인을 해보자. $java –version 은 자바 가상머신 설치 버전을 확인할 수 있고, $javac –version 은 자바 컴파일러 설치 버전을 확인할 수 있다. 그럼 자바가 어디에 설치된 것일까? 자바 실행파일이 설치된 위치를 찾기 위해 $which java 를 쳐보면 /usr/bin/java 라는 경로가 나온다. 하지만 이 경.. 2023. 3. 30.
[Java] 동기 처리(Synchronization) / 비동기 처리(Asynchronization) 동기화(Synchronization) : SW쪽에서는 프로그램이 순서대로 차례차례 실행되는 것 동기화를 사용하면 작업들이 서로의 상태에 영향을 주지 않고 순서대로 실행될 수 있다. 이를 통해 여러 스레드가 동시에 접근하는 것을 방지하고, 데이터의 일관성을 유지할 수 있다. 동기화는 작업의 완료를 기다리는 동안 다른 작업을 중단시키거나 대기시키는 경우가 많다. 비동기화(Asynchronization) : SW쪽에서는 각각의 프로그램이 순서에 상관없이 실행되는 것 비동기화를 사용하면 작업들이 독립적으로 실행되며, 한 작업의 완료 여부를 기다리지 않고 다음 작업을 실행할 수 있다. 이를 통해 작업들의 병렬 처리와 동시성을 높일 수 있다. 비동기화는 작업의 완료 여부를 확인하기 위해 콜백(Callback)이나 .. 2023. 3. 22.
[Java] Generic 기법 Generic은 모든 종류의 타입을 다룰 수 있도록 클래스나 메소드를 제네릭 타입 매개변수를 이용하여 선언하는 기법이다. 쉽게 말하면, 제네릭은 데이터 타입을 변수처럼 선언하는 것이다. 제네릭을 사용함으로서 얻는 장점은 아래와 같다. 1. 타입 안정성(Type Safety): 제네릭을 사용하면 컴파일러가 코드에서 발생할 수 있는 타입 관련 오류를 미리 검출할 수 있다. 2. 코드 재사용성: 동일한 기능을 가진 클래스나 메서드를 여러 데이터 타입에 대해 다시 작성하지 않고 재사용할 수 있다. 3. 설계의 일반화: 제네릭을 사용하면 특정 타입에 의존하지 않는 일반적인 디자인을 할 수 있다. 4. 성능 개선: 제네릭을 사용하면 컴파일 시간에 타입 변환 코드가 생성되므로 실행 시간에 불필요한 타입 검사나 형 변.. 2023. 3. 22.
[Java] Optional 객체 : ifPresent(), isPresent(), orElse(), map() Optional 객체는 Wrapper 객체의 한 종류이다. (Generic type) 역할 및 목적: 매번 null 처리를 해주기 귀찮고 까먹으니까 자바 8 버전부터 null 처리 전용 객체인 Optional 객체가 생겼다. Optional에 객체를 넣어서 null값 발생을 대비할 수 있게 되었다. null : 들어와야 할 데이터가 안들어오면 자바가 자동으로 만들어서 변수나 객체 등에 넣어주는 "일종의" 데이터 타입. 실행 시 null이 들어올 경우, 대부분의 메소드에서 NullPointException 런타임 에러가 발생되면서 프로그램 작동이 중단된다. String s = str == null?"null이 발생":str; 삼항연산자 사용해서 null 처리를 해주기도 하고 if(str == null) s.. 2023. 3. 22.
[Java] 불변 객체와 Wrapper Class Java에는 불변(immutable) 객체가 있다. 불변 객체는 한 번 생성되면 내부 상태가 변경되지 않는다. 대표적으로는 String이 있는데, 문자열을 수정하면 새로운 String 객체가 생성되지 이전 문자열이 변경되지 않는다. 그 외에도 Wrapper 클래스, java.time 패키지의 LocalDate, LocalDateTime 등과 java.math 패키지에서 BigInteger과 BigDecimal도 불변 객체이다. Wrapper Class는 자바 데이터타입의 역할을 하는 클래스이다. int, short, long, float, double 등의 데이터 타입이 Integer, Short, Long, Float, Double, Arrays 등 클래스로 이루어져 있다. int a와 Integer .. 2023. 3. 22.
728x90

"); wcs_do();