Programming Languages 36

[5장] Java의 추상 클래스와 인터페이스(interface)

1. 추상 클래스 추상 클래스 추상 메소드(abstract method) abstract로 선언된 메소드, 메소드의 코드는 없고 원형만 선언 추상 클래스(abstract class) 추상 메소드를 가지며, abstract로 선언된 클래스 추상 메소드 없이, abstract로 선언한 클래스 추상 클래스는 온전한 클래스가 아니기 때문에 인스턴스를 생성할 수 없음 추상 클래스의 상속과 구현 추상 클래스 상속 추상 클래스를 상속받으면 추상 클래스가 됨 서브 클래스도 abstract로 선언해야 함 추상 클래스 구현 서브 클래스에서 슈퍼 클래스의 추상 메소드 구현(오버라이딩) 추상 클래스를 구현한 서브 클래스는 추상 클래스 아님 추상 클래스의 목적 상속을 위한 슈퍼 클래스로 활용하는 것 서브 클래스에서 추상 메소드..

[5장] Java의 메소드 오버라이딩

메소드 오버라이딩(Method Overriding) 메소드 오버라이딩의 개념 서브 클래스에서 슈퍼 클래스의 메소드 중복 작성 슈퍼 클래스의 메소드 무력화, 항상 서브 클래스에 오버라이딩한 메소드가 실행되도록 보장됨 “메소드 무시하기”로 번역되기도 함 오버라이딩 조건 슈퍼 클래스 메소드의 원형(메소드 이름, 인자 타입 및 개수, 리턴 타입) 동일하게 작성 서브 클래스 객체와 오버라이딩된 메소드 호출 - 오버라이딩한 메소드가 실행됨 오버라이딩의 목적, 다형성 실현 하나의 인터페이스(같은 이름)에 서로 다른 구현 슈퍼 클래스의 메소드를 서브 클래스에서 각각 목적에 맞게 다르게 구현 사례 동적 바인딩 - 오버라이딩된 메소드 호출 super 키워드로 슈퍼 클래스의 멤버 접근 슈퍼 클래스의 멤버를 접근할 때 사용되..

[5장] Java 상속의 개념과 protected 접근 지정

1. 클래스 상속과 객체 자바의 상속 선언 extends 키워드로 선언 부모 클래스를 물려받아 확장한다는 의미 부모 클래스 -> 슈퍼 클래스(super class) 자식 클래스 -> 서브 클래스(sub class) 슈퍼 클래스 객체와 서브 클래스의 객체는 별개 서브 클래스 객체는 슈퍼 클래스 멤버 포함 자바 상속의 특징 클래스 다중 상속(multiple inheritance) 불허 C++은 다중 상속 가능 C++은 다중 상속으로 멤버가 중복 생성되는 문제 있음 자바는 인터페이스(interface)의 다중 상속 허용 슈퍼 클래스의 멤버에 대한 서브 클래스의 접근 슈퍼 클래스의 private 멤버 서브 클래스에서 접근할 수 없음 슈퍼 클래스의 디폴트 멤버 서브 클래스가 동일한 패키지에 있을 때 접근 가능 슈..

[4장] 자바 생성자의 개념과 특징/ this 레퍼런스

생성자의 개념과 특징 생성자 객체가 생성될 때 초기화 목적으로 생성되는 메소드 객체가 생성되는 순간에 자동 호출 생성자의 특징 생성자의 이름은 클래스 이름과 동일 생성자는 여러 개 작성 가능(다형성) 단 인자의 개수 차이는 존재해야 함 public class Circle { public Circle() { //매개 변수 없는 생성자 ~~~ } public Circle(int r, String n) { //2개의 매개 변수를 가진 생성자 ~~~ } } 생성자는 객체 생성시 한 번만 호출 자바에서 객체 생성은 반드시 new 연산자로 함 Circle pizza = new Circle(10, "자바피자"); //생성자 Circle(int r, String n)호출 Circle donut = new Circle(..

[4장] 객체 지향의 특징/ 자바의 클래스와 객체

객체지향언어(object oriented programming = oop)란? 순서대로 하는 것이 아니라, 컴퓨터 프로그램을 여러 개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것 각각의 개체는 메시지를 주고 받고 데이터를 처리할 수 있음 자바의 객체 지향 특성 1. 캡슐화 객체를 캠슐로 싸서 내부를 볼 수 없게 하는 것 객체의 가장 본질적인 특징 - 외부의 접근으로부터 객체 보호 2. 상속 상위 클래스의 멤버를 하위 클래스가 물려받음 상위 클래스 : 수퍼 클래스 하위 클래스 : 서브 클래스, 수퍼 클래스 코드의 재사용, 새로운 특성 추가 가능 3. 다형성 같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 구현되는 것 클래스와 객체 클래스 객체의 속성과 행위 선언 객체의 설계도 혹은 툴..

[3장] Java 배열 선언 및 생성/ length 필드/ for-each문/ 2차원 배열

3.3 자바의 배열 배열(array = 인덱스 + 데이터) 인덱스와 인덱스에 대응하는 데이터들로 이루어진 자료 구조 배열은 같은 타입의 데이터들이 순차적으로 저장되는 공간 원소 데이터들이 순차적으로 저장됨 인덱스를 이용하여 원소 데이터 접근 반복문을 이용하여 처리하기에 적합한 자료 구조 배열 인덱스 0부터 시작 인덱스는 배열의 시작 위치에서부터 데이터가 있는 상대 위치 배열 선언, 생성, 초기화 배열에 대한 레퍼런스 변수 선언 int intArray[]; //또는 int [] intArray; 배열 생성 intArray = new int [5]; //5개의 정수 배열 할당 int intArray[] = new int [5]; //선언과 동시에 배열 생성 배열 초기화 int intArray[] = {4, ..

[3장] Java 예외 처리

3.6 자바의 예외 처리 예외 실행 중 오동작이나 결과에 악영향을 미치는 예상치 못한 상황 발생 자바에서는 실행 중 발생하는 에러를 예외로 처리 응용프로그램이 예외를 처리하지 않으면 프로그램 강제 종료시킴 예외 발생 경우 정수를 0으로 나누는 경우 배열의 크기보다 큰 인덱스로 배열의 원소를 접근하는 경우 정수를 읽는 코드가 실행되고 있을 때 사용자가 문자를 입력한 경우 예외 처리, tray-catch 자바의 예외 클래스 예제 3-13 import java.util.Scanner; public class practicemimi { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); int dividend; //..

반응형