목록프로그래밍 (4)
가자미의 개발이야기
1. 날짜 시각 관련 클래스 -시각을 표현하는 Instant, 시간을 표현하는 Duration(시간의 차이) import java.time.Duration; import java.time.Instant; public class StreamPtc { public static void main(String[] args) { Instant start = Instant.now();//현재 시각 정보를 담음 System.out.println("시작 : "+ start.getEpochSecond()); Instant end = Instant.now(); System.out.println(" 끝 : "+end.getEpochSecond()); Duration between = Duration.between(start..
-함수형 인터페이스?(Functional Interface?) --추상메소드가 하나 있는 인터페이스 --람다식을 위한 전제 -매개변수가 있고 반환하지 않는 람다식 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 interface Printable{ void print(String s); } public class Ramda { public static void main(String[] args) { Printable p; //줄임없는 표현 p=(String s)->{System.out.println(s);}; //메소드 코드가 한줄 일때만 중괄호 생략 p=(String s)->System.out.println(s); //매개변수 형 생략 p=(s)->Sys..
a. 정보 은닉 자바의 정보은닉은 외부에서 클래스에 있는 데이터를 다루려 할 때, 데이터 자체에 접근하지 말고, 기능으로 데이터를 활용할 수 있도록, 즉 간접적으로 영향을 미치도록 하는 기능이다. 정보 은닉을 위해서는 인스턴스 변수 앞에 private라는 접근 수준 지시자를 붙여주면 된다. private를 붙인 변수는 외부에서 직접 접근이 불가능해진다. 다만 메소드의 매개변수를 통한 접근은 가능해진다. 예를 들어 인스턴스명.변수=~~;로 변경은 불가능하지만 class메소드(~~)로는 변경 가능하다. b. 접근지시자 접근 자유도 순으로 public / protected / default(지시자를 선언하지 않은 경우 포함) / private 이 네가지 지시자를 쉽게 분류할 수 있는 방법은 private 기준..
이름이 같은 클래스를 사용해야 하는 상황이 발생한다고 상상해보자. 이름이 같은 클래스가 디렉토리에 존재할 수 없으니, 서로 이름이 다르게 하거나, 서로 위치를 달리해야 할 것이다. 이를 위해 사용되는게 자바의 패키지 개념이다. 패키지의 이름이 중복되지 않도록 하는 몇가지 규칙이 있다. 먼저 패키지 이름은 모두 소문자로 작성해야 한다. 인터넷 도메인 이름의 역순으로 이름을 구성해야 한다.(예를 들어 naver에서 가져온 클래스일 경우 com.naver;이런 식) 이름 끝에 클래스를 정의한 주체 또는 팀의 이름을 추가해야 한다.(예를 들면 철수가 정의한 패키지는 com.naver.chulsoo;)로 정의할 수 있다. 이렇게 생성된 패키지는 클래스패스-com디렉토리-naver디렉토리-chulsoo디렉토리-클래..