오늘은 자바에서 가장 중요한 것들 중 하나인 상속에 대해 적어보려 한다. 먼저 상속이 뭘까? 상속은 다른 클래스의 설계도를 가져와 새로운 기능을 추가하는 기법이라고 할 수 있겠다. 이 상속 관계에 대한 호칭은 언어마다 다른데 주로 사용되는 호칭을 몇 개 나열해보면 상위 - 하위 부모 - 자식 슈퍼 - 서브 정도가 있겠다. 자바에서 공식적으로 사용하는 호칭은 슈퍼 - 서브인데 개발자들은 부모 - 자식으로도 많이 얘기한다고 들었다. 상속받은 클래스(자식)의 객체를 만들면 자동으로 상속해준 클래스(부모)의 객체도 내부에 같이 생성된다. 이러다 보니 내가 상속받아온 클래스의 멤버를 마음대로 사용 가능하다. 하지만, 저번 글에서도 소개했듯이 객체지향 프로그래밍에서는 멤버 변수를 직접 .연산자를 통해 제어하는 것을..
오늘은 제목 그대로의 상황을 살펴보도록 하겠다. 먼저 Main.class와 별개로 Person, Member라는 클래스를 만들었고 Member 클래스에는 Person 클래스의 참조변수가 있다고 염두해두자. 이 예제는 임의로 같은 패키지안에서 작업했다. 먼저 Person 클래스이다. public class Person { String name; int age; //생성자 : Constructor public Person() { name = "익명"; age = 0; } public Person(String name, int age) { this.name = name; this.age = age; } //멤버값을 출력하는 메소드 void show() { System.out.println("name : " +..
static 키워드는 C언어에서도 있던 키워드이다. static은 그럼 대체 왜 사용하는걸까? 첫 번째로 객체를 생성하지 않고도 변수를 사용하고 싶을 때 사용한다. 이 녀석은 객체가 생성되지 않아도 먼저 존재하기 때문이다. 두 번째는 같은 클래스의 객체가 모두 같은 값을 공유하고 싶을 때 사용한다. 그럼 static 키워드는 대체 어디에 쓸 수 있을까? 당연히 변수에 쓸 수있다. 그리고 객체를 생성하지 않고도 사용할 수 있는 메소드가 있다. 이 녀석은 당연히 static 메소드이다. 또, class에도 static을 붙일 수 있다. 단, inner class일때만 가능하다. Test class라는 예를 통해 static 키워드에 대해 조금 더 자세히 알아보자 public class Test { publi..