람다식자바 8 이후 생긴 문법리액트, 자바스크립트에서 사용익명객체를 만드는 문법함수적 인터페이스의 구현 객체를 생성하는 간소화 문법함수적 인터페이스의 추상메소드를 클래스 없이 구현하는 방법() : 선언부. 변수 들어감함수적 인터페이스 : 구현해야 하는 추상메소드가 단 하나만 존재하는 인터페이스를 의미만약 함수적 인터페이스로 선언한 후 이미 람다식을 이용하여 구현 객체를 사용하고 있는 경우 추후 추상메소드 추가시 문법 오류가 발생할 수 있다. 이를 방지하기 위하여 어노테이션 @FunctionalInterface 을 사용하면 강력한 컴파일을 통하여 반드시 하나의 추상메도스만 갖는 함수적 인터페이스를 구현할 수 있다인터페이스의 익명 구현 클래스 영역에서 생성자를 제외하고 클래스 구성요소들 구현 가능단, 추상..
문제1) "홍길동","이길동","박길동","김길동" ,"홍길동" 데이터를 Set 인터페이스를 사용하여 저장후 원소 갯수를 출력하세요.Set set1 = new HashSet(); set1.add("홍길동"); set1.add("이길동"); set1.add("박길동"); set1.add("김길동"); set1.add("홍길동"); System.out.println("1번 set1의 원소 갯수:"+set1.size());1번 set1의 원소 갯수:4 문제2) 정수 타입 Set을 선언 후 29, 33, 22, 33, 46, 52, 67, 78, 46 을 대입한 후 추가된 원소의 갯수와 홀수 원소의 합을 출력하세요.Set set2 = new HashSet(); set2.add(29); set2.add(33); ..
제네릭 타입타입파라미터는 원하는 만큼 안에서 ,(콤마) 구분자로 여러개 선언할 수 있다제네릭타입 객체 생성시 타입 파라미터 갯수만큼 타입을 넘겨 생성해야 한다 1) public class D { public K field01; public V field02; public static void main(String[] args) { D d = new D(); d.field01 = "100"; //d 변수의 객체 생성시 첫번째 타입(String) field01 타입을 결정짓기 때문 d.field02 = 100; //d 변수의 객체 생성시 두번째 타입(Integer) field02 타입을 결정짓기 때문 D dd = new D(); dd.field01 = 100; dd.field02 = ..
제네릭 클래스 선언시에는 결정하지 못한 필드 또는 매개변수 또는 메소드의 리턴타입을 객체가 생성시에 결정짓도록 하는 방법타입변수는 래퍼클래스 사용제네릭 클래스 사용시 생성 객체를 담는 변수에도 반드시 기호를 사용하여 타입의 데이터타입을 결정해줘야 한다생략시 Object 타입으로 받는다원리 : 타입파라미터라고 하는 외부에서 타입을 전달받을 수 있는 타입변수 사용하여 객체 생성시 타입변수로 타입을 전달받아 객체 내부의 데이터타입을 결정짓는다다이아몬드 문법 : 제네릭을 사용한 객체 생성시 왼쪽의 클래스 변수의 타입을 보고 오른쪽 타입을 예측할 수 있다면 타입값을 생략하는 문법을 의미(자바 8버전 이상부터 사용할 수 있다)제네릭 타입을 갖는 부모 클래스를 상속받는 경우 자식쪽에서 부모의 타입을 결정할 수 ..
Date 클래스현재 날짜 객체를 생성할 때 사용날짜 객체를 원하는 문자열 포맷으로 만들때만 주로 사용날짜 정보를 각각 추출하는 것은 불가능하다import java.util.Date; 필요 SimpleDateFormat 클래스 Date 객체를 원하는 날짜 포맷으로 만들어줌import java.text.SimpleDateFormat; 필요 import java.text.SimpleDateFormat;import java.util.Date;public class Main04 { public static void main(String[] args) { Date today = new Date(); System.out.println(today); //국제표준시간으로 출력됨 ..
생성된 객체의 주소값을 문자열화하여 반환(클래스명@16진수해시코드)주로 엔티티 클래스에서 생성된 객체의 필드 정보를 문자열로 반환하는 역할로 재정의하여 사용클래스 변수를 콘솔에 그대로 출력하면 toString()의 문자열 결과가 출력된다재정의하려는 클래스에서 마우스 우클릭 -> source -> generate toString으로 재정의한 메소드 생성가능선언부 public String toString() {} 1) toString() 재정의하고 출력 a. toString() 과 클래스 변수를 콘솔에 그대로 출력한 값은 같다 public class A { public String field01 = "A의 필드1"; public String field02 = "A의 필드2"; public String fie..
인터페이스두 컴포넌트 간의 중간 통신망개발 코드(Main)와 객체가 서로 통신하는 접점*개발자가 기능을 정의하고 있는 곳이 개발코드 입장이다협업을 할때 인터페이스를 활용하여 메소드 정형화인터페이스는 어떤 구현객체가 대입되어 있느냐에 따라 같은 추상메소드 호출이지만 결과가 달라지는 다형성을 구현하게된다인터페이스 타입 변수에는 인터페이스의 구현 클래스로 생성된 구현 객체만 대입 가능상속에서도 부모에 모든 자식 타입이 대입되는 원리를 사용하여 다형성을 구현할 수 있으나, 잘 사용되어 지지는 않는다.개발소스와 객체간의 결합을 끊어 중간 매개체 역할을 하여 정형화 되어 있는 메소드를 제공함으로써 개발소스에서는 호출해야하는 메소드만 알고 있다면 대입된 객체가 누구냐에 따라 실행 결과가 다양해 질수 있는 기능을 의미..
1.문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 2.풀이import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); for(int i = 1; i 3.메모printf를 사용하여 출력했다. https://www.acmicpc.net/problem/11022
1.문제두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 2.풀이import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int T = sc.nextInt(); int[] list = new int[T]; for(int i = 0; i 3.메모 https://www.acmicpc.net/problem/11021
1.문제본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다.C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다.Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만 하면 된다.Pyt..