본문 바로가기

✏️Java 공부18

[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 5 (추상클래스) 추상클래스 클래스를 설계도에 비유한다면, 추상클래스는 미완성 설계도에 비유할 수 있다. 미완성 설계도로 완성된 제품을 만들 수 없듯이 추상클래스로 인스턴스는 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 추상클래스 자체로는 클래스로서의 역할을 다 못하지만, 새로운 클래스를 작성하는 데 있어서 바탕이 되는 조상 클래스로서 중요한 의미를 갖는다. 추상 클래스는 키워드 'abstract'를 붙이기만 하면 된다. 이렇게 함으로써 이 클래스를 사용할 때, 클래스 선언부의 abstract를 보고 이 크래스에는 추상 메서드가 있으니 상속을 통해서 구현해주어야 한다는 것을 쉽게 알 수 있을 것이다. abstract class 클래스 이름 { ... } 추상메서드 메서드는 선언부와 .. 2022. 7. 7.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 4 (다형성) 다형성 객제지향개념에서 다형성이란 '여러 가지 형태를 가질 수 있는 능력'을 의미하며, 자바에서는 한 타입의 참조변수로 여러 타입의 객체를 참조할 수 있도록 함으로써 다형성을 프로그램적으로 구현하였다. 이를 좀 더 구체적으로 말하자면 '부모 클래스 타입의 참조변수로 자식 클래스의 인스턴스를 참조할 수 있도록 하였다'는 것이다. 나는 이게 말로만 하면 무슨 소리인지 모르겠어서 예제로 이해하는 것이 더 쉬웠다. 예제 class Animal { String name;//이름 int age;//나이 Animal() { this("덕구", 1); } Animal(String n, int a) { this.name = n; this.age = a; } } class Tiger extends Animal { int .. 2022. 7. 7.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 3 (제어자) 제어자 제어자는 클래스, 변수 또는 메서드의 서언부에 함께 사용되어 부가적인 의미를 부여한다. 제어자의 종류는 크게 접근 제어자와 그 외의 제어자로 나눌 수 있다. 접근 제어자 public, protected, default, private 그 외 제어자 static, final, abstract, native, transient, synchronized, volatile, strictfp 제어자는 클래스나 멤버변수와 메서드에 주로 사용되며, 하나의 대상에 대해서 여러 제어자를 조합하여 사용하는 것이 가능하다. 단, 접근 제어자는 한 번에 네 가지 중 하나만 선택해서 사용할 수 있다. static - 클래스의, 공통적인 static은 '클래스의' 또는 '공통적인'의 의미를 가지고 있다. 인스턴스 변수는 .. 2022. 7. 6.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 2 (오버라이딩) 오버라이딩 부모 클래스로부터 상속받은 메서드의 내용을 변경하는 것을 오버라이딩이라고 한다. 상속받은 메서드를 그대로 사용하기로 하지만, 자식 클래스 자신에 맞게 변경해야하는 경우가 많다. 이럴 때 부모의 메서드를 오버라이딩한다. 예제 class point {//2차원 좌표 int x; int y; String getLocation() { return "x: " + x + ", y: " + y; } } 2차원 좌표계의 한 점을 표현하기 위한 point 클래스가 있을 때, 이를 부모로 하는 3차원 좌표계의 한 점을 표현하기 위한 point3D 클래스를 새로 작성하였다고 하자. point 클래스의 getLocation()은 한 점의 x, y좌표를 문자열로 반환한다. class point3D extends po.. 2022. 7. 6.