1. Class 클래스란? 자바의 모든 클래스와 인터페이스는 컴파일 후에 class 파일로 생성되고 파일에 클래스나 인터페이스에 대한 변수, 메서드, 생성자 등의 정보가 담겨있다. Class 클래스는 컴파일된 calss 파일에 저장된 클래스나 인터페이스의 정보를 가져오는데 사용한다. 모르는 클래스의 정보를 사용할 경우에 Class 클래스를 활용해 클래스 정보를 직접 찾는다. 1번 방식은 이미 생성된 인스턴스가 있어야하고 2, 3번 방식은 컴파일된 클래스 파일이 있다면 클래스 이름만으로 Class 클래스를 반환받는다. 1. Object 클래스의 getClass() 메서드 사용하기 String s = new String(); Class c = s.getClass(); 2. 클래스 파일 이름을 Class 변수..
1. 기본 자료형을 위한 클래스 Wrapper 클래스는 기본 타입의 데이터를 객체로 표현하기 위해 포장해주는 클래스이다. 예를 들어, 매개변수가 객체거나 반환 값이 객체인 경우 기본 타입을 객체형으로 사용해야 한다. 기본형 Wrapper 클래스 boolean Boolean byte Byte char Character short Short int Integer long Long float Float double Double 2. Integer 클래스 사용하기 Integer 클래스는 int 자료형을 감싼 클래스다. Integer 클래스의 생성자는 매개변수로 정수 혹은 문자열을 받는 경우 2가지가 있다. Integer 클래스는 final 멤버 변수로 기본 자료형 int를 갖고 있고 int 값을 객체로 활용할 ..
1. String을 선언하는 2가지 방법 자바는 문자열을 사용하도록 String 클래스를 제공하는데 String을 사용하는 2가지 방식이 있다. 1. 문자열을 생성자의 매개 변수로 하여 생성하는 방식 new 예약어를 사용해 객체를 생성하는 방식은 문자열을 위한 힙 메모리가 할당되고 새로운 객체가 생성된다. String str1 = new String("abc"); 2. 이미 생성된 문자열 상수를 가리키는 방식 String 변수가 기존에 만들어져있던 문자열 상수의 메모리 주소를 가리킨다. 프로그램에서 사용되는 상수 값을 저장하는 공간을 상수 풀이라고 한다. String str2 = "test"; String str3 = "test"; 2. String 클래스의 final char[] 변수 자바는 Strin..
1. java.lang 패키지 java.lang 패키지에는 프로그램에서 가장 많이 사용하는 기본 클래스가 포함되어있다. (String, Integer 등) 자바 프로그래밍에서 외부 패키지에 선언한 클래스를 사용할 때는 import 문으로 클래스가 어느 패키지에 속해 있는지 선언해야한다. 하지만 java.lang 패키지는 컴파일 시 자동으로 추가되기 때문에 import 문을 직접 쓰지 않아도 java.lang 패키지의 모든 하위 클래스를 참조할 수 있다. 2. 모든 클래스의 최상위 클래스 Object Object 클래스는 모든 자바 클래스의 최상위 클래스다. 모든 클래스는 Object 클래스로부터 상속을 받는다. (컴파일 과정에서 자동으로 extends Object가 쓰임) 그러므로 모든 클래스는 Obje..
1. 인터페이스란? 1. 구현 코드가 없는 인터페이스 인터페이스는 클래스 혹은 프로그램이 제공하는 기능을 명시적으로 선언하는 역할을 한다. 인터페이스는 추상 메서드와 상수로만 이루어져 있다. 구현 코드가 없기 때문에 인터페이스로 인스턴스를 생성할 수 없다. public interface Calc { double PI = 3.14; int ERROR = -999999999; int add(int num1, int num2); int substract(int num1, int num2); int times(int num1, int num2); int divide(int num1, int num2); } public abstract 를 쓰지 않아도 자동으로 추상 메서드로 변환된다. public static f..
1. 추상 클래스 1. 추상 클래스란? 추상 클래스란 하나 이상의 추상 메서드를 포함하는 클래스를 말한다. 추상 메서드는 구현부가 없고 abstract를 이용하여 선언만 하는 메서드다. // 구현체가 없는 추상 메서드 abstract int add(int x, int y); // 추상 메서드 아님! int add(int x, int y) {} (주의) { }를 사용한 것만으로도 메서드를 구현한 것이므로 중괄호 {} 안에 구현 코드가 없다고 하더라도 구현부는 존재하므로 추상 메서드가 아니다! 함수의 선언부(반환 값, 함수 이름, 매개변수)를 정의한다는 것은 함수의 역할이 무엇인지, 어떻게 구현해야하는지를 정의한다는 뜻이다. 따라서 함수 몸체를 구현하는 것보다 중요한 것은 함수 선언부를 작성하는 것이다. 2..
1. 상속이란? 1. 클래스의 상속 상위 클래스(부모 클래스), 하위 클래스(자식 클래스) 라고 한다. 상위 클래스가 하위 클래스보다 일반적인 개념이고 하위 클래스는 상위 클래스보다 구체적인 클래스다. 1) 클래스 문법 상속 상속을 구현할 때는 extends 를 사용한다. 'B 클래스가 A 클래스를 상속받는다'를 코드와 그림으로 나타낸 것이다. 2. 상속을 사용하여 고객 관리 프로그램 구현하기 실습 코드는 여기서 1) Customer 클래스 구현하기(Customer.java) 모든 멤버 변수를 반드시 private으로 구현할 필요는 없다. 필요에 따라 멤버 변수나 메서드를 외부에 노출하지 않을 목적일 때 private으로 선언하다. 2) VIPCustomer 클래스 구현하기(VIPCustomer.java..
1. 배열이란? 1. 자료를 순차적으로 관리하는 구조, 배열 배열(Array)는 자료가 연속으로 나열된 자료구조다. 배열을 사용하면 자료형이 같은 여러 개를 한번에 관리할 수 있다. 2. 배열 선언과 초기화 배열을 선언하면 선언한 자료형과 배열 길이에 따라 메모리가 할당된다. 배열 선언 방식은 2가지가 있지만 첫번째 방법을 사용하는 걸 추천한다. 1) 자료형[] 배열명 = new 자료형[개수] 2) 자료형 배열명[] = new 자료형[개수] int[] num = new int[10];// int형 요소가 10개인 배열 선언 3. 배열 초기화하기 1) 배열을 선언함과 동시에 각 요소의 값이 자동 초기화 자바에서는 배열을 선언함과 동시에 각 요소의 값(정수는 0, 실수는 0.0, 객체 배열은 null)로 초..