요약 문제 풀이1. 참조 자료형(Reference type)과 기본 자료형(Primitive type)의 차이를 정리해 주세요.참조 자료형: 기본 자료형을 제외한 자료형으로 초기화 시 new와 생성자를 지정해 객체를 만들어야하며 매개 변수로 값을 넘겨줄때 Pass By Reference에 의해 값이 아닌 참조 주소값이 전달되어 값이 변경되면 원본에 영향을 미친다.기본자료형: 8개가 있으며 boolean, byte,short, int, long, char, double, float이 있으며 초기화 시 값을 바로 지정해줄 수 있으며 매개 변수로 값을 넘겨줄 경우 Pass By Value에 의해 원본 값이 복사되어 전달되기에 값이 변경되어도 원본에 영향을 미치지않는다.2. 기본 자료형 8 가지를 나열하고 각 ..
객체지향 개발과 관련된 용어들클래스 (class) : "상태"와 "행위"를 갖는 자바의 기본 단위상태 (state) = 변수행위 (behavior) = 메소드추상 클래스 (abstract class) / 클래스 (class) / 인터페이스 (interface)클래스 파일(.class)이 되는 타입의 종류클래스인터페이스abstract 클래스enum 클래스어노테이션 선언 클래스추상 클래스 (abstract class) / 클래스 (class) / 인터페이스 (interface) 차이점인터페이스메소드가 선언만 되어 있다.구현되어 있는 메소드가 존재하면 안된다.인터페이스를 구현 시 implements를 사용해 구현한다.추상 클래스구현되어 있는 메소드가 존재해도 상관없다.abstract로 선언된 메소드가 1개 이..
어노테이션 (Annotation)클래스나 메소드등의 선언 시 @를 사용하는 것으로 메타데이터라고 불리기도 한다.어노테이션 사용 용도컴파일러에게 정보를 알려줄 때컴파일할 때 설치(deployment) 시의 작업을 지정할 때실행할 때 별도의 처리가 필요할 때클래스, 메소드, 변수 등 모든 요소에 선언할 수 있다.자바에는 사용하기 위해 정해져있는 어노테이션 3개, 선언을 위해 존재하는 메타 어노테이션 4개가 있다.어노테이션 선언 시 미리 만들어 놓은 어노테이션을 확장하는 것이 불가능하다. (상속 x)extends 예약어 사용 불가용도 별 어노테이션 종류제약사항 등을 선언하기 위해: @Deprecated, @Override, @NotNull용도를 나타내기 위해: @Entity, @TestCase, @WebSer..
Nested 클래스클래스 안에 클래스가 들어갈 수 있다.클래스 안에 들어가는 클래스를 Nested 클래스라고 한다.코드를 간단히 표현하기 위해 사용한다.UI 처리를 할 때 사용자의 입력이나 외부의 이벤트에 대한 처리를 하는 곳에서 가장 많이 사용된다.선언 방식에 따라 Static nested 클래스 / 내부 클래스로 나뉜다.static으로 선언 시 Static nested 클래스static이 없으면 내부 클래스내부 클래스익명 클래스 (이름이 없는 클래스)여러 클래스가 하나의 파일 안에 선언되어 있는 경우파일 명은 public으로 선언된 클래스의 이름과 동일해야 한다.동일하지 않거나 public 클래스가 여러 개인 경우 컴파일 에러가 발생한다.감싸고 있는 클래스만 컴파일해도 자동으로 나머지 클래스들도 컴파..
StringString 클래스는 final로 선언되어 있기에 다른 클래스에게 상속하지 못한다.= 다른 클래스들이 확장하지 못한다.Serializable, Comparable, CharSequence 인터페이스를 구현하는 클래스다.Serializable : 구현해야하는 메소드가 하나도 없는 특이한 인터페이스로 Serializable 인터페이스를 구현한다고 선언하면 해당 객체를 파일로 저장하거나 다른 서버에 전송 가능한 상태가 된다.Comparble : compareTo() 메소드 하나만 선언되어 있다. 이 메소드는 매개 변수로 넘어가는 객체와 현재 객체가 같은지 비교하고 int 형으로 리턴한다. (같으면 0, 순서상 앞에 있으면 음수, 뒤에 있으면 양수를 리턴)CharSequence : 해당 클래스가 문자..
예외 (Exception)ex) try-catchpublic static void main(String [] args){int [] intArray = new int [5];try { // 예외가 발생하는 문장들을 묶어준다. System.out.println(intArray[10]); } catch (Exception e) { // 예외가 발생했을 때 처리해주는 문장 }}우리가 예상한 / 예상치 못한 일이 발생하는 것을 미리 예견하고 안전장치를 하는 것ex) null 인 객체에 메소드를 호출파일을 읽으려고 했는데 파일이 존재하지 않는 경우 ....예외 발생 시 예외가 발생한 클래스와 메소드 이름, 줄의 번호를 출력해준다.try-catch 블록try - catch 블록은 예외를 처리하는 역할을 한다. ..
인터페이스 (Interface) / 추상 클래스 (Abstract Class)자바에서 .class 파일을 만들 수 있는 것에는 class, interface, abstract class가 있다.인터페이스에는 몸통이 없는 메소드가 선언만 되어져 있다.ex) public boolean equals(Object o);해당 메소드를 사용하는 사용자의 입장에서는 내부 구현이 어떻게 되어 있는지 별로 궁금하지 않고 원하는 메소드를 호출하면 답을 받는 것이 중요하다.DAO 패턴 (Data Access Object)데이터를 저장하는 저장소에서 원하는값을 요청하고 응답받는 역할.비지니스 로직과 DB를 분리하기 위해 사용하는 패턴으로 DB 접근을 전담한다.인터페이스와 추상 클래스를 사용하는 이유설계시 선언해 두면 개발할 ..
java.lang.Object 클래스모든 클래스의 부모 클래스Object 클래스에 있는 메소드들을 통해서 클래스의 기본적인 행동을 정의할 수 있다.클래스라면 "이 정도의 메소드는 정의되어 있어야하고 처리해줘야 한다"는 것을 정의하는 작업이 필요하기 때문에 Object 클래스를 상속 받는다.기본적으로 아무런 상속을 받지 않아도 java.lang.Object를 상속받는다.Object 클래스에서 제공하는 메소드Object 클래스에 선언된 메소드는 객체를 처리하기 위한 메소드와 쓰레드를 위한 메소드로 나뉜다.쓰레드: 프로그램이 실행되는 작은 단위 중 하나객체를 처리하기 위한 메소드Object clone() : 객체 복사본을 만들어 리턴한다.boolean equals() : 현재 객체와 매개 변수의 객체가 같은지..
API (Application Programming interface)애플리케이션에 선언되어 있는 클래스와 메소드에 대한 상세한 설명이 포함된 문서소스내 상세한 주석과 jdk/bin 디렉토리에 있는 javadoc 명령을 통해 자동으로 API 문서 생성기능도 있다.API 문서는 OpenJDK와 Oracle 문서로 나눠서 볼 수 있다.API 문서에서 클래스 상속 관계는 아주 중요하다부모 클래스에서는 선언되었지만 자식 클래스에서 별도로 오버라이딩하지 않은 경우 자식 클래스에서 자세한 설명을 볼 수 없으니 부모 클래스에서 확인해야한다.Deprecated란?JDK를 처음 만들었을 때는 필요해서 만들었지만 나중에 쓰다보니 문제를 야기시키거나 혼동을 가져와서 더 이상 사용할 가치가 없을 때 Deprecated로 처리..
상속부모 클래스에 선언되어 있는 public / protected로 선언된 모든 변수 / 메소드를 내가 갖고 있는 것 처럼 사용할 수 있다.접근 제어자가 없거나 (package-private) private으로 선언된 변수 / 메소드들은 자식 클래스에서 사용할 수 없다.extends 키워드 다음에 클래스 이름을 지정하면 그 클래스를 상속 받는다는 의미클래스 다이어그램에서 상속 관계는 속이 빈 삼각형 화살표로 자식 ㅡ▷ 부모 클래스를 가리킨다.참조 관계는 그냥 직선으로 나타낸다.확장을 한 클래스 (자식 클래스)가 생성자를 호출하면 자동으로 부모 클래스의 기본 생성자가 실행된다.이후 자식 클래스의 생성자가 실행된다. ex) Inheritance Examplepublic class Parent { public..