12장 Object 클래스 모든 클래스는 Object 클래스를 상속받고 있다. Object 클래스의 매소드 객체 처리를 위한 메소드 String toString() boolean equals() int hashCode() Class getClass() Object clone() void finalize() toString 모든 경우에 toString를 overriding해서 사용하지 않아도 되지만 객체의 상태를 쉽게 보려면 해주는 것이 좋다. public class Member { public String name; public String phone; public String email; public String toString() { return "name" + this.name + "phone" +..
10장 상속 extends 예약어를 사용해서 상속을 받을 수 있다. public class Parent { public Parent() { System.out.println("parent 생성자"); } public void printName() { System.out.println("parent printName()"); } } public class Child extends Parent { public Child() { System.out.println("child 생성자"); } } Parent를 상속받은 Child 클래스는 printName 메소드를 사용할 수 있다. Child child = new Child(); child.printName(); Child 클래스가 생성될 때 Parent 클래스..
8장 참조 자료형 자바의 자료형 기본 자료형 : byte, short, int, long, float, double, char, boolean 참조 자료형 : 기본자료형 빼고 나머지 내가 만든 클래스도 자료형이다. 내가 만든 자료형(클래스) 사용하기 생성자 클래스를 객체로 만들기 위해 사용한다. public class ReferenceType { // 생성자 public ReferenceType() { } } 생성자를 호출하면 해당하는 클래스의 객체가 생성됨(ReferenceType이 리턴형으로 생각하면 이름이 없는 메소드가 생성자가 아닐까?) 클래스에 생성자가 없으면 매개변수가 없는 생성자를 만들지 않아도 사용할 수 있다. (기본 생성자) 하나라도 생성자가 있으면 기본 생성자는 만들어지지 않는다. 생성..
여러 데이터를 하나에? 배열 : 여러개의 값을 넣을 수 있는 변수 int[] lottoNumbers = new int[7]; 배열의 번호는 0 부터 시작 ArryIndexOutofBoundsException 배열의 인덱스에 잘 못 접근했을 때 발생하는 예외 배열의 기본값 기본 자료형 배열 기본 자료형 배열의 기본값은 각 자료형과 동일하다. byte, short, int, long : 0 float, double : 0.0 char : \u0000 (공백) boolean : false 참조 자료형 배열의 기본값 초기화 하지 않은 참조 자료형의 기본값은 null 이다. 참조 자료형 배열의 기본값도 null 이다. 배열의 출력 배열을 for문을 사용하지 않고 그 자체로 출력하면 재미있는 결과가 나온다. //S..
1장 프로그래밍이란 무엇인가? 반복적으로 수행되는 일들을 사람이 수동으로 하지 않고 무언가에 자동으로 수행되도록 만드는 것 작은 단위들이 모여서 사람이 풀기 어려운 일도 가능하게 한다. 자바의 가장 작은 단위 클래스(class) 자바는 클래스가 모여서 하나의 프로그램이 만들어 진다. 클래스는 상태(state)와 행동(behavior)을 가질 수 있다. 행동(behavior)은 자바에서 메소드(mathod)라고 부른다. 행동을 하기 위해서 여러 가지 상태(state)를 가질 수 있다. 2장 Hello God Of Java 자바 프로그램이 실행되는 과정 .java 파일 -> 컴파일러 -> .class 파일 -> JVM -> 기계어 -> 운영체제 main 메소드 public static void main(St..
예외? 사용자의 잘못된 조작 또는 개발자의 잘못된 코딩으로 인해 발생하는 프로그램 오류. 예외가 발생하면 프로그램이 종료가 된다는 것은 에러와 동일하지만 예외는 예외처리(Exception Handling)를 통해 프로그램을 정상적으로 작동되게 만들어준다. Checked Exception Exception을 상속 Checked Exception 또는 Compile Time Exception이라고 함 컴파일 시점에 Exception에 대한 처리(try/catch)를 하지 않을 경우 컴파일 에러가 발생한다. public class CheckedException extends Exception { public CheckedException(String message) { super(message); } } Un..
인터페이스? 하나의 시스템을 구성하는 2개의 구성 요소(하드웨어, 소프트웨어) 또는 2개의 시스템이 상호 작용할 수 있도록 접속되는 경계(boundary), 이 경계에서 상호 접속하기 위한 하드웨어, 소프트웨어, 조건, 규약 등을 포괄적으로 가리키는 말 interface는 자바에서 한 단계 더 높은 추상화를 하기 위해 사용된다. interface는 구현 로직은 존재하지 않으며 메서드에 대한 입력(input), 출력(output)만 정의하고 있다. interface를 활용해 추상화를 하는 이유는 소프트웨어에 변경이 발생할 경우 소스 코드에 변경을 최소화함으로써 유지보수 비용을 줄이고, 변화에 빠르게 대응하기 위함이다. 추상화를 함으로써 미래의 변화에 빠르게 대응할 수 있지만 추상화를 하려면 추상화에 따른 ..
객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고 받으며, 데이터를 처리할 수 있다. 객체지향 5가지 키워드 클래스(class) : 표현 대상의 특징에 대한 서술 (concept, type) 오브젝트(object) : 클래스의 인스턴스 (instance, variable) 캡슐화(encapsulation) : 데이터와 데이터를 다루는 방법을 묶는 것 상속성(inheritance) : 하나의 클래스가 가지고 있는 특징들을 그대로 다른 클래스가 물려 받는 것 다형성(polymorphism) : 상속성을 따라서 각각의 클래스에 한가지 이름을 줄 수 있는것 (같은 명령을 다른 오..