Java/모두의 자바 63

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 :..

Chapter 07-37 상속이란?

07-37.1 상속이란? Def) 상속 public class 클래스명 extends 부모클래스명 Ex) Bus라는 클래스와 Car라는 클래스가 있을 때 "bus는 car입니다"라고 말할 수 있다면? -> Bus: 자식 클래스 , Car: 부모 클래스 07-37.2 상속 예제 (1) 이클립스 JavaStudy 패키지 선택, 마우스 오른쪽 New > Class (2) Name: Bus 입력 (3) Superclass의 Browsw 클릭 (4) Superclass selection 창에서 Choose a type 칸에 Car 입력 후, OK 클릭 (5) New Jaca Class 창의 Finish를 눌러 클래스를 생성한다. package javaStudy; public class Bus extends Car..

Chapter 06-36 패키지

06-36.1 패키지란? - 패키지란 클래스를 관리하는데 사용한다. - 클래스는 자바 파일을 작성한 뒤 컴파일 하면 생성된다. - 생성된 클래스도 파일이다. - 컴퓨터의 파일을 폴더별로 나누어 정리하는 것처럼 - 자바도 관련한 클래스를 폴더별로 관리한다. - 이 때 "package"라는 키워드를 사용한다. - 패키지명은 다른 프로젝트나 다른 회사 다른 프로그래밍과 중복되지 않도록 - 도메인명을 거꾸로 적은 후 프로젝트명을 붙여서 사용한다. 06-36.2 패키지 만들기 - 패키지명은 "폴더명.폴더명"으로 만들어진다. - 폴더명은 숫자로 시작할 수 없다. (1) 이클립스의 src폴더에서 마우스 오른쪽 New > Package 클릭 (2) name에 도메인명( com.eightcruz) 과 프로젝트명 (.ja..

Chapter 06-35 생성자 오버로딩과 this

06-36.1 생성자 오버로딩이란? Def) 생성자 오버로딩: 생성자도 메서드와 마찬가지로 여러 개를 선언할 수 있다. - 매개변수의 수와 형만 다르면 생성자를 여러개 선언할 수 있다. package javaStudy; public class Car{ // 형 + 필드명 String name; int number; public Car(String name) { this.name = name; } } - 34장에서 Car클래스에 이름을 받는 생성자를 하나 추가했다. - 생성자를 추가한 뒤 Car객체를 생성할 때 "소방차"라는 이름 넣어서 생성했다. 06-36.2 Ex) package javaStudy; public class CarExam3 { public static void main(String[] a..

Chapter 06-34 메서드 오버로딩

06-34. 1 메서드 오버로딩이란? Ded) 메서드 오버로딩: 매개변수의 수가 다르거나 형이 다른 경우 같은 이름으로 메서드를 여러 개 정의할 수 있다. Ex 1) 정수를 두개 받아 두 정숫값을 더해서 리턴하는 메서드 package javaStudy; public class MyClass2 { public int plus(int x, int y) { return x + y; } } - 리턴하는 값이 정수이므로 반환자료형은 int, 메서드명은 plus라고 만들었다. - 매개변수는 int x, int y 를 선언. - 두 값을 더해서 리턴한다. Ex 2) 정수를 세 개 받아서 세 정숫값을 더한 뒤 리턴하는 메서드 package javaStudy; public class MyClass2 { public in..