본문 바로가기

상속4

자바 죽음의 다이아몬드 문제 / java Deadly Diamond of Death 이번 글에서는 자바에서 다중상속이 지원되지 않는 이유와 죽음의 다이아몬드 문제에 대해서 알아보겠습니다 C++와 같은 다른 객체지향 언어들에서는 다중상속을 지원합니다. 그러나 자바는 다중상속을 지원하지 않습니다. 이번 글에서는 자바에서 다중상속을 지원하지 않는 이유에 대해서 알아보도록 하겠습니다 Deadly Diamond of Death(죽음의 다이아몬드) 자바가 다중상속을 지원하지 않는 이유는 다음과 같습니다 다중 상속에 대한 글 프로그래밍 언어란 컴퓨터에게 내릴 명령을 순서대로 정리 해놓은 문서라고 볼 수 있으며, 가장 중요한 특징 중 하나는 같은 구문이 두 가지 이상의 의미로 해석 될 여지가 있어서는 안된다 라는 것이다. 그런데 다중 상속이 허용 될 경우 이러한 상황이 발생할 가능성이 있으며, 그 중.. 2017. 9. 28.
자바 상속 / java inheritence 이번 글에서는 자바의 상속에 대해서 알아보도록 하겠습니다. 자바와 같은 객체지향(Object Oriented) 프로그래밍 언어에는 상속이라는 개념이 있습니다 사람들은 부모로부터 상속을 받기도 합니다. 재능, 재산, 성격 등 많은 것들을 물려받습니다. 자바에도 사람들의 상속과 유사한 상속의 개념이 있습니다. 자바에서 상속을 해주는 클래스를 상위클래스 , 부모 클래스라고 합니다 상속을 받는 클래스는 하위클래스 , 자식클래스 , Derived 클래스 , 유도 클래스라고 합니다 사람들의 상속과 다르게 자바에서의 상속은 상위 클래스의 속성과 메소드들을 하위 클래스로 물려줍니다 상위 클래스는 하위 클래스에게 상속해줍니다. 하위 클래스는 상위 클래스로부터 상속 받습니다 객체 지향 프로그래밍 언어에는 Java , C#.. 2017. 9. 23.
자바 this 키워드로 메소드에서 메소드 호출하기 자바에서 메소드안에서 다른 메소드를 호출하는 방법에 대해서 알아보도록 하겠습니다. 먼저 this(licenseNo , null) 를 보겠습니다. 이렇게 코드를 작성하면 나중에 Doctor에 대해서 누군가 licenseNo를 입력해서 코드를 작성했을때, 입력되지 않은 hospitalName 의 값이 null이 됩니다. 아래의 코드를 이어서 보겠습니다. 앞서 매개변수가 두 개인 경우와 같이 , 이번에도 licenseNo와 hospitalName 을 입력하면 입력 되지 않는 name ,age, address 의 값이 null이 됩니다. this (호출을 원하는 메소드의 매개변수와 같은 형태의 값들) 다음과 같이 입력하면 자기 자신 클래스 안에 있는 호출을 원하는 함수를 호출 할 수 있습니다. 2017. 9. 15.
자바 클래스 속성과 메소드 자바의 클래스에는 속성과 메소드가 있습니다. public class Person extends Object{ String name; // 1 int age; // 1 String address; // 1 void sleep(){ // 2 } void eat(){ // 2 } void playGame(){ // 2 } } 1번에서는 클래스의 속성들을 정의합니다. 클래스의 속성들은 일반적으로 클래스 안에 있는 변수들을 말합니다. 2번에서는 클래스의 메소드들을 정의합니다. 클래스의 메소드들은 클래스 안에 있는 함수들을 말합니다. public class Developer extends Person { String language; void develop() { } } 2017. 9. 14.