자바

    [Java] Generic 제네릭<> 클래스, 메소드, 인터페이스

    [Java] Generic 제네릭<> 클래스, 메소드, 인터페이스

    Generic(제네릭) 자료형을 선언할 때 자료형을 정하지 않는 기법(사용할 때 지정) 대문자로시작 E : Element N : Number T : Type K : Key V : value Generic class(제네릭 클래스) 클래스 내부에서 사용될 자료형을 지정한다. GClassTest obj = new GClassTest(); obj.data1 = "Hello"; GClassTest obj2 = new GClassTest(); obj2.data1 = 10; //Integer 타입의 객체 data1 에 int 타입의 10 을 대입하면 Auto-BOXING 단, 객체형 자료형이어야 한다. int char double등과 같은 기본자료형은 사용 불가능 Wrapper class 타입을 사용하여 int -..

    [Java]Object class toString(), equals(), hashcode()

    [Java]Object class toString(), equals(), hashcode()

    Object 클래스 모든 클래스들의 최상위 클래스 어떤 클래스들이든 간에 다 가지고 있음 클래스를 만들면 자동으로 Object 클래스를 상속받는다. 객체들이 가져야하는 틀//객체라면 가져야하는 모든 틀 Object 객체타입을 매개변수로 받는 메소드들은 어떠한 객체든 다 받을 수 있다. 객체를 넘기라는 뜻 toString() : 객체 출력시 나올 문자열 정의(객체를 대표하는 문자열 정의) Object 클래스의 toString() 메소드 재정의 public class ObjTest { public static void main(String[] args) { Test_A obj = new Test_A("Hello"); System.out.println(obj); System.out.println(obj.toS..

    [Java] @Annotation, 어노테이션

    [Java] @Annotation, 어노테이션

    @어노테이션 /** *어노테이션 주석 *내부에 javadocs 문서에 대한 내용을 작성 */ /** @author 개발자 @param 매소드의 매개변수 @return 메소드의 리턴값 @exception 메소드에서 발생하는 예외 @throws throws 에 대한 설명 @see 참고할만한 링크 @since 사용 가능한 JDK 버전 @version 클래스의 버전정보 */

    [Java] Java API(Application Programming Interface)

    [Java] Java API(Application Programming Interface)

    API (Application Programming Interface) 응용 프로그래밍 인터페이스 -> Java API: 자바 시스템을 제어하기 위해서 자바에서 제공하는 명령어들을 의미 java.lang : java 프로그래밍을 위한 가장 기본적인 패키지와 클래스 포함 String, int, etc java.util : java 프로그래밍을 제어하기 위한 클래스와 데이터를 효율적으로 저장하기 위해서 쓰이는 클래스 포함 Scanner java.io : 키보드, 모니터, 프린터, 파일 등을 제어할 수 있는 클래스들을 포함 io -> Input/Output 을 의미 //출력과 java.net : 통신을 위한 기능이 있는 클래스들을 포함 API의 종류는 굉장히 많고, 다양하기 때문에 모두 외우는 것은 불가능하기..

    [Java] 예외처리 try-catch-finally / throw throws 차이점 및 예제

    [Java] 예외처리 try-catch-finally / throw throws 차이점 및 예제

    예외처리 에러 : 심각한 오류 예외 : 덜 심각한 오류(객체) try ~ catch ~ finally 예외처리문 try{ 예외가 발생할 수 있는 문장 } catch(예외클래스명 객체명){ 예외 발생시 수행할 문장 } ... finally{ 예외 발생 유무에 상관없이 무조건 실행할 문장 } 예외라는 틀(class)을 잡아놓은 객체가 있다 Exception class 모든 예외들의 부모클래스 모든 예외들은 Exception class의 자식클래스이기 때문에 자동으로 업캐스팅 upcasting 이 이루어짐 어떤 예외가 발생하든지 Exception 타입으로 잡을 수 있다. 어떤 예외가 발생할지 모를 떄 찾아내는 역할 try{ 예외가 발생할 수 있는 문장 } catch(Exception e){ System.out..

    [Java] 내부 클래스 Inner class , 익명 클래스 Anonymous Inner class

    [Java] 내부 클래스 Inner class , 익명 클래스 Anonymous Inner class

    내부 클래스(Inner class) 클래스 내부에 클래스를 선언하여 외부 클래스의 필드에 쉽게 접근하기 위해서 사용한다. 다른 곳에서 볼 때에는 그 내부에 있는 클래스는 숨겨진 것처럼 보이게 된다. 내부 클래스의 필드를 사용(객체화)하기 위해서는 외부클래스의 객체에서 내부클래스를 객체화해야한다. 외부클래스의 필드에서는 자신이랑 같이 올라와 있는 내부클래스를 바로 객체화 할 수 있다. 외부클래스명 객체명 = new 외부클래스 생성자(); 외부클래스명.내부클래스명 객체명 = 외부클래스객체.new 내부클래스 생성자(); 굉장히 복잡하므로, 객체를 직접 만들지 말라는 뜻이다.(드물게 사용) Ex) 내부클래스 사용 예 일반클래스 상속 public class InnerTest { public static void ..

    [Java] 인터페이스 interface, 다중 상속, 마크 인터페이스

    [Java] 인터페이스 interface, 다중 상속, 마크 인터페이스

    인터페이스(interface) 틀이 극대화 추상클래스를 고도화시킨 문법, 반드시 추상메소드와 상수만 선언해야 한다. 구현이 되어 있는 것이 없음(틀의 역할만 함) 다른 클래스에서 인터페이스를 지정받을 때 implements를 사용함 틀로 받아 올 수 있는 interface의 개수에 제한이 없다. 지정 받은 클래스는 인터페이스가 가지고 있는 추상 메소드를 반드시 재정의해야한다. 인터페이스는 상수와 추상메소드만 존재하므로 그냥 선언해도 상수와 추상메소드로 선언됨. public static final 상수 : static final 생략가능 abstract 리턴타입 함수명 : abstract 생략가능 interface에는 public 이 필수 jdk 8버전 이후부터는 인터페이스에 default 메소드를 선언할..

    [Java] 추상클래스 abstract class, final

    [Java] 추상클래스 abstract class, final

    추상 클래스 클래스들의 틀 (틀 자체의 틀) 추상적인 내용만 정의하고 있는 클래스로, 구체적인 내용은 상속받아서 하위클래스에서 구현되도록 설계된 클래스이다. 추상 클래스(부모)는 클래스(자식)의 공통 요소들을 가상화시켜놓기 때문에 객체화시 구현(재정의)을 꼭 해야한다. 부모 추상 클래스의 역할은 단지 자식 클래스들을 만들 때 도와주는 역할을 수행한다. 자식 클래스에서 만들어질 메소드의 이름과 형태만 가지고 있다. 메소드에 {}바디가 없다. 이런 메소드를 추상 메소드라고 하며 abstract 키워드가 리턴타입 앞에 붙는다. 추상 메소드가 하나라도 포함되어 있다면 추상 클래스로 만들어야 한다. 추상 클래스 선언 abstract class 추상클래스명{ abstract 리턴타입 추상메소드명(); 리턴타입 일반..

    [Java]접근 권한 제어자 public, private, protected, default / getter, setter

    [Java]접근 권한 제어자 public, private, protected, default / getter, setter

    접근 권한 제어자 다른 패키지 혹은 다른 클래스에서 해당 필드에 접근할 수 있는 범위(권한)을 설정해주는 키워드 (default) : 다른 패키지에서 접근 불가 public : 모든 곳에서 접근 가능 private : 다른 클래스에서 접근 불가 데이터 전송할 때, 보안을 위해서 설정(보통 데이터는 private 사용) 직접 접근할 방법이 하나도 없기 때문에 public 메소드를 통해서 간접적으로 접근할 수 있도록 한다. 값을 사용하는 경우 : getter / 수정하는 경우 : setter protected : 다른 패키지에서 접근 불가 / 단, 자식은 자기 필드처럼 사용가능 getter setter public 메소드를 통해 private 에 접근할 수 있도록 하는 기법 public class Test{..

    [Java] Upcasting(업캐스팅), Downcasting(다운캐스팅), instanceof

    [Java] Upcasting(업캐스팅), Downcasting(다운캐스팅), instanceof

    전제조건: 상속의 관계에 있어어야 함 Up casting (업캐스팅) 부모 타입의 객체에 자식 클래스의 필드를 담아주는 것 부모 타입의 객체에 자식 생성자를 호출 필드의 사용 범위가 부모타입만큼 제한 되기 때문에 자식 클래스에서 추가된 내용은 사용할 수 없다. 단, 오버라이딩 된 메소드는 사용가능 자식필드는 존재하지만, 사용불가능인 개념 부모클래스 객체명 = new 자식생성자(); Car mycar = new SuperCar(); Down casting (다운캐스팅) 업 캐스팅 된 객체를 다시 자식타입으로 바꾸는 기법 업캐스팅이 되지 않은 객체는 다운캐스팅 불가능 업 캐스팅 된 객체에 다시 자식클래스의 필드를 달아주는 것 업 캐스팅시 잘려나갔던 자식 클래스의 내용들을 다시 사용할 수 있게 하려면 자식 클..