전체 글67 15. 오버라이딩 오버라이딩 - 상속받은 조상의 메서드를 자신에 맞게 변경하는 것이다. 바로 아래 예시를 살펴보면, class Point3D extends Object{ int x; int y; Point3D(int x, int y){ this.x = x; this.y = y; } // 기본으로 상속되는 Object class(모든 class의 최고 조상 class)의 toString() 메서드를 오버라이딩 public String toString() { return "x: "+ x + ", y: " + y; } } public class OverridinEx { public static void main(String[] args) { // TODO Auto-generated method stub Point3D p3 = .. 2022. 10. 2. 14. 상속과 포함 클래스의 관계에는 상속과 포함이 있다. 상속 자손은 조상의 모든 멤버를 상속받는다.(생성자, 초기화 블럭은 상속받을 수 없다.) 자손의 멤버 개수는 조상보다 적을 수가 없다. 포함 클래스의 멤버로 참조변수를 선언하는 것이다. 적은 단위의 클래스를 만들고, 이들을 조합하여 클래스를 만든다. 클래스 간의 관계(상속과 포함) 결정? 상속관계: ~은 ~이다 (is-a) 포함관계: ~은 ~을 가지고 있다. (has-a) 아래 코드를 통해 상속관계와 포함관계의 구조적인 차이를 확인할 수 있다. 아래의 예제같은 경우에는 '원은 점을 가지고 있다' 와 같은 has-A관계가 더 적합하므로 포함관계가 더 적절한 사용예시라고 볼 수 있다. 상속관계 Ex class Point { int x; int y; } class Cir.. 2022. 10. 2. 13. 멤버변수의 초기화 멤버변수를 초기화 하는 방법은 크게 3가지로 나뉜다. 명시적 초기화 간단 초기화의 경우 사용. 기본형 변수의 초기화 int door = 4; 참조형 변수의 초기화 Engine e = new Engine(); 초기화 블럭 주로 복잡한 클래스 변수 초기화 하는데 사용 인스턴스변수 초기화 블럭: { }. -> 사용 잘 x 클랙스변수 초기화 블럭 : static { } 생성자 복잡한 초기화를 하는 경우 사용 인스턴스 변수를 초기화 하는데 사용된다. public class VariableInitalize { public static void main(String[] args) { // static 변수(클래스변수)의 초기화 테스트 System.out.println(Arrays.toString(StaticBlock.. 2022. 9. 25. 12. this()와 this this()와 this 생성자 this()와 참조변수 this는 완전히 다른 것이다. 생성자 this() this(), this(매개변수)는 생성자로, 생성자에서 같은 클래스에 있는 다른 생성자를 호출할 때 사용된다. 다른 생성자 호출 시, 생성자 내 첫 줄에서만 사용 가능하다. class Car2 { String color; String gearType; int door; Car2() { color = "white"; gearType = "auto"; door = 4; } Car2(String c, String g, int d){ color = c; gearType = g; door = d; } } 위 코드에서 기본생성자와, 매개변수가 있는 생성자 두 개를 선언했다. 사실 두 생성자는 동일한 기능을 하.. 2022. 9. 24. 이전 1 ··· 6 7 8 9 10 11 12 ··· 17 다음