개발자한걸음 (212) 썸네일형 리스트형 클래스) 상속..최상위 클래스 Object, toString, 오버라이딩 package class04; // [최상위 클래스 Object] class Book extends Object{ // 따로 추가하지 않아도 Object를 상속받고 있었다. // 함수 재정의 // 오버라이딩 @Override // 지우면 b가 책입니다 안뜨고 주소값이 뜸 public String toString() { // TODO Auto-generated method stub return "책입니다."; } } public class Test10 { public static void main(String[] args) { Book b=new Book(); System.out.println(b); // b.toString이 자동 호출이 되었기 때문에 System.out.println(b.toString.. 클래스) 상속 - 오버라이딩 [오버로딩=상속관계가X]함수명 중복정의를 허용했지만 , 인자의 개수나 자료형이 달라야만 했다! [오버라이딩=상속관계O]상속관계에서 함수 재정의를 허용 조건 : 인자의 개수,자료형 모두 같아야만 한다. --> input output 이름 다 같은데 , 내용만 다름 자식 입장에서 부모의 메서드가 맘에 들지 않을 때 ,혹은 추가로 하고 싶을 때 오버라이딩 사용 package class04; class A{ void func1() { System.out.println("A"); } } class B extends A{ // 상속관계에서 함수 재정의를 허용 // [오버라이딩] // 인자의 개수,자료형 모두 같아야만한다! void func1() { System.out.println("B"); } } public c.. 클래스) 상속의 상화관계 이해를 위한 "색깔점" 예제 package answer; class Point{ int x; int y; void move(int x) { this.x=x; this.y=x; } void showInfo() { System.out.println("("+this.x+","+this.y+")"); } Point(){ this(0,0); } Point(int x){ this(x,x); } Point(int x,int y){ this.x=x; this.y=y; } } class ColorPoint extends Point{ String color; void cc(String color) { this.color=color; } void showInfoColorPoint() { System.out.println(this.color+"("+th.. 클래스) 상속, 생성자 호출 package class03; class A { int a; int b; /*A() { System.out.println("A 기본생성자"); } */ A(int a, int b) { this.a = a; this.b = b; System.out.println("A 생성자"); } } // 하위 클래스인 B를 코딩하고 있는 상황은, // A의 설계가 완료되었음을 의미 class B extends A { int c; B() { super(10,20); // 부모의 생성자를 호출하는 것 //A의 기본생성자를 사용하지 않는 상황도 있음!!, 설계(A)를 고치면 안됨! // => A에게 존재하는 다른 생성자를 사용해서, 나의 A 부분을 완성하면됨! // 부모에게 기본생성자가 없다면, 모든 자식 생성자에서 문제 .. 클래스 ) 상속 [상속] = 이전에 개발 했던걸 다음 단계에서도 그대로 써야 하거나 논리적으로 상하관계(부모자식관계) 가 있을 때 사용 상속관계에서는 자식공간에서 부모공간을 다 가져온 다음에 만들어지기 때문에 부모공간에서 먼저 생성자를 만들어줘야한다. package class03; // [상속] // 이전에 개발 했던걸 다음 단계에서도 그대로 써야 하거나 논리적으로 상하관계(부모자식관계) 가 있을 때 사용 class Shape{ //모양 클래스: 부모, 상위 클래스 String name; double area; void showInfo() { System.out.println(this.name+" "+ this.area); } Shape(){ System.out.println("Shape에서 호출한 기본 생성자"); }.. 클래스) private , getter, setter package class02; class Point{ private int x; private int y; // 멤버변수에 직접접근을 하는것을 막아주는 메서드 : getter,setter Point(int x,int y){ this.x=x; this.y=y; } public int getX() { // 내가 값을 get 해와야 하는 상황 return x; } public void setX(int x) { // 내가 값을 set(ting) 하는 상황 this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } } public class Test04 { public static void main(String[] ar.. 클래스) 접근제어자 package class02; // 접근제어자 ( 캡슐화와 관련이 있음=>정보은닉) class Student{ private String name; // 외부에서 개입 차단 , 내부에선 쓸 수 있음 private int score; //(멤버변수 직접적근 차단) // getter,setter // : private으로 직접 접근 할 수 없는 멤버 변수의 값을 // 출력하거나(getter), 변경(값대입)하기 위해서 (setter) 사용 void setName(String name) { // 받아온 값을 나한테 넣는게 목적, 셋터는 인자는 있는데 output은 없는데 일반적 this.name=name; } void setScore(int score) { this.score=score; } String ge.. 클래스) 기본 용어, 정의 복습 package class01; // OOP class Point{ // class = 객체 지향 언어의 제일 기초 단위 // 객체를 만들기 위해 정의. int x; // 멤버변수 int y; static int z; // 클래스 변수 == 공유자원 void showInfo() { System.out.println(this.x+" "+this.y); } Point(){ this(0,0); } Point(int x,int y){ this.x=x; this.y=y; } } public class Test01 { public static void main(String[] args) { Point p1=new Point(10,20); Point p2=new Point(); Point[] data= new Poin.. 이전 1 ··· 15 16 17 18 19 20 21 ··· 27 다음