전체 글
[JAVA] #8-2 다형성(Polymorphism)
1. 다형성 이해해보기 다형성(polymorphism)이란 하나의 객체가 여러 가지 타입을 가질 수 있는 것을 의미한다. 예를 들어 자동차가 타이어를 사용하는 방법은 동일하지만 어떤 타이어를 사용하는지에 따라 성능이 바뀐다. 여기서 타이어를 부모 클래스, 그리고 타이어의 종류들을 각각 자식 클래스로 생각하면 된다. 타이어 = new 금호 타이어 타이어 = new 한국 타이어 와 같은 모습인 것이다. 자바에서는 이러한 다형성을 부모 클래스 타입의 참조 변수로 자식 클래스 타입의 인스턴스를 참조할 수 있도록 하여 구현하고 있다. 다형성은 상속, 추상화와 더불어 객체 지향 프로그래밍을 구성하는 중요한 특징 중 하나다. 이번엔 코드로 예를 들어보자. class Parent { ... } class Child e..
[JAVA] #8-1 Super
1. Class들의 관계 우린 상속을 배우면서 class들간의 관계를 배웠다. class는 상속을 하면서 상위와 하위 클래스라는 관계가 생기고 우린 그 관계를 부모-자식의 관계라 부르기로 했다. 그 중 Super는 관계 중 부모 관계를 뜻한다. 당연히 수많은 클래스들 중에서 부모의 역할을 하면서 자식의 역할을 하는 클래스도 있고, 부모의 역할과 자식의 역할만 하는 클래스도 있을 것이다. 우린 그것들을 묶어서 Superclasses(부모 클래스들), Subclasses(자식 클래스들)이라고 부른다. super를 사용하기 전에 this를 떠올려보자. this는 클래스 안에서 멤버변수와 지역변수를 구분해서 사용하기 위해 사용했다. this()도 생성자 함수가 생성자 함수를 호출할 때 사용했다. 이것처럼 sup..
[JAVA] 연습문제 - 주민등록번호 유효성 검사
문제 : 주민번호 유효성 검사 주민번호가 맞을 시 문구 출력 후 생년월일, 성별, 나이, 띠 출력 package oop0914; public class Test06_jumin { public static void main(String[] args) { // 문제) 주민번호 유효성 검사 // Jumin 클래스 생성해서 실습합니다 Jumin id=new Jumin("8912301234567"); if(id.validate()) { System.out.println("주민번호가 확인되었습니다"); id.disp(); } else { System.out.println("주민번호를 다시 확인해주세요"); } // if end } // main() end } // class end 풀이 : Jumin class p..
[JAVA] #7-3 Object와 toString()
1. Object 클래스 자바의 최고 조상 클래스가 object 클래스이다. 이 Object 클래스는 자바의 기본 패키지(java.lang)에 선언되어있다. 우리에겐 선택권이 없다. 자바의 모든 클래스는 무조건 object 클래스를 상속받게끔 되어있다. (그렇기에 자바의 모든 클래스는 Object 클래스의 후손들이다) 그래서 우리가 클래스를 만들면! 사실 그 뒤에는 extends Object가 숨겨져있다. 2. toString 메서드 이 매서드는 Object 클래스에 포함된 메서드 중 하나이다. 우리가 클래스의 데이터들을 확인할 때 가장 흔히 사용하는 메서드이다. 형식은 아래와 같다. @Override public String toString() { return "클래스명 [요소1=" + 요소1 + ",..
[JAVA] #7-2 Override
1. Override란? 오버라이드, 리폼하는 것이다. 상속관계에서 물려받은 메소드를 다시 수정한다는 뜻이다. 그래서 함수를 재정의한다고도 불린다. 이제 Override하는 방법을 함께 알아보자. 우선 클래스를 세 개 만든 뒤 작업해보고자 한다. 1) Korea 클래스 class Korea{ String name="대한민국"; final void view() { System.out.println("Korea.view()..."); } // view() end void disp() { System.out.println("Korea.disp()..." + name); } // disp() end } // class end 2) Seoul 클래스(Korea 클래스를 그대로 상속) class Seoul exte..
[JAVA] #7-1 상속(Inheritance)
1. 왜 상속을 하지? 우리가 상속을 받는 이유가 뭘까? 남들이 가진 것들이 내게 필요하기 때문이다. 이처럼 프로그래밍에서도 다른 곳의 데이터들을 굳이 새로 또 생성하는 것이 아니라 가져올 수 있게 해준다면 편리하게 사용을 할 수 있기 때문에 상속이란 개념이 생겨났다. 그래서 굳이 자바 뿐만이 아니라 다른 프로그래밍 언어에서도 이러한 개념들은 있다. 이 상속의 개념 안에서 사용되는 용어들은 아래와 같다. - 재활용 - 부모와 자식 - 조상과 후손(파생) - super class와 sub class 2. 상속의 문법과 형식 1) 문법 extends(확장), implements(구현) 2) 형식 자식 extends 부모 {} 3. 상속의 이해 1) 상속의 이해 위의 그림을 보면 AA 클래스와 BB 클래스가 ..