본문 바로가기

Java29

[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.
[Java 공부/Java의 정석] Chapter.07 : 객체지향 프로그래밍 2 - 1 (상속) 상속 상속은 기존 클래스를 재사용하여 새로운 클래스를 작성하는 것을 말한다. 상속을 통해서 클래스를 작성하면 보다 적은 양의 코드로 새로운 클래스를 작성할 수 있고 코드를 공통적으로 관리할 수 있기 때문에 코드의 추가 및 변경이 매우 용이하다. 상속을 구현하는 법은 간단하다. 새로 작성하고자 하는 클래스의 이름 뒤에 상속받고자 하는 클래스의 이름을 키워드 'extends'와 함께 써주면 된다. class Child extends Parent { ... } 이 때 두 클래스는 서로 상속 관계에 있다고 하며, 상속해주는 클래스를 '부모 클래스', 상속받는 클래스를 '자식 클래스'라고 한다. 자식 클래스는 부모 클래스의 모든 멤버(변수, 메서드)를 상속받기 때문에 항상 조상 클래스보다 같거나 많은 멤버를 갖는.. 2022. 7. 4.