전체 글 422

Chapter 09-48 예외(Exception)

09-48.1 예외 처리 Def) 예외: 프로그램 실행하는 과정에선 발생하는 예기치 못한 사건 Ex 1) package javaStudy; public class ExceptionExam { public static void main(String[] args) { int i= 10; int j = 5; int k = i / j; System.out.println(k); } } Note) 실행 결과: 2 Ex 2) j = 0으로 바꾸면? package javaStudy; public class ExceptionExam { public static void main(String[] args) { int i= 10; int j = 0; int k = i / j; System.out.println(k); } }..

Chapter 08-47 익명 클래스(anonymous class)

08-47.1 익명 클래스 만들기 Def) 익명 클래스: 클래스 선언과 동시에 객체를 만든다. - 자식 클래스를 굳이 만들 필요 없는 경우에 사용한다. -> 자식클래스가 필요 없는 경우는? -> Action을 상속 받는 클래스를 ActionExam클래스 안에서만 사용하고 다른 클래스에서 사용하지 않는 경우. -> 한 번만 사용하므로 MyAction 클래스는 만들 필요가 없다. -> 상속 받는 클래스를 따로 정의하지 않고 바로 사용하기 위해 익명클래스를 사용한다. (1) 추상클래스 Action클래스를 만들고 추상 메서드 exec를 작성한다. package javaStudy; public abstract class Action { public abstract void exec(); } - 추상 클래스를 상속..

Chapter 08-46 내부 클래스

08-46.1 내부클래스 Def) 내부 클래스: 클래스 안에 선언한 클래스를 말한다. (특정 클래스 내에서만 사용한다.) - 어느 위치에서 선언하느냐에 따라 네 가지로 나뉜다. (1) 인스턴스 클래스 (instance class) (중첩 클래스) (2) 스태틱 클래스 (static class) (3) 지역 클래스 (local class) (4) 익명 클래스 (anonymous class) 08-46.2 인스턴스 클래스(instance class) (중첩 클래스) - 클래스 안에 인스턴스 변수, 즉 필드를 선언하는 위치에 선언하는 경우이다. package javaStudy; public class InnerExam1 { class Cal{ int value = 0; public void plus() { v..

Chapter 08-45 인터페이스의 default 메서드

08-45.1 자바8이 등장하면서 바뀐 인터페이스 내용 - 기존의 인터페이스는 추상 메서드만 가질 수 있었다 - 자바 8부터는 defeult 메서드와 static메서드를 정의할 수 있다. - 인터페이스를 default로 선언하면 메서드로 구현할 수 있다. 08-45.2 계산기 인터페이스 예제 - 계산기 인터페이스를 구현해서 알아보자. (1) plus, multiple, exec 메서드를 추가한다. package javaStudy; public interface Calculator { public int plus(int i, int j); public int multiple(int i, int j); default int exec(int i, int j) { return i + j; } } (2) mult..

Chapter 08-43 인터페이스 만들기

08-43.1 인터페이스란? Def) 인터페이스: 구현은 하지 않고 기능만 선언해 쭉 가지고 있는것을 말한다. 08-43.2 인터페이스 만들기 (1) javaStudy 패키지 마우스 오른쪽 > New > Interface (2) name: TV 입력 후, finish (3) package javaStudy; public interface TV { } - 원래 class라고 적힌곳에 interface 라고 적혀있다. (4) turnOn 메서드를 추가 package javaStudy; public interface TV { public void turnOn(); } - 메서드이므로 괄호를 꼭 넣어준다. - 앞서 공부한 단원에서 추상메서드는 항상 abstract을 붙여줘야 에러가 나지 않는다 - 그런데 인터페..

Chapter 07-42 클래스 형변환

07-42.1 클래스 형변환 - 기본형의 형을 바꾼 것처럼 클래스형의 형도 바꿀 수 있다. Ex) Car car = new Van(); - Car를 가리키겠다고 선언한 car형 변수인데 Van 가리키고 있다. - 묵시적 형변환이 일어나서 오류가 발생하지않는다. - 클래스는 부모 객체가 항상 더 큰 그릇이라고 생각하면 된다. - 형변환 하는 이유는? -> 부모가 자식을 가리킬 수 있으나 부모가 알고 있는 메서드 까지만 접근할 수 있기 때문이다. -> 이 때, 형변환으로 객체가 가진 모든 부분을 사용한다. (1) 묵시적(암묵적) 형변환: 큰 그릇에 작은 그릇의 값을 담는 경우 - 오류가 발생하지 않는다. (2) 명시적 형변환: 작은 그릇에 큰 그릇의 값을 담는 경우 - 큰 그릇에 들어있는 값에 따라서 실행 ..

Chapter 07-41 오버라이딩(Overriding)

07-41.1 오버 라이딩(Overriding) Def) 오버 라이딩(Overriding) : 부모가 가진 메서드나 똑같은 모양의 메서드를 자식이 가지는 것을 말한다 - 부모가 물려준 메서드를 자식 클래스를 재정의해서 사용하는 것이다. (1) Car클래스에 run메서드를 만든다. package javaStudy; public class Car{ public void run() { System.out.println("Car의 run 메서드"); } } (2) Car클래스를 상속받는 Van클래스를 만든다. package javaStudy; public class Van extends Car { } (3) VanExam 클래스를 만든다. - VanExam에 Van의 인스턴스를 생성하고 Van이 가진 run 메..

Chapter 07-40 super과 부모 생성자

07-40.1 super 키워드 Def) super 키워드: 부모 객체를 나타낸다. - 자식이 부모의 메서드나 필드를 이용할 때도 쓸 수 있다. (1) 기본 생성자를 하나 가지는 Car클래스이다. package javaStudy; public class Car{ public Car() { System.out.println("Car의 기본 생성자입니다. "); } } (2) Car클래스를 상속받는 Truck클래스를 만들고 기본 생성자를 하나 추가한다. package javaStudy; public class Truck extends Car { public Truck() { System.out.println("Truck의 기본 생성자입니다."); } } (3) TruckExam클래스를 하나 더 만든다. pa..

Chapter 07-39 추상 클래스

07-39.1 추상 클래스란? Def) 추상 클래스: 무엇을 만들려는데 어떻게 만들어야할지 모르겠을 때 사용한다. Ex) '새' 라는 추상클래스 만들어 보자. - 클래스 앞에 "abstract"라는 키워드를 이용한다. - 추상클래스는 미완성의 추상 메서드를 포함할 수 있으나 객체를 생성할 수는 없다. 07-39.2 추상클래스 만들기 (1) Bird 클래스 정의 package javaStudy; public abstract class Bird { } (2) 추상 클래스 정의하기 package javaStudy; public abstract class Bird { public abstract void sing() ; } - 추상 클래스에 상속의 장점을 활용한다면 추상 클래스를 부모 클래스로 사용 가능하다. ..

Chapter 07-38 접근 제한자

07-38.1 접근 제한자 클래스는 필드와 메서드를 가진다. 수학과 관련된 클래스 -> 수학관련한 속성이나 메서드 날짜와 관련한 클래스 -> 날짜와 관련한 속성이나 메서드를 가지고 있어야 한다. 접근 제한자는 필드 뿐 아니라 메서드, 클래스 앞에 붙여 사용할 수도 있다. Def) 캡슐화: 관련된 내용을 모아서 가지는 것 그런데 캡슐화된 필드와 메서드 중에서 감추고 싶은 메서드 또는 속성이 있을 수 있다. 이런 경우 사용할 수 있는 것이 "접근제한자"다. Ex) 접근제한자의 범위 package javaStudy; public class AccessObj { public int p = 3; protected int p2 = 4; private int i = 1; int k = 2; } (1) public :..