자바 (10) 썸네일형 리스트형 람다표현식 # 자바 1.8에 새롭게 추가됨# Lamda Expression 1. 람다표현법 ( 기본 ) ( 코드 간결화 )# 기존 메서드 작성반환타입 메서드이름( 매개변수 ){ 내용} # 람다 ( 반환타입과 메서드 이름이 생략된 형태 ) ( 매개변수){ 내용 } ex # 기존 int sum(int a, int b){ return a+b;} # 람다 - 아래와같이 익명함수로 표현(int a, int b)-> { return a+b }; 2. 람다식에서 생략할수 있는 조건# 반환값이 있는경우 : return, { } , ; 생략가능 (int a, int b) -> { return a+b; } (int a, int b) -> a+b # 매개변수의 타입을 추론할 수 있는경우 타입 생략가능 (int a, int b) -> .. [자바기초요약9] 내부클래스 # 내부클래스 1 내부멤버클래스 외부클래스명$내부멤버클래스.class 2 내부지역클래스 외부클래스명$숫자 내부지역클래스.class 3 내부무명클래스 외부클래스명$숫자.class [ex] class A{ // A.class class B{} // A$B.class void m1(){ class C{} // A$1C.class class D{} // A$1D.class } void m2(){ class C{} // A$2C.class class E{} // A$1E.class } } [ex] class A{ // A.class B o1=new B(){}; // A$1.class void m(){ B o2=new B(){}; // A$2.class } } class B{} // B.class # 내부멤버클래스.. 소스 [자바기초요약7] 기타제어자( static, final, abstract ) # 기타제어자 - static final abstract (접근제어자 public protected default private) # static static붙힌것과 주소만들어주는것( A o=new A() )은 메모리에 올라감 static이 붙으면 오버라이딩 안됨( static은 고정된, 정적인 이라는 뜻 ) 의미 : 클래스에 속한것이라는 의미를 가진다. 위치 : 멤버변수앞, 메서드앞 # 멤버변수앞에 선언되는 static : 객체간에 어떤 변수를 공유하고자할때 (static이 메서드앞에 선언될 때 : 편하게 사용하자..) [ex]class A{ int a=100; public static void main(String args[]){ System.out.println(a); }} //오류나는이유는..순서.. [자바기초요약6] this(), super(), 다형적변수, instanceof연산자, 참조형간의 형변환 # this(), super() : 생성자의 첫번째 줄에만 선언될 수 있다. (생성자에서만쓰임)(또한 생성자에서만 호출가능...메서드에서는안됨) this() => 현재클래스() Dog a 와 Cat a는 부모클래스Animal로 표현 // 2. 부모Animal클래스로 자식을 부를려면 오버라이딩해야함 그래서 부모클래스에 빈껍데기 void sound(){}를 만들어줌 // 3. 그리고는 부모와 자식클래스의 관계에서 void sound()메서드를 오버라이딩해야함 // 즉, 부모클래스를 호출하는메서드로 바꾸고 찾아가보면 자식이 오버라이딩된 메서드를 실행하게 변경??? [an]class Animal{ void sound(){}}class Dog extends Animal{ void sound(){ System.ou.. [자바기초요약5] 메서드오버라이딩, 오버로딩, @Override, 생성자 [ex]오버라이딩/*package java.lang;public class Object{ public String toString(){ }}*/class A{ public static void main(String args[]){ B o=new B(); System.out.println(o); // aaa }}class B{ public String toString(){ // object클래스의 toString()메서드를 오버라이딩했음! return "aaa"; }} # 오버라이딩[ex]class A{ String m(){ return "aaa"; }}class B extends A{ String m(){ System.out.print(super.m()); //super는 은닉변수나 은닉메서드를 나타냄 .. [자바기초요약4] 패키지 , 상속 # 패키지[ex]소스파일 저장장소 : ~/pkg/src실행파일 생성장소 : ~/pkg/bin A.java======package a.b;class A{ public static void main(String args[]){ System.out.println(100); }} [컴파일]javac -d 패키지가생성될곳의경로 xxx.java javac -d ~/pkg/bin ~/pkg/src/A.java[실행] java 패키지명 java a.b.A -----------------------------------------------------------------[ex] classpath환경변수 설정하기리눅스에서 export CLASSPATH=값:값:값:... export CLASSPATH=.:/pkg/bin:.. [자바기초요약3] 참조형 변수 선언 # 변수의 초기값정수형 0실수형 0.0문자형 공백논리형 false참조형(클래스형) null(주소가 없다)참조형(배열형) null # 변수의 종류1 멤버변수 : 메서드의 블럭({})바깥쪽에 선언되는 변수2 지역변수 : 메서드의 블럭({})안쪽에 선언되는 변수3 매개변수 : 메서드의 괄호(())안쪽에 선언되는 변수 # 클래스형의 참조형변수 선언하기 클래스명 주소=new 클래스명(); 주소.멤버변수명[ex]class A{ int a=10;}class B{ public static void main(String args[]){ System.out.println(a); }} [ex]class A{ int a=10;} class B{ public static void main(String args[]){ A add.. 이전 1 2 다음