아래 그림을 보면서 자바의 기본 구조를 이해해 보려고 한다.자바 프로그램을 구성하는 기본 단위로, 클래스 안에 변수와 메서드를 모두 작성한다.public으로 선언된 클래스가 있다면 파일명 역시 public 클래스와 똑같이 일치 시켜야 한다.(대소문자 구문)만약 한 파일
자바의 배열은 참조자료형이다. 자바는 클래스와 배열 등 모두 동적 할당 하기 때문이다. 따라서 배열을 사용하기 위해서는 참조변수 선언 후 배열 객체를 동적으로 생성해 할당해 주는 과정이 필요하다.배열 선언으로 실제 배열 객체가 생성되지는 않고 단지 참조변수만 생성된다.
패키지는 서로 관련 있는 코드의 묶음으로 C++의 namespace와 목적이 유사하다. 패키지가 필요한 이유는 크게 두가지가 있다.같은 클래스명은 같지만 서로 완전히 다른 클래스가 존재할 수 있기에 이를 분리클래스를 기능별로 묶어 놓아 관리 또는 접근을 용이하게 하기
Wrapper 클래스는 int, char, double 등 8개의 기본 타입을 객체로 다루기 위해 JDK에 만들어진 클래스들을 통칭하는 것으로, Wrapper인 클래스가 존재하는 것은 아니다.JDK 9 부터는 생성자를 이용한 객체 생성을 폐기하였기 때문에 위와 같이 정
String 클래스는 java.lang 패키지에 포함된 클래스로 문자열을 나타낸다. 스티링 리터럴은 자바 컴파일러에 의해 모두 String 객체로 처리된다.문자열을 다루는데 있어 중요한 점은 스트링 리터럴과 new String()으로 생성된 스트링 객체는 서로 다르게
특정 클래스가 가지는 일부 속성/행위를 다른 새 클래스에게 제공하는 것으로, 상속을 사용하게 되면 다음과 같은 이점이 생긴다.클래스의 간결화 - 멤버의 중복 작성 불필요클래스 관리 용이 - 클래스들의 계층적 분류소프트웨어의 생산성 향상 - 클래스 재사용과 확장 용이공통
다형성을 실현하기 위해서는 업캐스팅과 다운캐스팅에 대한 이해가 필요하다.자바에서 서브 클래스는 슈퍼 클래스의 속성을 상속받기 때문에 서브 클래싀 객체는 슈퍼 클래싀 멤버를 모두 가진다. 그러므로 서브 클래스의 객체를 슈퍼 클래싀 객체로 취급할 수 있다.서브 클래스의 객
추상 클래스는 객체 생성이 불가능한 불완전한 형태로, 단지 상속시 상위 클래스로써 존재한다. 다만, 객체 할당 없이 참조변수 선언은 가능하다.아래는 추상 클래스의 모습이다.여기서 abstract 키워드를 사용한 메서드가 있는데 이를 추상 메서드라고 한다. 추상 메서드란
프로그램 실행 중에 예기치 못한 상황에서 발생하는 비정상적인 상황을 가리킨다. 문법에 맞지 않게 작성된 코드는 사전에 컴파일 오류로 걸러지지만, 런타임 에러는 실행중에 발생한다. 이러한 예외가 발생한 경우 프로그램의 비정상적인 종료 대신 계속해서 정상적인 수행을 할 수
제네릭은 모든 종류의 타입을 다룰 수 있도록, 클래스나 메서드를 타입 매개변수를 이용하여 선언하는 기법이다. 이는 C++의 템플릿과 동일하다.컬렉션 클래스에서 타입 매개변수로 사용하는 문자는 다른 변수와 혼동을 피하기 위해 일반적으로 하나의 대문자를 사용한다. 다음은
스트림(Stream)이란 흐르는 시냇물을 뜻하며, 컴퓨터 공학에서 스트림은 연속적인 데이터의 흐름 혹은 데이터 흐름을 형성해 주는 통로를 가라킨다.즉, 각종 I/O 장치와의 데이터 이동에 사용되는 객체를 의미한다.사용자 콘솔 입출력파일 입출력네트워크 통신 등출력 스트림