본문 바로가기

Java/Java 문법 연습11

람다식과 스트림 연습 람다식 public class Lambda { public static void main(String[] args) { Caluculate add = (a,b) -> a + b; } } interface Caluculate { int calculate(int a, int b); } 위 람다식을 람다식 없이 풀어쓰게 되면 다음과 같다. Caluculate add= new Caluculate() { @Override public int calculate(int a, int b) { return a + b; } }; 즉 자바에서 람다식은 (매개변수 목록) -> { 람다식 바디 } 와 같은 형태로 작성할 수 있다. 스트림 File[] fileArr = { new File("Ex1.java"), new File(.. 2023. 6. 15.
쓰레드 연습 본인은 온라인 게임에 대해 그다지 큰 흥미를 느끼지 않는다. 그나마 축구를 좋아해서 피파 온라인을 몇 번 플레이 하긴 했다. 과거부터 현재까지 내가 가장 인상깊게 본 온라인 게임들을 고르자면 아무래도 스타크래프, 피파, 롤이라고 할 수 있겠다. new Thread(new User(computer, "Starcraft"), "User1").start(); new Thread(new User(computer, "FIFA"), "User2").start(); new Thread(new User(computer, "LOL"), "User3").start(); 오늘은 이 게임들을 플레이하는 가상의 User 들을 사용해 쓰레드의 개념을 연습해보자. 필요한 클래스는 세 개다. 유저, 기업(게임을 제공하는), 그리고 .. 2023. 6. 6.
열거형 연습 enum Name {Ramsdale, Saliba, Xhaka, Saka} enum Position {Goalkeeper, Defender, Midfielder, Foward} 오늘 특별히 사용될 아스날 선수들 상수로 사용될 예정이라 enum을 사용했다. public class Enum { public static void main(String[] args) { Position[] pArr = Position.values(); for(Position p : pArr) System.out.printf("%s=%d%n",p.name(),p.ordinal()); } } 열거형 상수들에게 할당된 순서를 열거형 상수들의 이름과 함께 프린트를 시도. 참고로 values( )는 컴파일러가 모든 열거형에 자동적으로 추.. 2023. 5. 30.
제네릭스 연습 2 타입 매개 변수 T 의 종류를 제한하여 각 타입에 맞게 여러 개의 지네릭 클래스를 생성할 수 있는데, 하나의 타입 매개 변수 T로 다른 지네릭 타입이 지정된 객체를 다룰 수는 없을까? 와일드 카드는 이를 가능하게 만들어준다, 다형성이 적용된 방법. - T와 그 자식 클래스들만 가능 - T와 그 부모 클래스들만 가능 - 모든 타입이 가능 import java.util.*; class Generics2 { public static void main(String[] args) { playerList 2023. 5. 30.
제네릭스 연습 1 import java.util.*; public class Generics { public static void main(String[] args) { ArrayList list = new ArrayList(); list.add("String") // 에러! } } ArrayList 지네릭 클래스가 Integer로 타입이 설정되어 있으므로 다른 타입이 들어올 수 없다 import java.util.*; public class Generics { public static void main(String[] args) { ArrayList list = new ArrayList(); // 에러! } } class Product{} class Tv extends Product{} class Audio extend.. 2023. 5. 29.
컬렉션 프레임워크 연습 import java.util.*; public class CF1 { public static void main(String[] args) { Stack st = new Stack(); Queue q = new LinkedList(); st.push(0); st.push(1); st.push(2); q.offer(0); q.offer(1); q.offer(2); while (!st.empty()) { System.out.println(st.pop()); } while (!q.isEmpty()) { System.out.println(q.poll()); } } } import java.util.LinkedList; import java.util.ListIterator; import java.util.Queu.. 2023. 5. 26.
객체지향 연습 import java.util.Enumeration; import java.util.Scanner; interface Interactable{ void sayhi(String text); void move(int x); } interface Repairable { void repair(int x); } class Human { int mineral; String color; String language; void click () { System.out.println("선택되었습니다"); } Human (int mineral, String color, String language) { this.mineral = mineral; this.color = color; this.language = language.. 2023. 5. 21.
배열 연습 import java.lang.reflect.Array; import java.util.Arrays; public class 배열_01 { public static void main(String[] args) { // int[] age = new int[]; // 배열의 선언과 생성 int[] age = new int[5]; age [3] = 15; System.out.println(age [3]); // age [1] = 5; // int tmp = 0; // tmp = age [3]; // age [3] = age [1]; // age [1] = tmp; // // System.out.println(age[3]); // System.out.println(age[1]); // 한 번 해본 배열 내 위치.. 2023. 5. 12.
조건문과 반복문 연습 public class 조건문과반복문_01 { public static void main(String[] args) { char ch = 'f'; if('a' 90) { if (score > 95) { System.out.println("A+입니다"); } else { System.out.println("A입니다"); } }else if (score > 80) { if (score > 85) { System.out.println("B+입니다"); } else { System.out.println("B입니다"); } }else { System.out.println("낙제입니다"); } // if 문은 {}를 잘 열고 닫았는지 확인하자 System.out.println(); int month = 5; Str.. 2023. 5. 12.
연산자 연습 public class 연산자_01 { public static void main(String[] args) { int x = 10; int y = 5; System.out.println(x + y); System.out.println(-x + 3); System.out.println(-x * y); System.out.println(x > y); System.out.println("-x + 3 =" + (-x + 3)); System.out.println("-x + 3 =" + (-x) + 3); System.out.print("-x + 3 ="); System.out.println(-x + 3); System.out.println(-x + 3); // ? 왜 두 개 값이 다른지 이해 완료 // Sys.. 2023. 5. 12.