반응형

Programming 45

[Java9 프로그래밍] 12. 람다 표현식

함수형 인터페이스 Comparator 인터페이스 int compare(T first, T second); // T는 어떠한 타입이 와도 된다는 이야기. Runnable 인터페이스 void run(); // thread에서 많이 사용한다. 사용자 인터페이스 콜백 void handle(ActionEvent e); 함수형 인터페이스란? 추상 메소드 하나만 포함하는 인터페이스 Comparator 인터페이스 예제 Comparator 인터페이스를 구현한 클래스 class LengthComparator implements Comparator { public int compare(String first, String second) { return first.length() - second.length(); } } =>..

Programming/Java 2020.03.21

[Java9 프로그래밍] 11. 인터페이스

인터페이스 선언 서비스 공급자(서버)와 사용자(클라이언트) 간의 계약을 표현하는 메커니즘 인터페이스 구성 필드, member variable 인터페이스에서 정의된 모든 필드는 final static이 생략된 상수로 강주된다. 메소드 추상 메소드 : 반드시 구현 클래스에서 구현 필요 디폴트 메소드 : 구현클래스에서 구현 필요 없음(디폴트로 사용한다는 의미) 정적 메소드 : static 메소드, 객체 없이 바로 호출 가능 => 원래는 추상메소드만 가능했으나 java8에 와서는 디폴트 메소드와 정적 메소드가 추가되고 java9에 와서 private 메소드까지 추가 가능해짐. public interface shoppingService { // fields double TAX_RATE = 0.005; // abs..

Programming/Java 2020.03.21

[Java9 프로그래밍] 10. 상속

상속 - 클래스 확장 기존의 클래스들을 효율적으로 재사용하여 프로그래밍을 하는것이 중요하다. 여러 클래스들을 재사용하는 방안으로는 상속 결합 슈퍼클래스(상속을 주는 부모클래스)와 서브클래스(상속을 받는 자식클래스) Employee 클래스의 몇 가지 기능을 보유하면서 관리자가 어떻게 다른지 명시 extends를 통해 슈퍼클래스를 상속받는다. public class Manager extends Employee { 추가된 필드 추가된 메소드 또는 오버라이딩된 메소드 } => Employee 클래스에 있는 모든 필드와 메소드를 Manager 클래스에 가져온다. 서브 클래스 메소드 정의와 상속 Manager 클래스에 상여금 인스턴스 변수와 메소드 추가 public class Manager extends Emplo..

Programming/Java 2020.03.21

프로그래머스 레벨1 - 실패율

문제 설명 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변..

프로그래머스 레벨1 - 하샤드 수 with Python

문제 설명 양의 정수 x가 하샤드 수이려면 x의 자릿수의 합으로 x가 나누어져야 합니다. 예를 들어 18의 자릿수 합은 1+8=9이고, 18은 9로 나누어 떨어지므로 18은 하샤드 수입니다. 자연수 x를 입력받아 x가 하샤드 수인지 아닌지 검사하는 함수, solution을 완성해주세요. 제한 조건 x는 1 이상, 10000 이하인 정수입니다. 입출력 예 arr return 10 true 12 true 11 false 13 false 입출력 예 설명 입출력 예 #1 10의 모든 자릿수의 합은 1입니다. 10은 1로 나누어 떨어지므로 10은 하샤드 수입니다. 입출력 예 #2 12의 모든 자릿수의 합은 3입니다. 12는 3으로 나누어 떨어지므로 12는 하샤드 수입니다. 입출력 예 #3 11의 모든 자릿수의 합..

[Java9 프로그래밍] 09. 자바 객체지향 - more

Static 클래스에 선언된 메소드나 멤버변수는 반드시 객체화시켜야 사용 가능 메소드의 사용 조건 Calculator(클래스) calculator(객체) = new Calculator( 10, 50 ); (생성자) int result = calculator.f (50); => calculator 객체를 사용해서 Calculator 클래스 내부의 f 메소드를 호출. f(x) 메소드를 인스턴스화 시키지 않고 사용하고 싶다면, static을 사용 (객체 변수를 만들고싶지 않다면 = 인스턴스화 시키지 않고 싶다면) static method public class Calculator { public static int f (int x) { } } => 이렇게 되면 객체 만들지 않고 바로 클래스에 접근할 수 있다...

Programming/Java 2020.03.19

프로그래머스 레벨1 - 콜라츠 추측 with Python

콜라츠 추측 문제 설명 1937년 Collatz란 사람에 의해 제기된 이 추측은, 주어진 수가 1이 될때까지 다음 작업을 반복하면, 모든 수를 1로 만들 수 있다는 추측입니다. 작업은 다음과 같습니다. 1-1. 입력된 수가 짝수라면 2로 나눕니다. 1-2. 입력된 수가 홀수라면 3을 곱하고 1을 더합니다. 2. 결과로 나온 수에 같은 작업을 1이 될 때까지 반복합니다. 예를 들어, 입력된 수가 6이라면 6→3→10→5→16→8→4→2→1 이 되어 총 8번 만에 1이 됩니다. 위 작업을 몇 번이나 반복해야하는지 반환하는 함수, solution을 완성해 주세요. 단, 작업을 500번을 반복해도 1이 되지 않는다면 –1을 반환해 주세요. 제한 사항 입력된 수, num은 1 이상 8000000 미만인 정수입니다..

프로그래머스 레벨1 - 이상한 문자 만들기 with Python

이상한 문자 만들기 문제 설명 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요. 제한 사항 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다. 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다. 입출력 예 s return try hello world TrY HeLlO WoRlD 입출력 예 설명 try hello world는 세 단어 try, hello, world로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 ..

[Java9 프로그래밍] 08. 객체지향 모델링

객체지향이란? 데이터 타입을 별도로 만들어 데이터를 처리한다. 객체(Object)로 프로그램을 작성 전체 어플리케이션을 객체로 분리하여 보델링 ex) 학생 관리타입을 만들고자 한다. 학생의 학번, 이름, 주소, 현재 학년 등에 대한 정보를 가지고 있는게 ‘학생’이다. 학생에 대한 이러한 정보를 하나의 타입에 넣어서 캡슐화시켜서 만든것이 타입, 객체다. 홍길동이라는 학생은 이름이 홍길동, 나이가 20, 성별 남자, 주소는 서울이다. 이 네가지 정보를 가지고 있는 것이 홍길동이라는 객체다. 이 학생 개개인의 객체를 만들기 위해서는 이름, 나이, 성별, 주소 데이터를 가지고 있어야 함. 모든 객체들이 똑같은 타입, 똑같은 구조로 만들어지는 것을 지원하는게 “클래스”이다. 자바는 클래스와 객체 모두를 사용한다...

Programming/Java 2020.03.13

[Java9 프로그래밍] 07. 함수(메소드)

함수와 메소드 Java에서 함수와 메소드는 동일하게 사용 메소드가 좀더 기술적으로 맞는 용어 클래스 내부에 있는 함수를 특별히 메소드라고 함 (자바는 모든 것이 클래스로 구성) main 메소드가 길어지면 클래스로 분리 또는 여러 함수로 분리 가능 메소드 구조 반환값의 타입 (없으면 void) 메소드 이름 파라미터 타입과 이름 메소드 구현부 - 구현할 내용 작성 반환할 결과가 있으면 return public class 클래스 { 접근제한자 반환타입 메소드명 (파라미터타입 파라미터명, ,,,) { …수식… return 반환변수 혹은 값 혹은 수식 } } => 접근제한자 : 메소드는 클래스 내부에서 정의가 되는데, 메소드가 모든 사람이 사용할 수 있는지, 특별한 사람만 사용할 수 있는지 메소드 사용 권한과 관..

Programming/Java 2020.03.13
반응형