본문 바로가기
728x90
반응형

java271

[Java] 28. Lambda1 (람다의 정의) package chap10; /* * 람다 예제 : jdk8 이후부터 사용 * 람다에서 사용되는 인터페이스는 FunctionalInterface 여야함 * FunctionalInterface : 추상메서드가 한개만 존재하는 경우 * * 매개변수, 리턴타입이 없는 경우 * () -> { ..... } * * 람다식 내부에 구현된 문장이 한개인 경우 {} 생략 가능 */ @FunctionalInterface //@FunctionalInterface 여부 검증 어노테이션 interface LambdaInterface1 { void method(); //void method2(); } public class LambdaEx1 { //static int num = 100; public static void mai.. 2022. 3. 23.
[Java] 27. 내부클래스3 (내부 클래스 객체에서 사용되는 this) package chap10; //내부 클래스 객체에서 사용되는 this class Outer3 { int iv = 10; int iv2 = 20;; class InstanceInner { int iv = 100; void method1() { int iv = 300; System.out.println("iv=" + iv); //300 : iv 중 가장 가까운 것을 찾아감. System.out.println("iv2=" + iv2); //20 : iv2를 찾아감 System.out.println("this.iv=" + this.iv); //100 : 현재 객체의 값 System.out.println("Outer3.this.iv=" + Outer3.this.iv); //10 : //외부클래스의 iv 멤버 출.. 2022. 3. 23.
[Java] 27. 내부클래스2 (지역내부클래스에 사용되는 메서드에서 메서드의 지역 변수 접근시 접근되는 지역 변수는 상수화 되어야 함) package chap10; class Outer2 { private int outeriv = 10; private static int outercv = 20; class IntanceInner { //내부클래스에서 외부클래스의 private 멤버 접근가능 int iiv = outeriv; int iiv2 = outercv; } static class StaticInner { //내부클래스에서 외부클래스의 private 멤버 접근가능 //int siv = outeriv; //클래스멤버에서 인스턴스멤버에 직접 접근 오류 int siv = new Outer2().outeriv; static int scv = outercv; } void method(int pv) { //pv : 매개변수. 지역변수 int n.. 2022. 3. 23.
[Java] 27. 내부클래스1 package chap10; class Outer1 { //외부클래스 class InstanceInner extends Object { //인스턴스 내부클래스 int iv = 100; //인스턴스 내부클래스의 멤버이고 인스턴스 변수 static int cv = 10; //인스턴스 내부클래스의 멤버이고 클래스 변수 final static int MAX = 200; //인스턴스 내부클래스의 멤버이고 상수 } static class StaticInner { //static 내부 클래스 int iv = 300; //인스턴스 변수 static int cv = 20; //클래스 변수 final static int MAX = 400; //상수 } void method() { class LocalInner { //지역.. 2022. 3. 23.
728x90
반응형