책/이것이 자바다

    [11장] 기본API클래스(3)

    11.11 Arrays 클래스 Arrays 클래스는 배열 조작 기능을 가지고 있다. 배열 조작이란 배열의 복사, 항목 정렬, 항목 검색과 같은 기능을 말한다. 11.11.1 배열 복사 배열 복사를 위해 사용할 수 있는 메소드는 copyOf(원본배열, 복사할 길이), copyOfRange(원본배열, 시작인덱스, 끝 인덱스)이다 복사할 길이는 원본 배열의 길이보다 커도되며, 타겟 배열의 길이가 된다 char[] arr1 = {'J','A','V','A'}; char[] arr2 = Arrays.copyOf(arr1, arr1.length); copyOfRang는 원본 배열의 시작 인덱스에서 끝 인덱스까지 복사한 배열을 리턴한다. 시작 인덱스는 포함되지만, 끝 인덱스는 포함되지 않는다. char[] arr1 ..

    [11장] 기본API클래스(2)

    11.6 Class 클래스 자바는 클래스와 인터페이스의 메타 데이터를 java.lang패키지의 소속된 Class 클래스로 관리한다. 여기서 메타 데이터란 클래스의 이름, 생성자 정보, 필드 정보, 메소드 정보를 말한다. 11.6.1 Class 객체 얻기(getClass(), forName()) 프로그램에서 Class 객체를 얻기 위해서는 Object 클래스가 가지고 있는 getClass() 메소드를 이용하면 된다. Object는 모든 클래스의 최상위 클래스이므로 모든 클래스에서 getClass() 메소드를 호출 할 수 있다. Class clazz = obj.getClass(); getClass() 메소드는 해당 클래스로 객체를 생성했을 때만 사용할 수 있는데, 객체를 생성하기 전에 직접 Class 객체를..

    [11장]기본 API클래스

    11.2 java.lang과 java.util패키지 11.2.1 java.lang 패키지 java.lang 패키지는 자바 프로그램의 기본적인 클래스를 담고 있는 패키지이다. 클래스 용도 Object 자바 클래스의 최상위 클래스로 사용 System -표준 입력 장치로부터 데이터를 입력받을 때 사용 -표준 출력 장치로 출력하기 위해 사용 -자바 가상 기계를 종료시킬 때 사용 -쓰레기 수집기를 실행 요청할 때 사용 Class -클래스를 메모리로 로딩할 때 사용 String -문자열을 저장하고 여러 가지 정보를 얻을 때 사용 StringBuffer, StringBuilder -문자열을 저장하고, 내부 문자열을 조작할 때 사용 Math -수학 함수를 이용할 때 사용 Wrapper (Byte,Short,Charac..

    [10장]예외처리

    10장-예외처리 생성일: 2021년 12월 31일 오후 2:15 10.1 예외와 예외 클래스 컴퓨터 하드웨어의 오동작 또는 고장으로 인해 응용프로그램 실행 오류가 발생하는것을 에러라고 한다. 에러는 JVM 실행에 문제가 생겻다는 것이므로 프로그램을 아무리 견고하게 만들어도 실행 불가능하다. 예외란 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류를 말한다. 예외는 예외처리를 통해 프로그램을 종료하지 않고 정상 실행 상태가 유지되도록 할 수 있다. 일반예외 -컴파일러 체크 예외, 자바 소스를 컴파일 하는 과정에서 예외 처리 코드가 필요 지 검사 하기 때문이다. -예외 처리 코드가 없다면 컴파일 오류가 발생한다. 실행예외 -컴파일 하는 과정에서 예외 처리 코드를 검사하지 않는 ..

    [9장]중첩 클래스와 중첩 인터페이스

    9.1 중첩 클래스와 중첩 인터페이스 객체 지향 프로그램에서 클래스들은 서로 긴밀한 관계를 맺고 상호작용을 한다. 특정 클래스와 관계를 맺을 경우에는 관계 클래스를 클래스 내부에 선언하는것이 좋다. 중첩 클래스란 클래스 내부에 선언한 클래스를 말한다. 중첩 클래스를 사용하면 두 클래스의 멤버들을 서로 쉽게 접근할 수 있다는 장점과 외부에는 불필요한 관계 클래스를 감춤으로써 코드의 복잡성을 줄일 수 있다. 중첩클래스 class ClassName{ class NestedclassNamed{ } } 중첩인터페이스 class ClassName{ interface NestedInterfaceName{ } } 인터페이스를 클래스 내부에 선언하는 이유는 해당 클래스와 긴밀한 관계를 맺는 구현 클래스를 만들기 위해 9..

    [8장]인터페이스

    8.1인터페이스의 역할 자바에서 인터페이스는 객체의 사용 방법을 정의한 타입이다. 객체의 교환성을 높여주기 때문에 다형성을 구현하는 매우 중요한 역할을 한다. 인터페이스는 개발 코드와 객체가 서로 통신하는 접점 역할을 한다. 개발 코드가 직접 객체의 메소드를 호출하면 간단한데, 중간에 인터페이스를 두는 이유? 개발 코드를 수정하지 않고, 사용하는 객체를 변경할 수 있도록 하기 위함이다. 인터페이스는 하나의 객체가 아니라여러 객체들과 사용이 가능하므로, 어떤 객체를 사용하느냐에 따라서 실행 내용과 리턴값이 다를 수 있다. 8.2 인터페이스의 선언 8.2.1인터페이스의 선언 [public] interface 인터페이스명{} public interface RemoteControl{} interface 인터페이..

    [7장] 상속

    상속 개념 부모 클래스의 멤버를 자식 클래스에게 물려주는 행위, 이때 부모 클래스를 상위 클래스라고 부르기도 하며, 자식 클래스를하위 클래스, 또는 파생 클래스라고 부른다. 상속은 이미 잘 개발된 클래스를 재 사용해서 새로운 클래스를 만들기 때문에 코드의 중복을 줄여준다. public class A{ int field; void method1(){} } public class B extends A{ String field2; void method2(){} } 부모 클래스에서 private접근 제한을 갖는 필드와 메소드는 상속대상에서 제외된다. 부모 클래스와 자식클래스가 다른 패키지에 존재한다면 default 접근 제한을 갖는 필드와 메소드도 상속 대상에서 제외된다. 클래스의 상속 class 자식클래스 e..

    [6장] 객체

    객체란? 물리적으로 존재하거나 추상적으로 생각할 수 있는 것중에서 자신의 속성과 동작으로 구성되어 있으며 , 다른 것과 식별 가능한것을 말한다. 속성 : 필드 동작: 메소드 ☆객체의 상호작용 세계에서 일어나는 모든 현상은 객체간의 상호 작용으로 이루어져 있음 객체들은 독립적으로 존재 다른 객체와 서로 상호작용하며 동작한다. 상호작용 수단은 메소드, 객체가 다른 객체의 기능을 이용하는 것이 바로 메소드 호출 객체간의 관계 집합관계 : 자동차 객체는 엔진 객체, 타이어 객체, 핸들 객체로 이루어져 있다. 사용 관계: 사람 객체가 자동차 객체의 메소드를 호출한다. 상속관계: 상위 부모 객체를 기반으로 하위 객체를 생성하는 관계를 의미한다. ☆객체 지향 프로그래밍의 특징 캡슐화 상속 다형성 캡슐화란? 객체의 필..